brintos

brintos / llvm-project-archived public Read only

0
0
Text · 224.6 KiB · acf9bad Raw
3982 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 stores.17 18define void @store_i32_stride3_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {19; SSE-LABEL: store_i32_stride3_vf2:20; SSE:       # %bb.0:21; SSE-NEXT:    movq {{.*#+}} xmm0 = mem[0],zero22; SSE-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero23; SSE-NEXT:    movsd {{.*#+}} xmm2 = mem[0],zero24; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]25; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm0[1,1,1,1]26; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,0],xmm2[1,0]27; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm2[3,3,3,3]28; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm0[0,2]29; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]30; SSE-NEXT:    movq %xmm3, 16(%rcx)31; SSE-NEXT:    movaps %xmm2, (%rcx)32; SSE-NEXT:    retq33;34; AVX-LABEL: store_i32_stride3_vf2:35; AVX:       # %bb.0:36; AVX-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero37; AVX-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero38; AVX-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero39; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]40; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm241; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm042; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,1,0,3,7,5,4,7]43; AVX-NEXT:    vpermilps {{.*#+}} ymm1 = ymm2[0,2,u,1,u,5,u,u]44; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4],ymm1[5,6,7]45; AVX-NEXT:    vextractf128 $1, %ymm0, %xmm146; AVX-NEXT:    vmovlps %xmm1, 16(%rcx)47; AVX-NEXT:    vmovaps %xmm0, (%rcx)48; AVX-NEXT:    vzeroupper49; AVX-NEXT:    retq50;51; AVX2-LABEL: store_i32_stride3_vf2:52; AVX2:       # %bb.0:53; AVX2-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero54; AVX2-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero55; AVX2-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero56; AVX2-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]57; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm058; AVX2-NEXT:    vmovaps {{.*#+}} ymm1 = [0,2,4,1,3,5,u,u]59; AVX2-NEXT:    vpermps %ymm0, %ymm1, %ymm060; AVX2-NEXT:    vextractf128 $1, %ymm0, %xmm161; AVX2-NEXT:    vmovlps %xmm1, 16(%rcx)62; AVX2-NEXT:    vmovaps %xmm0, (%rcx)63; AVX2-NEXT:    vzeroupper64; AVX2-NEXT:    retq65;66; AVX2-FP-LABEL: store_i32_stride3_vf2:67; AVX2-FP:       # %bb.0:68; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero69; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero70; AVX2-FP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero71; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]72; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm073; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm1 = [0,2,4,1,3,5,u,u]74; AVX2-FP-NEXT:    vpermps %ymm0, %ymm1, %ymm075; AVX2-FP-NEXT:    vextractf128 $1, %ymm0, %xmm176; AVX2-FP-NEXT:    vmovlps %xmm1, 16(%rcx)77; AVX2-FP-NEXT:    vmovaps %xmm0, (%rcx)78; AVX2-FP-NEXT:    vzeroupper79; AVX2-FP-NEXT:    retq80;81; AVX2-FCP-LABEL: store_i32_stride3_vf2:82; AVX2-FCP:       # %bb.0:83; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero84; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero85; AVX2-FCP-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero86; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]87; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm088; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm1 = [0,2,4,1,3,5,u,u]89; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm1, %ymm090; AVX2-FCP-NEXT:    vextractf128 $1, %ymm0, %xmm191; AVX2-FCP-NEXT:    vmovlps %xmm1, 16(%rcx)92; AVX2-FCP-NEXT:    vmovaps %xmm0, (%rcx)93; AVX2-FCP-NEXT:    vzeroupper94; AVX2-FCP-NEXT:    retq95;96; AVX512-LABEL: store_i32_stride3_vf2:97; AVX512:       # %bb.0:98; AVX512-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero99; AVX512-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero100; AVX512-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero101; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]102; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]103; AVX512-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2104; AVX512-NEXT:    vextracti128 $1, %ymm2, %xmm0105; AVX512-NEXT:    vmovq %xmm0, 16(%rcx)106; AVX512-NEXT:    vmovdqa %xmm2, (%rcx)107; AVX512-NEXT:    vzeroupper108; AVX512-NEXT:    retq109;110; AVX512-FCP-LABEL: store_i32_stride3_vf2:111; AVX512-FCP:       # %bb.0:112; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero113; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero114; AVX512-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero115; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]116; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]117; AVX512-FCP-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2118; AVX512-FCP-NEXT:    vextracti128 $1, %ymm2, %xmm0119; AVX512-FCP-NEXT:    vmovq %xmm0, 16(%rcx)120; AVX512-FCP-NEXT:    vmovdqa %xmm2, (%rcx)121; AVX512-FCP-NEXT:    vzeroupper122; AVX512-FCP-NEXT:    retq123;124; AVX512DQ-LABEL: store_i32_stride3_vf2:125; AVX512DQ:       # %bb.0:126; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero127; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero128; AVX512DQ-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero129; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]130; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]131; AVX512DQ-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2132; AVX512DQ-NEXT:    vextracti128 $1, %ymm2, %xmm0133; AVX512DQ-NEXT:    vmovq %xmm0, 16(%rcx)134; AVX512DQ-NEXT:    vmovdqa %xmm2, (%rcx)135; AVX512DQ-NEXT:    vzeroupper136; AVX512DQ-NEXT:    retq137;138; AVX512DQ-FCP-LABEL: store_i32_stride3_vf2:139; AVX512DQ-FCP:       # %bb.0:140; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero141; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero142; AVX512DQ-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero143; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]144; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]145; AVX512DQ-FCP-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2146; AVX512DQ-FCP-NEXT:    vextracti128 $1, %ymm2, %xmm0147; AVX512DQ-FCP-NEXT:    vmovq %xmm0, 16(%rcx)148; AVX512DQ-FCP-NEXT:    vmovdqa %xmm2, (%rcx)149; AVX512DQ-FCP-NEXT:    vzeroupper150; AVX512DQ-FCP-NEXT:    retq151;152; AVX512BW-LABEL: store_i32_stride3_vf2:153; AVX512BW:       # %bb.0:154; AVX512BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero155; AVX512BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero156; AVX512BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero157; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]158; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]159; AVX512BW-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2160; AVX512BW-NEXT:    vextracti128 $1, %ymm2, %xmm0161; AVX512BW-NEXT:    vmovq %xmm0, 16(%rcx)162; AVX512BW-NEXT:    vmovdqa %xmm2, (%rcx)163; AVX512BW-NEXT:    vzeroupper164; AVX512BW-NEXT:    retq165;166; AVX512BW-FCP-LABEL: store_i32_stride3_vf2:167; AVX512BW-FCP:       # %bb.0:168; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero169; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero170; AVX512BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero171; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]172; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]173; AVX512BW-FCP-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2174; AVX512BW-FCP-NEXT:    vextracti128 $1, %ymm2, %xmm0175; AVX512BW-FCP-NEXT:    vmovq %xmm0, 16(%rcx)176; AVX512BW-FCP-NEXT:    vmovdqa %xmm2, (%rcx)177; AVX512BW-FCP-NEXT:    vzeroupper178; AVX512BW-FCP-NEXT:    retq179;180; AVX512DQ-BW-LABEL: store_i32_stride3_vf2:181; AVX512DQ-BW:       # %bb.0:182; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero183; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero184; AVX512DQ-BW-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero185; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]186; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]187; AVX512DQ-BW-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2188; AVX512DQ-BW-NEXT:    vextracti128 $1, %ymm2, %xmm0189; AVX512DQ-BW-NEXT:    vmovq %xmm0, 16(%rcx)190; AVX512DQ-BW-NEXT:    vmovdqa %xmm2, (%rcx)191; AVX512DQ-BW-NEXT:    vzeroupper192; AVX512DQ-BW-NEXT:    retq193;194; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf2:195; AVX512DQ-BW-FCP:       # %bb.0:196; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero197; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero198; AVX512DQ-BW-FCP-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero199; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm2[0],xmm1[0]200; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,2,8,1,3,9,0,0]201; AVX512DQ-BW-FCP-NEXT:    vpermi2d %ymm0, %ymm1, %ymm2202; AVX512DQ-BW-FCP-NEXT:    vextracti128 $1, %ymm2, %xmm0203; AVX512DQ-BW-FCP-NEXT:    vmovq %xmm0, 16(%rcx)204; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm2, (%rcx)205; AVX512DQ-BW-FCP-NEXT:    vzeroupper206; AVX512DQ-BW-FCP-NEXT:    retq207  %in.vec0 = load <2 x i32>, ptr %in.vecptr0, align 64208  %in.vec1 = load <2 x i32>, ptr %in.vecptr1, align 64209  %in.vec2 = load <2 x i32>, ptr %in.vecptr2, align 64210  %1 = shufflevector <2 x i32> %in.vec0, <2 x i32> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>211  %2 = shufflevector <2 x i32> %in.vec2, <2 x i32> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>212  %3 = shufflevector <4 x i32> %1, <4 x i32> %2, <6 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5>213  %interleaved.vec = shufflevector <6 x i32> %3, <6 x i32> poison, <6 x i32> <i32 0, i32 2, i32 4, i32 1, i32 3, i32 5>214  store <6 x i32> %interleaved.vec, ptr %out.vec, align 64215  ret void216}217 218define void @store_i32_stride3_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {219; SSE-LABEL: store_i32_stride3_vf4:220; SSE:       # %bb.0:221; SSE-NEXT:    movaps (%rdi), %xmm0222; SSE-NEXT:    movaps (%rsi), %xmm1223; SSE-NEXT:    movaps (%rdx), %xmm2224; SSE-NEXT:    movaps %xmm0, %xmm3225; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm2[0,3]226; SSE-NEXT:    movaps %xmm0, %xmm4227; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]228; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm3[2,0]229; SSE-NEXT:    movaps %xmm0, %xmm3230; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]231; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]232; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]233; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm3[0,2]234; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,2],xmm2[2,3]235; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]236; SSE-NEXT:    movaps %xmm1, 16(%rcx)237; SSE-NEXT:    movaps %xmm4, (%rcx)238; SSE-NEXT:    movaps %xmm0, 32(%rcx)239; SSE-NEXT:    retq240;241; AVX-LABEL: store_i32_stride3_vf4:242; AVX:       # %bb.0:243; AVX-NEXT:    vmovaps (%rdi), %xmm0244; AVX-NEXT:    vmovaps (%rsi), %xmm1245; AVX-NEXT:    vmovaps (%rdx), %xmm2246; AVX-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]247; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,2]248; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm2[0,1,0,1]249; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3]250; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm1[1,1,2,2]251; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm0[2],xmm4[3]252; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0],xmm2[1],xmm4[2,3]253; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]254; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]255; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3]256; AVX-NEXT:    vmovaps %xmm0, 32(%rcx)257; AVX-NEXT:    vmovaps %xmm4, 16(%rcx)258; AVX-NEXT:    vmovaps %xmm3, (%rcx)259; AVX-NEXT:    retq260;261; AVX2-LABEL: store_i32_stride3_vf4:262; AVX2:       # %bb.0:263; AVX2-NEXT:    vmovaps (%rdi), %xmm0264; AVX2-NEXT:    vmovaps (%rsi), %xmm1265; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm2266; AVX2-NEXT:    vmovaps {{.*#+}} ymm3 = [0,4,u,1,5,u,2,6]267; AVX2-NEXT:    vpermps %ymm2, %ymm3, %ymm2268; AVX2-NEXT:    vbroadcastsd (%rdx), %ymm3269; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]270; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]271; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]272; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3]273; AVX2-NEXT:    vmovaps %xmm0, 32(%rcx)274; AVX2-NEXT:    vmovaps %ymm2, (%rcx)275; AVX2-NEXT:    vzeroupper276; AVX2-NEXT:    retq277;278; AVX2-FP-LABEL: store_i32_stride3_vf4:279; AVX2-FP:       # %bb.0:280; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm0281; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm1282; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm2283; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm3 = [0,4,u,1,5,u,2,6]284; AVX2-FP-NEXT:    vpermps %ymm2, %ymm3, %ymm2285; AVX2-FP-NEXT:    vbroadcastsd (%rdx), %ymm3286; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]287; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]288; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]289; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1,2],xmm1[3]290; AVX2-FP-NEXT:    vmovaps %xmm0, 32(%rcx)291; AVX2-FP-NEXT:    vmovaps %ymm2, (%rcx)292; AVX2-FP-NEXT:    vzeroupper293; AVX2-FP-NEXT:    retq294;295; AVX2-FCP-LABEL: store_i32_stride3_vf4:296; AVX2-FCP:       # %bb.0:297; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm0298; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0299; AVX2-FCP-NEXT:    vbroadcastsd {{.*#+}} ymm1 = [7,3,7,3,7,3,7,3]300; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm1, %ymm1301; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]302; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm2[0],xmm1[1,2],xmm2[3]303; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm2 = [0,4,u,1,5,u,2,6]304; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm2, %ymm0305; AVX2-FCP-NEXT:    vbroadcastsd (%rdx), %ymm2306; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]307; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)308; AVX2-FCP-NEXT:    vmovaps %xmm1, 32(%rcx)309; AVX2-FCP-NEXT:    vzeroupper310; AVX2-FCP-NEXT:    retq311;312; AVX512-LABEL: store_i32_stride3_vf4:313; AVX512:       # %bb.0:314; AVX512-NEXT:    vmovaps (%rdi), %xmm0315; AVX512-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0316; AVX512-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0317; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]318; AVX512-NEXT:    vpermps %zmm0, %zmm1, %zmm0319; AVX512-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)320; AVX512-NEXT:    vmovaps %ymm0, (%rcx)321; AVX512-NEXT:    vzeroupper322; AVX512-NEXT:    retq323;324; AVX512-FCP-LABEL: store_i32_stride3_vf4:325; AVX512-FCP:       # %bb.0:326; AVX512-FCP-NEXT:    vmovaps (%rdi), %xmm0327; AVX512-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0328; AVX512-FCP-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0329; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]330; AVX512-FCP-NEXT:    vpermps %zmm0, %zmm1, %zmm0331; AVX512-FCP-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)332; AVX512-FCP-NEXT:    vmovaps %ymm0, (%rcx)333; AVX512-FCP-NEXT:    vzeroupper334; AVX512-FCP-NEXT:    retq335;336; AVX512DQ-LABEL: store_i32_stride3_vf4:337; AVX512DQ:       # %bb.0:338; AVX512DQ-NEXT:    vmovaps (%rdi), %xmm0339; AVX512DQ-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0340; AVX512DQ-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0341; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]342; AVX512DQ-NEXT:    vpermps %zmm0, %zmm1, %zmm0343; AVX512DQ-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)344; AVX512DQ-NEXT:    vmovaps %ymm0, (%rcx)345; AVX512DQ-NEXT:    vzeroupper346; AVX512DQ-NEXT:    retq347;348; AVX512DQ-FCP-LABEL: store_i32_stride3_vf4:349; AVX512DQ-FCP:       # %bb.0:350; AVX512DQ-FCP-NEXT:    vmovaps (%rdi), %xmm0351; AVX512DQ-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0352; AVX512DQ-FCP-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0353; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]354; AVX512DQ-FCP-NEXT:    vpermps %zmm0, %zmm1, %zmm0355; AVX512DQ-FCP-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)356; AVX512DQ-FCP-NEXT:    vmovaps %ymm0, (%rcx)357; AVX512DQ-FCP-NEXT:    vzeroupper358; AVX512DQ-FCP-NEXT:    retq359;360; AVX512BW-LABEL: store_i32_stride3_vf4:361; AVX512BW:       # %bb.0:362; AVX512BW-NEXT:    vmovaps (%rdi), %xmm0363; AVX512BW-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0364; AVX512BW-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0365; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]366; AVX512BW-NEXT:    vpermps %zmm0, %zmm1, %zmm0367; AVX512BW-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)368; AVX512BW-NEXT:    vmovaps %ymm0, (%rcx)369; AVX512BW-NEXT:    vzeroupper370; AVX512BW-NEXT:    retq371;372; AVX512BW-FCP-LABEL: store_i32_stride3_vf4:373; AVX512BW-FCP:       # %bb.0:374; AVX512BW-FCP-NEXT:    vmovaps (%rdi), %xmm0375; AVX512BW-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0376; AVX512BW-FCP-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0377; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]378; AVX512BW-FCP-NEXT:    vpermps %zmm0, %zmm1, %zmm0379; AVX512BW-FCP-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)380; AVX512BW-FCP-NEXT:    vmovaps %ymm0, (%rcx)381; AVX512BW-FCP-NEXT:    vzeroupper382; AVX512BW-FCP-NEXT:    retq383;384; AVX512DQ-BW-LABEL: store_i32_stride3_vf4:385; AVX512DQ-BW:       # %bb.0:386; AVX512DQ-BW-NEXT:    vmovaps (%rdi), %xmm0387; AVX512DQ-BW-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0388; AVX512DQ-BW-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0389; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]390; AVX512DQ-BW-NEXT:    vpermps %zmm0, %zmm1, %zmm0391; AVX512DQ-BW-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)392; AVX512DQ-BW-NEXT:    vmovaps %ymm0, (%rcx)393; AVX512DQ-BW-NEXT:    vzeroupper394; AVX512DQ-BW-NEXT:    retq395;396; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf4:397; AVX512DQ-BW-FCP:       # %bb.0:398; AVX512DQ-BW-FCP-NEXT:    vmovaps (%rdi), %xmm0399; AVX512DQ-BW-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0400; AVX512DQ-BW-FCP-NEXT:    vinsertf32x4 $2, (%rdx), %zmm0, %zmm0401; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,4,8,1,5,9,2,6,10,3,7,11,0,0,0,0]402; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm0, %zmm1, %zmm0403; AVX512DQ-BW-FCP-NEXT:    vextractf32x4 $2, %zmm0, 32(%rcx)404; AVX512DQ-BW-FCP-NEXT:    vmovaps %ymm0, (%rcx)405; AVX512DQ-BW-FCP-NEXT:    vzeroupper406; AVX512DQ-BW-FCP-NEXT:    retq407  %in.vec0 = load <4 x i32>, ptr %in.vecptr0, align 64408  %in.vec1 = load <4 x i32>, ptr %in.vecptr1, align 64409  %in.vec2 = load <4 x i32>, ptr %in.vecptr2, align 64410  %1 = shufflevector <4 x i32> %in.vec0, <4 x i32> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>411  %2 = shufflevector <4 x i32> %in.vec2, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>412  %3 = shufflevector <8 x i32> %1, <8 x i32> %2, <12 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11>413  %interleaved.vec = shufflevector <12 x i32> %3, <12 x i32> poison, <12 x i32> <i32 0, i32 4, i32 8, i32 1, i32 5, i32 9, i32 2, i32 6, i32 10, i32 3, i32 7, i32 11>414  store <12 x i32> %interleaved.vec, ptr %out.vec, align 64415  ret void416}417 418define void @store_i32_stride3_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {419; SSE-LABEL: store_i32_stride3_vf8:420; SSE:       # %bb.0:421; SSE-NEXT:    movaps (%rdi), %xmm1422; SSE-NEXT:    movaps 16(%rdi), %xmm0423; SSE-NEXT:    movaps (%rsi), %xmm5424; SSE-NEXT:    movaps 16(%rsi), %xmm6425; SSE-NEXT:    movaps (%rdx), %xmm2426; SSE-NEXT:    movaps 16(%rdx), %xmm3427; SSE-NEXT:    movaps %xmm0, %xmm7428; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm6[1]429; SSE-NEXT:    movaps %xmm0, %xmm8430; SSE-NEXT:    movaps %xmm0, %xmm4431; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm6[0],xmm4[1],xmm6[1]432; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm6[3,3]433; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[1,1],xmm3[1,1]434; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,2],xmm7[0,2]435; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm3[0,3]436; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm8[2,0]437; SSE-NEXT:    movaps %xmm1, %xmm7438; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm5[1]439; SSE-NEXT:    movaps %xmm1, %xmm8440; SSE-NEXT:    movaps %xmm1, %xmm9441; SSE-NEXT:    unpcklps {{.*#+}} xmm9 = xmm9[0],xmm5[0],xmm9[1],xmm5[1]442; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm5[3,3]443; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]444; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm7[0,2]445; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm2[0,3]446; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm8[2,0]447; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,2],xmm3[2,3]448; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]449; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,2],xmm2[2,3]450; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0,1,3]451; SSE-NEXT:    movaps %xmm9, (%rcx)452; SSE-NEXT:    movaps %xmm5, 16(%rcx)453; SSE-NEXT:    movaps %xmm4, 48(%rcx)454; SSE-NEXT:    movaps %xmm6, 64(%rcx)455; SSE-NEXT:    movaps %xmm1, 32(%rcx)456; SSE-NEXT:    movaps %xmm0, 80(%rcx)457; SSE-NEXT:    retq458;459; AVX-LABEL: store_i32_stride3_vf8:460; AVX:       # %bb.0:461; AVX-NEXT:    vmovaps (%rdi), %xmm0462; AVX-NEXT:    vmovaps 16(%rdi), %xmm1463; AVX-NEXT:    vmovaps (%rsi), %xmm2464; AVX-NEXT:    vmovaps 16(%rsi), %xmm3465; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm2[1,1,2,2]466; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm0[2],xmm4[3]467; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]468; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]469; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0470; AVX-NEXT:    vbroadcastsd (%rdx), %ymm2471; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]472; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm1[3,3],xmm3[3,3]473; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,1,2,2]474; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2],xmm3[3]475; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1476; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = mem[0,1,0,1]477; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0,0,3,3]478; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]479; AVX-NEXT:    vpermilps {{.*#+}} ymm2 = mem[0,0,3,3,4,4,7,7]480; AVX-NEXT:    vpermilpd {{.*#+}} ymm3 = mem[1,0,2,2]481; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]482; AVX-NEXT:    vpermilpd {{.*#+}} ymm3 = mem[1,1,2,2]483; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]484; AVX-NEXT:    vmovaps %ymm2, 32(%rcx)485; AVX-NEXT:    vmovaps %ymm1, 64(%rcx)486; AVX-NEXT:    vmovaps %ymm0, (%rcx)487; AVX-NEXT:    vzeroupper488; AVX-NEXT:    retq489;490; AVX2-LABEL: store_i32_stride3_vf8:491; AVX2:       # %bb.0:492; AVX2-NEXT:    vmovaps (%rdi), %ymm0493; AVX2-NEXT:    vmovaps (%rsi), %ymm1494; AVX2-NEXT:    vmovaps (%rdx), %ymm2495; AVX2-NEXT:    vpermilps {{.*#+}} xmm3 = mem[1,0,2,2]496; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,1]497; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[0,0,2,1]498; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]499; AVX2-NEXT:    vbroadcastsd (%rdx), %ymm4500; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]501; AVX2-NEXT:    vbroadcastsd 24(%rdi), %ymm4502; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm1[1,2,3,3,5,6,7,7]503; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[2,2,2,3]504; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]505; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[2,1,3,3]506; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3],ymm5[4],ymm4[5,6],ymm5[7]507; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,3,3,4,4,7,7]508; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]509; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]510; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[1,1,2,2]511; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]512; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)513; AVX2-NEXT:    vmovaps %ymm4, 64(%rcx)514; AVX2-NEXT:    vmovaps %ymm3, (%rcx)515; AVX2-NEXT:    vzeroupper516; AVX2-NEXT:    retq517;518; AVX2-FP-LABEL: store_i32_stride3_vf8:519; AVX2-FP:       # %bb.0:520; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0521; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1522; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2523; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm3 = mem[1,0,2,2]524; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,1]525; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[0,0,2,1]526; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]527; AVX2-FP-NEXT:    vbroadcastsd (%rdx), %ymm4528; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]529; AVX2-FP-NEXT:    vbroadcastsd 24(%rdi), %ymm4530; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm1[1,2,3,3,5,6,7,7]531; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[2,2,2,3]532; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]533; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[2,1,3,3]534; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3],ymm5[4],ymm4[5,6],ymm5[7]535; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,3,3,4,4,7,7]536; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]537; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]538; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[1,1,2,2]539; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]540; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)541; AVX2-FP-NEXT:    vmovaps %ymm4, 64(%rcx)542; AVX2-FP-NEXT:    vmovaps %ymm3, (%rcx)543; AVX2-FP-NEXT:    vzeroupper544; AVX2-FP-NEXT:    retq545;546; AVX2-FCP-LABEL: store_i32_stride3_vf8:547; AVX2-FCP:       # %bb.0:548; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0549; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1550; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2551; AVX2-FCP-NEXT:    vbroadcastf128 {{.*#+}} ymm3 = [1,0,2,2,1,0,2,2]552; AVX2-FCP-NEXT:    # ymm3 = mem[0,1,0,1]553; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm3, %ymm3554; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[0,0,2,1]555; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]556; AVX2-FCP-NEXT:    vbroadcastsd (%rdx), %ymm4557; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]558; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm4 = ymm1[0,0,3,3,4,4,7,7]559; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]560; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm4[2],ymm0[3,4],ymm4[5],ymm0[6,7]561; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm2[1,1,2,2]562; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm0[1,2],ymm4[3],ymm0[4,5],ymm4[6],ymm0[7]563; AVX2-FCP-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = [5,0,7,6,5,0,7,6]564; AVX2-FCP-NEXT:    # ymm4 = mem[0,1,0,1]565; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm4, %ymm1566; AVX2-FCP-NEXT:    vbroadcastsd 24(%rdi), %ymm4567; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm4[2],ymm1[3,4],ymm4[5],ymm1[6,7]568; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,1,3,3]569; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]570; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rcx)571; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)572; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rcx)573; AVX2-FCP-NEXT:    vzeroupper574; AVX2-FCP-NEXT:    retq575;576; AVX512-LABEL: store_i32_stride3_vf8:577; AVX512:       # %bb.0:578; AVX512-NEXT:    vmovdqa (%rdi), %ymm0579; AVX512-NEXT:    vmovdqa (%rdx), %ymm1580; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0581; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]582; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2583; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]584; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3585; AVX512-NEXT:    vmovdqa64 %zmm3, (%rcx)586; AVX512-NEXT:    vmovdqa %ymm2, 64(%rcx)587; AVX512-NEXT:    vzeroupper588; AVX512-NEXT:    retq589;590; AVX512-FCP-LABEL: store_i32_stride3_vf8:591; AVX512-FCP:       # %bb.0:592; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm0593; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm1594; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0595; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]596; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2597; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]598; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3599; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, (%rcx)600; AVX512-FCP-NEXT:    vmovdqa %ymm2, 64(%rcx)601; AVX512-FCP-NEXT:    vzeroupper602; AVX512-FCP-NEXT:    retq603;604; AVX512DQ-LABEL: store_i32_stride3_vf8:605; AVX512DQ:       # %bb.0:606; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm0607; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm1608; AVX512DQ-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0609; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]610; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2611; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]612; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3613; AVX512DQ-NEXT:    vmovdqa64 %zmm3, (%rcx)614; AVX512DQ-NEXT:    vmovdqa %ymm2, 64(%rcx)615; AVX512DQ-NEXT:    vzeroupper616; AVX512DQ-NEXT:    retq617;618; AVX512DQ-FCP-LABEL: store_i32_stride3_vf8:619; AVX512DQ-FCP:       # %bb.0:620; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm0621; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm1622; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0623; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]624; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2625; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]626; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3627; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, (%rcx)628; AVX512DQ-FCP-NEXT:    vmovdqa %ymm2, 64(%rcx)629; AVX512DQ-FCP-NEXT:    vzeroupper630; AVX512DQ-FCP-NEXT:    retq631;632; AVX512BW-LABEL: store_i32_stride3_vf8:633; AVX512BW:       # %bb.0:634; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm0635; AVX512BW-NEXT:    vmovdqa (%rdx), %ymm1636; AVX512BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0637; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]638; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2639; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]640; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3641; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%rcx)642; AVX512BW-NEXT:    vmovdqa %ymm2, 64(%rcx)643; AVX512BW-NEXT:    vzeroupper644; AVX512BW-NEXT:    retq645;646; AVX512BW-FCP-LABEL: store_i32_stride3_vf8:647; AVX512BW-FCP:       # %bb.0:648; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0649; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1650; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0651; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]652; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2653; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]654; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3655; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, (%rcx)656; AVX512BW-FCP-NEXT:    vmovdqa %ymm2, 64(%rcx)657; AVX512BW-FCP-NEXT:    vzeroupper658; AVX512BW-FCP-NEXT:    retq659;660; AVX512DQ-BW-LABEL: store_i32_stride3_vf8:661; AVX512DQ-BW:       # %bb.0:662; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm0663; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %ymm1664; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0665; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]666; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2667; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]668; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3669; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, (%rcx)670; AVX512DQ-BW-NEXT:    vmovdqa %ymm2, 64(%rcx)671; AVX512DQ-BW-NEXT:    vzeroupper672; AVX512DQ-BW-NEXT:    retq673;674; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf8:675; AVX512DQ-BW-FCP:       # %bb.0:676; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0677; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1678; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0679; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [13,21,6,14,22,7,15,23]680; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2681; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,8,16,1,9,17,2,10,18,3,11,19,4,12,20,5]682; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3683; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, (%rcx)684; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm2, 64(%rcx)685; AVX512DQ-BW-FCP-NEXT:    vzeroupper686; AVX512DQ-BW-FCP-NEXT:    retq687  %in.vec0 = load <8 x i32>, ptr %in.vecptr0, align 64688  %in.vec1 = load <8 x i32>, ptr %in.vecptr1, align 64689  %in.vec2 = load <8 x i32>, ptr %in.vecptr2, align 64690  %1 = shufflevector <8 x i32> %in.vec0, <8 x i32> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>691  %2 = shufflevector <8 x i32> %in.vec2, <8 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>692  %3 = shufflevector <16 x i32> %1, <16 x i32> %2, <24 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>693  %interleaved.vec = shufflevector <24 x i32> %3, <24 x i32> poison, <24 x i32> <i32 0, i32 8, i32 16, i32 1, i32 9, i32 17, i32 2, i32 10, i32 18, i32 3, i32 11, i32 19, i32 4, i32 12, i32 20, i32 5, i32 13, i32 21, i32 6, i32 14, i32 22, i32 7, i32 15, i32 23>694  store <24 x i32> %interleaved.vec, ptr %out.vec, align 64695  ret void696}697 698define void @store_i32_stride3_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {699; SSE-LABEL: store_i32_stride3_vf16:700; SSE:       # %bb.0:701; SSE-NEXT:    movaps (%rdi), %xmm1702; SSE-NEXT:    movaps 16(%rdi), %xmm2703; SSE-NEXT:    movaps 32(%rdi), %xmm4704; SSE-NEXT:    movaps 48(%rdi), %xmm5705; SSE-NEXT:    movaps (%rsi), %xmm7706; SSE-NEXT:    movaps 16(%rsi), %xmm9707; SSE-NEXT:    movaps 32(%rsi), %xmm10708; SSE-NEXT:    movaps 48(%rsi), %xmm11709; SSE-NEXT:    movaps 16(%rdx), %xmm0710; SSE-NEXT:    movaps 32(%rdx), %xmm3711; SSE-NEXT:    movaps 48(%rdx), %xmm8712; SSE-NEXT:    movaps %xmm5, %xmm12713; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]714; SSE-NEXT:    movaps %xmm5, %xmm13715; SSE-NEXT:    movaps %xmm5, %xmm6716; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm11[0],xmm6[1],xmm11[1]717; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm11[3,3]718; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill719; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,1],xmm8[1,1]720; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm12[0,2]721; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[1,1],xmm8[0,3]722; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm13[2,0]723; SSE-NEXT:    movaps %xmm4, %xmm13724; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]725; SSE-NEXT:    movaps %xmm4, %xmm14726; SSE-NEXT:    movaps %xmm4, %xmm12727; SSE-NEXT:    unpcklps {{.*#+}} xmm12 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]728; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,3],xmm10[3,3]729; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill730; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[1,1],xmm3[1,1]731; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,2],xmm13[0,2]732; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[1,1],xmm3[0,3]733; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm14[2,0]734; SSE-NEXT:    movaps %xmm2, %xmm14735; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm9[1]736; SSE-NEXT:    movaps %xmm2, %xmm15737; SSE-NEXT:    movaps %xmm2, %xmm13738; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm9[0],xmm13[1],xmm9[1]739; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm9[3,3]740; SSE-NEXT:    movaps %xmm0, %xmm8741; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[1,1],xmm0[1,1]742; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,2],xmm14[0,2]743; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[1,1],xmm0[0,3]744; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2,0]745; SSE-NEXT:    movaps %xmm1, %xmm14746; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm7[1]747; SSE-NEXT:    movaps %xmm1, %xmm15748; SSE-NEXT:    unpcklps {{.*#+}} xmm15 = xmm15[0],xmm7[0],xmm15[1],xmm7[1]749; SSE-NEXT:    movaps %xmm1, %xmm3750; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm7[3,3]751; SSE-NEXT:    movaps (%rdx), %xmm0752; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[1,1],xmm0[1,1]753; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,2],xmm14[0,2]754; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm0[0,3]755; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm3[2,0]756; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload757; SSE-NEXT:    # xmm5 = xmm5[1,2],mem[2,3]758; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload759; SSE-NEXT:    # xmm4 = xmm4[1,2],mem[2,3]760; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,2],xmm8[2,3]761; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,2],xmm0[2,3]762; SSE-NEXT:    movaps %xmm15, (%rcx)763; SSE-NEXT:    movaps %xmm7, 16(%rcx)764; SSE-NEXT:    movaps %xmm13, 48(%rcx)765; SSE-NEXT:    movaps %xmm9, 64(%rcx)766; SSE-NEXT:    movaps %xmm12, 96(%rcx)767; SSE-NEXT:    movaps %xmm10, 112(%rcx)768; SSE-NEXT:    movaps %xmm6, 144(%rcx)769; SSE-NEXT:    movaps %xmm11, 160(%rcx)770; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0,1,3]771; SSE-NEXT:    movaps %xmm1, 32(%rcx)772; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[2,0,1,3]773; SSE-NEXT:    movaps %xmm2, 80(%rcx)774; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,0,1,3]775; SSE-NEXT:    movaps %xmm4, 128(%rcx)776; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,0,1,3]777; SSE-NEXT:    movaps %xmm5, 176(%rcx)778; SSE-NEXT:    retq779;780; AVX-LABEL: store_i32_stride3_vf16:781; AVX:       # %bb.0:782; AVX-NEXT:    vmovaps (%rdi), %xmm0783; AVX-NEXT:    vmovaps 16(%rdi), %xmm1784; AVX-NEXT:    vmovaps 32(%rdi), %xmm2785; AVX-NEXT:    vmovaps (%rsi), %xmm3786; AVX-NEXT:    vmovaps 16(%rsi), %xmm4787; AVX-NEXT:    vmovaps 32(%rsi), %xmm5788; AVX-NEXT:    vmovaps 48(%rsi), %xmm6789; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[1,1,2,2]790; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2],xmm7[3]791; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]792; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]793; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0794; AVX-NEXT:    vbroadcastsd (%rdx), %ymm3795; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3,4],ymm3[5],ymm0[6,7]796; AVX-NEXT:    vmovaps 48(%rdi), %xmm3797; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[3,3],xmm6[3,3]798; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,1,2,2]799; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm6[0,1],xmm3[2],xmm6[3]800; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm3, %ymm3801; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm6 = mem[0,1,0,1]802; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[0,0,3,3]803; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm6[1],ymm3[2,3],ymm6[4],ymm3[5,6],ymm6[7]804; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[1,1,2,2]805; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm2[2],xmm6[3]806; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]807; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]808; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm2, %ymm2809; AVX-NEXT:    vbroadcastsd 32(%rdx), %ymm5810; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm5[2],ymm2[3,4],ymm5[5],ymm2[6,7]811; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm1[3,3],xmm4[3,3]812; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,1,2,2]813; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm4[0,1],xmm1[2],xmm4[3]814; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm1, %ymm1815; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = mem[0,1,0,1]816; AVX-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[0,0,3,3]817; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2,3],ymm4[4],ymm1[5,6],ymm4[7]818; AVX-NEXT:    vpermilps {{.*#+}} ymm4 = mem[0,0,3,3,4,4,7,7]819; AVX-NEXT:    vpermilpd {{.*#+}} ymm5 = mem[1,0,2,2]820; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]821; AVX-NEXT:    vpermilpd {{.*#+}} ymm5 = mem[1,1,2,2]822; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0],ymm4[1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]823; AVX-NEXT:    vpermilps {{.*#+}} ymm5 = mem[0,0,3,3,4,4,7,7]824; AVX-NEXT:    vpermilpd {{.*#+}} ymm6 = mem[1,0,2,2]825; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]826; AVX-NEXT:    vpermilpd {{.*#+}} ymm6 = mem[1,1,2,2]827; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0],ymm5[1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]828; AVX-NEXT:    vmovaps %ymm5, 128(%rcx)829; AVX-NEXT:    vmovaps %ymm4, 32(%rcx)830; AVX-NEXT:    vmovaps %ymm1, 64(%rcx)831; AVX-NEXT:    vmovaps %ymm2, 96(%rcx)832; AVX-NEXT:    vmovaps %ymm3, 160(%rcx)833; AVX-NEXT:    vmovaps %ymm0, (%rcx)834; AVX-NEXT:    vzeroupper835; AVX-NEXT:    retq836;837; AVX2-LABEL: store_i32_stride3_vf16:838; AVX2:       # %bb.0:839; AVX2-NEXT:    vmovaps (%rdi), %ymm4840; AVX2-NEXT:    vmovaps 32(%rdi), %ymm0841; AVX2-NEXT:    vmovaps (%rsi), %ymm5842; AVX2-NEXT:    vmovaps 32(%rsi), %ymm3843; AVX2-NEXT:    vmovaps (%rdx), %ymm6844; AVX2-NEXT:    vmovaps 32(%rdx), %ymm1845; AVX2-NEXT:    vpermilps {{.*#+}} xmm2 = mem[1,0,2,2]846; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,1]847; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm4[0,0,2,1]848; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0],ymm2[1],ymm7[2,3],ymm2[4],ymm7[5,6],ymm2[7]849; AVX2-NEXT:    vbroadcastsd (%rdx), %ymm7850; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm7[2],ymm2[3,4],ymm7[5],ymm2[6,7]851; AVX2-NEXT:    vbroadcastsd 56(%rdi), %ymm7852; AVX2-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,2,3,3,5,6,7,7]853; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,3]854; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]855; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm1[2,1,3,3]856; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3],ymm8[4],ymm7[5,6],ymm8[7]857; AVX2-NEXT:    vpermilps {{.*#+}} xmm8 = mem[1,0,2,2]858; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,1]859; AVX2-NEXT:    vpermpd {{.*#+}} ymm9 = ymm0[0,0,2,1]860; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3],ymm8[4],ymm9[5,6],ymm8[7]861; AVX2-NEXT:    vbroadcastsd 32(%rdx), %ymm9862; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]863; AVX2-NEXT:    vbroadcastsd 24(%rdi), %ymm9864; AVX2-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[1,2,3,3,5,6,7,7]865; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[2,2,2,3]866; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3,4],ymm9[5],ymm10[6,7]867; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,1,3,3]868; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm10[1],ymm9[2,3],ymm10[4],ymm9[5,6],ymm10[7]869; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,3,3,4,4,7,7]870; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[1,1,2,2]871; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2],ymm4[3,4],ymm5[5],ymm4[6,7]872; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm6[1,1,2,2]873; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0],ymm4[1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]874; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,3,3,4,4,7,7]875; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]876; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3,4],ymm3[5],ymm0[6,7]877; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]878; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]879; AVX2-NEXT:    vmovaps %ymm0, 128(%rcx)880; AVX2-NEXT:    vmovaps %ymm4, 32(%rcx)881; AVX2-NEXT:    vmovaps %ymm9, 64(%rcx)882; AVX2-NEXT:    vmovaps %ymm8, 96(%rcx)883; AVX2-NEXT:    vmovaps %ymm7, 160(%rcx)884; AVX2-NEXT:    vmovaps %ymm2, (%rcx)885; AVX2-NEXT:    vzeroupper886; AVX2-NEXT:    retq887;888; AVX2-FP-LABEL: store_i32_stride3_vf16:889; AVX2-FP:       # %bb.0:890; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm4891; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm0892; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm5893; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm3894; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm6895; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm1896; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm2 = mem[1,0,2,2]897; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,1]898; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm4[0,0,2,1]899; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0],ymm2[1],ymm7[2,3],ymm2[4],ymm7[5,6],ymm2[7]900; AVX2-FP-NEXT:    vbroadcastsd (%rdx), %ymm7901; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm7[2],ymm2[3,4],ymm7[5],ymm2[6,7]902; AVX2-FP-NEXT:    vbroadcastsd 56(%rdi), %ymm7903; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,2,3,3,5,6,7,7]904; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,3]905; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]906; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm1[2,1,3,3]907; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3],ymm8[4],ymm7[5,6],ymm8[7]908; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm8 = mem[1,0,2,2]909; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,1,0,1]910; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm0[0,0,2,1]911; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3],ymm8[4],ymm9[5,6],ymm8[7]912; AVX2-FP-NEXT:    vbroadcastsd 32(%rdx), %ymm9913; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]914; AVX2-FP-NEXT:    vbroadcastsd 24(%rdi), %ymm9915; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm10 = ymm5[1,2,3,3,5,6,7,7]916; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[2,2,2,3]917; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3,4],ymm9[5],ymm10[6,7]918; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm6[2,1,3,3]919; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm10[1],ymm9[2,3],ymm10[4],ymm9[5,6],ymm10[7]920; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,3,3,4,4,7,7]921; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[1,1,2,2]922; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2],ymm4[3,4],ymm5[5],ymm4[6,7]923; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm6[1,1,2,2]924; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0],ymm4[1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]925; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,0,3,3,4,4,7,7]926; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]927; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3,4],ymm3[5],ymm0[6,7]928; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]929; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]930; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rcx)931; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%rcx)932; AVX2-FP-NEXT:    vmovaps %ymm9, 64(%rcx)933; AVX2-FP-NEXT:    vmovaps %ymm8, 96(%rcx)934; AVX2-FP-NEXT:    vmovaps %ymm7, 160(%rcx)935; AVX2-FP-NEXT:    vmovaps %ymm2, (%rcx)936; AVX2-FP-NEXT:    vzeroupper937; AVX2-FP-NEXT:    retq938;939; AVX2-FCP-LABEL: store_i32_stride3_vf16:940; AVX2-FCP:       # %bb.0:941; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm1942; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm2943; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm3944; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm4945; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm5946; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm6947; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[0,0,3,3,4,4,7,7]948; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm1[1,1,2,2]949; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm0[2],ymm7[3,4],ymm0[5],ymm7[6,7]950; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm5[1,1,2,2]951; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0],ymm0[1,2],ymm7[3],ymm0[4,5],ymm7[6],ymm0[7]952; AVX2-FCP-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = [1,0,2,2,1,0,2,2]953; AVX2-FCP-NEXT:    # ymm7 = mem[0,1,0,1]954; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm7, %ymm8955; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]956; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm8[1],ymm1[2,3],ymm8[4],ymm1[5,6],ymm8[7]957; AVX2-FCP-NEXT:    vbroadcastsd (%rdx), %ymm8958; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm8[2],ymm1[3,4],ymm8[5],ymm1[6,7]959; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm8 = ymm4[0,0,3,3,4,4,7,7]960; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm2[1,1,2,2]961; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2],ymm9[3,4],ymm8[5],ymm9[6,7]962; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm6[1,1,2,2]963; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0],ymm8[1,2],ymm9[3],ymm8[4,5],ymm9[6],ymm8[7]964; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm9 = [5,6,5,6,5,6,7,7]965; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm9, %ymm10966; AVX2-FCP-NEXT:    vbroadcastsd 56(%rdi), %ymm11967; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2],ymm10[3,4],ymm11[5],ymm10[6,7]968; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]969; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm10[0],ymm6[1],ymm10[2,3],ymm6[4],ymm10[5,6],ymm6[7]970; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm7, %ymm4971; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]972; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6],ymm4[7]973; AVX2-FCP-NEXT:    vbroadcastsd 32(%rdx), %ymm4974; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2],ymm2[3,4],ymm4[5],ymm2[6,7]975; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm9, %ymm3976; AVX2-FCP-NEXT:    vbroadcastsd 24(%rdi), %ymm4977; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]978; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm5[2,1,3,3]979; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]980; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rcx)981; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rcx)982; AVX2-FCP-NEXT:    vmovaps %ymm6, 160(%rcx)983; AVX2-FCP-NEXT:    vmovaps %ymm8, 128(%rcx)984; AVX2-FCP-NEXT:    vmovaps %ymm1, (%rcx)985; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)986; AVX2-FCP-NEXT:    vzeroupper987; AVX2-FCP-NEXT:    retq988;989; AVX512-LABEL: store_i32_stride3_vf16:990; AVX512:       # %bb.0:991; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0992; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm1993; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm2994; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]995; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3996; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]997; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm4998; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]999; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31000; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1001; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51002; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1003; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31004; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1005; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01006; AVX512-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1007; AVX512-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1008; AVX512-NEXT:    vmovdqa64 %zmm4, (%rcx)1009; AVX512-NEXT:    vzeroupper1010; AVX512-NEXT:    retq1011;1012; AVX512-FCP-LABEL: store_i32_stride3_vf16:1013; AVX512-FCP:       # %bb.0:1014; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01015; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm11016; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm21017; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1018; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31019; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1020; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41021; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1022; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31023; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1024; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51025; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1026; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31027; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1028; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01029; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1030; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1031; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%rcx)1032; AVX512-FCP-NEXT:    vzeroupper1033; AVX512-FCP-NEXT:    retq1034;1035; AVX512DQ-LABEL: store_i32_stride3_vf16:1036; AVX512DQ:       # %bb.0:1037; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm01038; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm11039; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm21040; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1041; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31042; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1043; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41044; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1045; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31046; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1047; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51048; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1049; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31050; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1051; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01052; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1053; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1054; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rcx)1055; AVX512DQ-NEXT:    vzeroupper1056; AVX512DQ-NEXT:    retq1057;1058; AVX512DQ-FCP-LABEL: store_i32_stride3_vf16:1059; AVX512DQ-FCP:       # %bb.0:1060; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01061; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm11062; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm21063; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1064; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31065; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1066; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41067; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1068; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31069; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1070; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51071; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1072; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31073; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1074; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01075; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1076; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1077; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%rcx)1078; AVX512DQ-FCP-NEXT:    vzeroupper1079; AVX512DQ-FCP-NEXT:    retq1080;1081; AVX512BW-LABEL: store_i32_stride3_vf16:1082; AVX512BW:       # %bb.0:1083; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm01084; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm11085; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm21086; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1087; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31088; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1089; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41090; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1091; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31092; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1093; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51094; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1095; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31096; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1097; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01098; AVX512BW-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1099; AVX512BW-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1100; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rcx)1101; AVX512BW-NEXT:    vzeroupper1102; AVX512BW-NEXT:    retq1103;1104; AVX512BW-FCP-LABEL: store_i32_stride3_vf16:1105; AVX512BW-FCP:       # %bb.0:1106; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01107; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm11108; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm21109; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1110; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31111; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1112; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41113; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1114; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31115; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1116; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51117; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1118; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31119; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1120; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01121; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1122; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1123; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rcx)1124; AVX512BW-FCP-NEXT:    vzeroupper1125; AVX512BW-FCP-NEXT:    retq1126;1127; AVX512DQ-BW-LABEL: store_i32_stride3_vf16:1128; AVX512DQ-BW:       # %bb.0:1129; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm01130; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm11131; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm21132; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1133; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31134; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1135; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41136; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1137; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31138; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1139; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51140; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1141; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31142; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1143; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01144; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1145; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1146; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%rcx)1147; AVX512DQ-BW-NEXT:    vzeroupper1148; AVX512DQ-BW-NEXT:    retq1149;1150; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf16:1151; AVX512DQ-BW-FCP:       # %bb.0:1152; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01153; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm11154; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm21155; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1156; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31157; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1158; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41159; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1160; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31161; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1162; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51163; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1164; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31165; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1166; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01167; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 128(%rcx)1168; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1169; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rcx)1170; AVX512DQ-BW-FCP-NEXT:    vzeroupper1171; AVX512DQ-BW-FCP-NEXT:    retq1172  %in.vec0 = load <16 x i32>, ptr %in.vecptr0, align 641173  %in.vec1 = load <16 x i32>, ptr %in.vecptr1, align 641174  %in.vec2 = load <16 x i32>, ptr %in.vecptr2, align 641175  %1 = shufflevector <16 x i32> %in.vec0, <16 x i32> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>1176  %2 = shufflevector <16 x i32> %in.vec2, <16 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>1177  %3 = shufflevector <32 x i32> %1, <32 x i32> %2, <48 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47>1178  %interleaved.vec = shufflevector <48 x i32> %3, <48 x i32> poison, <48 x i32> <i32 0, i32 16, i32 32, i32 1, i32 17, i32 33, i32 2, i32 18, i32 34, i32 3, i32 19, i32 35, i32 4, i32 20, i32 36, i32 5, i32 21, i32 37, i32 6, i32 22, i32 38, i32 7, i32 23, i32 39, i32 8, i32 24, i32 40, i32 9, i32 25, i32 41, i32 10, i32 26, i32 42, i32 11, i32 27, i32 43, i32 12, i32 28, i32 44, i32 13, i32 29, i32 45, i32 14, i32 30, i32 46, i32 15, i32 31, i32 47>1179  store <48 x i32> %interleaved.vec, ptr %out.vec, align 641180  ret void1181}1182 1183define void @store_i32_stride3_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {1184; SSE-LABEL: store_i32_stride3_vf32:1185; SSE:       # %bb.0:1186; SSE-NEXT:    subq $152, %rsp1187; SSE-NEXT:    movaps (%rdi), %xmm11188; SSE-NEXT:    movaps 16(%rdi), %xmm21189; SSE-NEXT:    movaps 32(%rdi), %xmm31190; SSE-NEXT:    movaps 48(%rdi), %xmm41191; SSE-NEXT:    movaps (%rsi), %xmm101192; SSE-NEXT:    movaps 16(%rsi), %xmm131193; SSE-NEXT:    movaps 32(%rsi), %xmm121194; SSE-NEXT:    movaps 48(%rsi), %xmm91195; SSE-NEXT:    movaps (%rdx), %xmm111196; SSE-NEXT:    movaps 16(%rdx), %xmm141197; SSE-NEXT:    movaps 32(%rdx), %xmm71198; SSE-NEXT:    movaps 48(%rdx), %xmm81199; SSE-NEXT:    movaps %xmm1, %xmm01200; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm11[0,3]1201; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1202; SSE-NEXT:    movaps %xmm1, %xmm51203; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm10[0],xmm5[1],xmm10[1]1204; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm0[2,0]1205; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1206; SSE-NEXT:    movaps %xmm1, %xmm01207; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]1208; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,3],xmm10[3,3]1209; SSE-NEXT:    movaps %xmm1, %xmm151210; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[1,1],xmm11[1,1]1211; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,2],xmm0[0,2]1212; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1213; SSE-NEXT:    movaps %xmm2, %xmm01214; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm14[0,3]1215; SSE-NEXT:    movaps %xmm2, %xmm11216; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm13[0],xmm1[1],xmm13[1]1217; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]1218; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1219; SSE-NEXT:    movaps %xmm2, %xmm01220; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm13[1]1221; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm13[3,3]1222; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1223; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[1,1],xmm14[1,1]1224; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[0,2],xmm0[0,2]1225; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1226; SSE-NEXT:    movaps %xmm3, %xmm01227; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1228; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm7[0,3]1229; SSE-NEXT:    movaps %xmm3, %xmm21230; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm12[0],xmm2[1],xmm12[1]1231; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]1232; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1233; SSE-NEXT:    movaps %xmm3, %xmm01234; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]1235; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[3,3],xmm12[3,3]1236; SSE-NEXT:    movaps %xmm3, (%rsp) # 16-byte Spill1237; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[1,1],xmm7[1,1]1238; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,2],xmm0[0,2]1239; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1240; SSE-NEXT:    movaps %xmm4, %xmm01241; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1242; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm8[0,3]1243; SSE-NEXT:    movaps %xmm4, %xmm11244; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm9[0],xmm1[1],xmm9[1]1245; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]1246; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1247; SSE-NEXT:    movaps %xmm4, %xmm01248; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm9[1]1249; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,3],xmm9[3,3]1250; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1251; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[1,1],xmm8[1,1]1252; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,2],xmm0[0,2]1253; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1254; SSE-NEXT:    movaps 64(%rdi), %xmm91255; SSE-NEXT:    movaps 64(%rdx), %xmm21256; SSE-NEXT:    movaps %xmm9, %xmm01257; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm2[0,3]1258; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1259; SSE-NEXT:    movaps 64(%rsi), %xmm121260; SSE-NEXT:    movaps %xmm9, %xmm11261; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm12[0],xmm1[1],xmm12[1]1262; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]1263; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1264; SSE-NEXT:    movaps %xmm9, %xmm01265; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]1266; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[3,3],xmm12[3,3]1267; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[1,1],xmm2[1,1]1268; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,2],xmm0[0,2]1269; SSE-NEXT:    movaps 80(%rdi), %xmm101270; SSE-NEXT:    movaps 80(%rdx), %xmm11271; SSE-NEXT:    movaps %xmm10, %xmm01272; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm1[0,3]1273; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1274; SSE-NEXT:    movaps 80(%rsi), %xmm81275; SSE-NEXT:    movaps %xmm10, %xmm111276; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm8[0],xmm11[1],xmm8[1]1277; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,1],xmm0[2,0]1278; SSE-NEXT:    movaps %xmm10, %xmm01279; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm8[1]1280; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[3,3],xmm8[3,3]1281; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm1[1,1]1282; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,2],xmm0[0,2]1283; SSE-NEXT:    movaps 96(%rdi), %xmm41284; SSE-NEXT:    movaps 96(%rdx), %xmm131285; SSE-NEXT:    movaps %xmm4, %xmm01286; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm13[0,3]1287; SSE-NEXT:    movaps 96(%rsi), %xmm51288; SSE-NEXT:    movaps %xmm4, %xmm61289; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]1290; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm0[2,0]1291; SSE-NEXT:    movaps %xmm4, %xmm01292; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]1293; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,3],xmm5[3,3]1294; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm13[1,1]1295; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm0[0,2]1296; SSE-NEXT:    movaps 112(%rdi), %xmm01297; SSE-NEXT:    movaps 112(%rdx), %xmm71298; SSE-NEXT:    movaps %xmm0, %xmm21299; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm7[0,3]1300; SSE-NEXT:    movaps 112(%rsi), %xmm11301; SSE-NEXT:    movaps %xmm0, %xmm31302; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]1303; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm2[2,0]1304; SSE-NEXT:    movaps %xmm0, %xmm21305; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]1306; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm1[3,3]1307; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm7[1,1]1308; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm2[0,2]1309; SSE-NEXT:    movaps %xmm15, %xmm21310; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload1311; SSE-NEXT:    # xmm2 = xmm2[1,2],mem[2,3]1312; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload1313; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[1,2],xmm14[2,3]1314; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1315; SSE-NEXT:    movaps (%rsp), %xmm15 # 16-byte Reload1316; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1317; SSE-NEXT:    # xmm15 = xmm15[1,2],mem[2,3]1318; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload1319; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload1320; SSE-NEXT:    # xmm14 = xmm14[1,2],mem[2,3]1321; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1322; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload1323; SSE-NEXT:    # xmm9 = xmm9[1,2],mem[2,3]1324; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload1325; SSE-NEXT:    # xmm10 = xmm10[1,2],mem[2,3]1326; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,2],xmm13[2,3]1327; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,2],xmm7[2,3]1328; SSE-NEXT:    movaps %xmm1, 352(%rcx)1329; SSE-NEXT:    movaps %xmm3, 336(%rcx)1330; SSE-NEXT:    movaps %xmm5, 304(%rcx)1331; SSE-NEXT:    movaps %xmm6, 288(%rcx)1332; SSE-NEXT:    movaps %xmm8, 256(%rcx)1333; SSE-NEXT:    movaps %xmm11, 240(%rcx)1334; SSE-NEXT:    movaps %xmm12, 208(%rcx)1335; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1336; SSE-NEXT:    movaps %xmm1, 192(%rcx)1337; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1338; SSE-NEXT:    movaps %xmm1, 160(%rcx)1339; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1340; SSE-NEXT:    movaps %xmm1, 144(%rcx)1341; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1342; SSE-NEXT:    movaps %xmm1, 112(%rcx)1343; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1344; SSE-NEXT:    movaps %xmm1, 96(%rcx)1345; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1346; SSE-NEXT:    movaps %xmm1, 64(%rcx)1347; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1348; SSE-NEXT:    movaps %xmm1, 48(%rcx)1349; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1350; SSE-NEXT:    movaps %xmm1, 16(%rcx)1351; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1352; SSE-NEXT:    movaps %xmm1, (%rcx)1353; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]1354; SSE-NEXT:    movaps %xmm0, 368(%rcx)1355; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,0,1,3]1356; SSE-NEXT:    movaps %xmm4, 320(%rcx)1357; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[2,0,1,3]1358; SSE-NEXT:    movaps %xmm10, 272(%rcx)1359; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,0,1,3]1360; SSE-NEXT:    movaps %xmm9, 224(%rcx)1361; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1362; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]1363; SSE-NEXT:    movaps %xmm0, 176(%rcx)1364; SSE-NEXT:    movaps %xmm15, %xmm01365; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm15[1,3]1366; SSE-NEXT:    movaps %xmm0, 128(%rcx)1367; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1368; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]1369; SSE-NEXT:    movaps %xmm0, 80(%rcx)1370; SSE-NEXT:    movaps %xmm2, %xmm01371; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm2[1,3]1372; SSE-NEXT:    movaps %xmm0, 32(%rcx)1373; SSE-NEXT:    addq $152, %rsp1374; SSE-NEXT:    retq1375;1376; AVX-LABEL: store_i32_stride3_vf32:1377; AVX:       # %bb.0:1378; AVX-NEXT:    vmovaps (%rdi), %xmm01379; AVX-NEXT:    vmovaps 16(%rdi), %xmm31380; AVX-NEXT:    vmovaps 32(%rdi), %xmm61381; AVX-NEXT:    vmovaps (%rsi), %xmm11382; AVX-NEXT:    vmovaps 16(%rsi), %xmm41383; AVX-NEXT:    vmovaps 32(%rsi), %xmm71384; AVX-NEXT:    vmovaps 48(%rsi), %xmm51385; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm1[1,1,2,2]1386; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2],xmm2[3]1387; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]1388; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]1389; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm01390; AVX-NEXT:    vbroadcastsd (%rdx), %ymm11391; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]1392; AVX-NEXT:    vmovaps 80(%rsi), %xmm11393; AVX-NEXT:    vmovaps 80(%rdi), %xmm21394; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm2[3,3],xmm1[3,3]1395; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[1,1,2,2]1396; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3]1397; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm1, %ymm11398; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm2 = mem[0,1,0,1]1399; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0,0,3,3]1400; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1401; AVX-NEXT:    vmovaps 64(%rdi), %xmm21402; AVX-NEXT:    vmovaps 64(%rsi), %xmm81403; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm8[1,1,2,2]1404; AVX-NEXT:    vblendps {{.*#+}} xmm9 = xmm9[0,1],xmm2[2],xmm9[3]1405; AVX-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1]1406; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]1407; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm2, %ymm21408; AVX-NEXT:    vbroadcastsd 64(%rdx), %ymm81409; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm8[2],ymm2[3,4],ymm8[5],ymm2[6,7]1410; AVX-NEXT:    vmovaps 48(%rdi), %xmm81411; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm8[3,3],xmm5[3,3]1412; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[1,1,2,2]1413; AVX-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm8[2],xmm5[3]1414; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm5, %ymm51415; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm8 = mem[0,1,0,1]1416; AVX-NEXT:    vshufpd {{.*#+}} ymm8 = ymm8[0,0,3,3]1417; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm8[1],ymm5[2,3],ymm8[4],ymm5[5,6],ymm8[7]1418; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm7[1,1,2,2]1419; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm6[2],xmm8[3]1420; AVX-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm6[0],xmm7[0],xmm6[1],xmm7[1]1421; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,2,2]1422; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm61423; AVX-NEXT:    vbroadcastsd 32(%rdx), %ymm71424; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2],ymm6[3,4],ymm7[5],ymm6[6,7]1425; AVX-NEXT:    vmovaps 112(%rsi), %xmm71426; AVX-NEXT:    vmovaps 112(%rdi), %xmm81427; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm8[3,3],xmm7[3,3]1428; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,1,2,2]1429; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]1430; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm7, %ymm71431; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm8 = mem[0,1,0,1]1432; AVX-NEXT:    vshufpd {{.*#+}} ymm8 = ymm8[0,0,3,3]1433; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3],ymm8[4],ymm7[5,6],ymm8[7]1434; AVX-NEXT:    vmovaps 96(%rdi), %xmm81435; AVX-NEXT:    vmovaps 96(%rsi), %xmm91436; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[1,1,2,2]1437; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm8[2],xmm10[3]1438; AVX-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]1439; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,2,2]1440; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm8, %ymm81441; AVX-NEXT:    vbroadcastsd 96(%rdx), %ymm91442; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]1443; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm3[3,3],xmm4[3,3]1444; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,1,2,2]1445; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm4[0,1],xmm3[2],xmm4[3]1446; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm3, %ymm31447; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = mem[0,1,0,1]1448; AVX-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[0,0,3,3]1449; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]1450; AVX-NEXT:    vpermilps {{.*#+}} ymm4 = mem[0,0,3,3,4,4,7,7]1451; AVX-NEXT:    vpermilpd {{.*#+}} ymm9 = mem[1,0,2,2]1452; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1],ymm4[2],ymm9[3,4],ymm4[5],ymm9[6,7]1453; AVX-NEXT:    vpermilpd {{.*#+}} ymm9 = mem[1,1,2,2]1454; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0],ymm4[1,2],ymm9[3],ymm4[4,5],ymm9[6],ymm4[7]1455; AVX-NEXT:    vpermilps {{.*#+}} ymm9 = mem[0,0,3,3,4,4,7,7]1456; AVX-NEXT:    vpermilpd {{.*#+}} ymm10 = mem[1,0,2,2]1457; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3,4],ymm9[5],ymm10[6,7]1458; AVX-NEXT:    vpermilpd {{.*#+}} ymm10 = mem[1,1,2,2]1459; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0],ymm9[1,2],ymm10[3],ymm9[4,5],ymm10[6],ymm9[7]1460; AVX-NEXT:    vpermilps {{.*#+}} ymm10 = mem[0,0,3,3,4,4,7,7]1461; AVX-NEXT:    vpermilpd {{.*#+}} ymm11 = mem[1,0,2,2]1462; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2],ymm11[3,4],ymm10[5],ymm11[6,7]1463; AVX-NEXT:    vpermilpd {{.*#+}} ymm11 = mem[1,1,2,2]1464; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0],ymm10[1,2],ymm11[3],ymm10[4,5],ymm11[6],ymm10[7]1465; AVX-NEXT:    vpermilps {{.*#+}} ymm11 = mem[0,0,3,3,4,4,7,7]1466; AVX-NEXT:    vpermilpd {{.*#+}} ymm12 = mem[1,0,2,2]1467; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1],ymm11[2],ymm12[3,4],ymm11[5],ymm12[6,7]1468; AVX-NEXT:    vpermilpd {{.*#+}} ymm12 = mem[1,1,2,2]1469; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0],ymm11[1,2],ymm12[3],ymm11[4,5],ymm12[6],ymm11[7]1470; AVX-NEXT:    vmovaps %ymm11, 320(%rcx)1471; AVX-NEXT:    vmovaps %ymm10, 128(%rcx)1472; AVX-NEXT:    vmovaps %ymm9, 224(%rcx)1473; AVX-NEXT:    vmovaps %ymm4, 32(%rcx)1474; AVX-NEXT:    vmovaps %ymm3, 64(%rcx)1475; AVX-NEXT:    vmovaps %ymm8, 288(%rcx)1476; AVX-NEXT:    vmovaps %ymm7, 352(%rcx)1477; AVX-NEXT:    vmovaps %ymm6, 96(%rcx)1478; AVX-NEXT:    vmovaps %ymm5, 160(%rcx)1479; AVX-NEXT:    vmovaps %ymm2, 192(%rcx)1480; AVX-NEXT:    vmovaps %ymm1, 256(%rcx)1481; AVX-NEXT:    vmovaps %ymm0, (%rcx)1482; AVX-NEXT:    vzeroupper1483; AVX-NEXT:    retq1484;1485; AVX2-LABEL: store_i32_stride3_vf32:1486; AVX2:       # %bb.0:1487; AVX2-NEXT:    subq $40, %rsp1488; AVX2-NEXT:    vmovaps (%rdi), %ymm81489; AVX2-NEXT:    vmovaps 32(%rdi), %ymm11490; AVX2-NEXT:    vmovaps 64(%rdi), %ymm61491; AVX2-NEXT:    vmovaps 32(%rsi), %ymm51492; AVX2-NEXT:    vmovaps 64(%rsi), %ymm91493; AVX2-NEXT:    vmovaps 96(%rsi), %ymm21494; AVX2-NEXT:    vmovaps 32(%rdx), %ymm71495; AVX2-NEXT:    vmovaps 64(%rdx), %ymm101496; AVX2-NEXT:    vmovaps 96(%rdx), %ymm31497; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]1498; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]1499; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm8[0,0,2,1]1500; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2,3],ymm0[4],ymm4[5,6],ymm0[7]1501; AVX2-NEXT:    vbroadcastsd (%rdx), %ymm41502; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm4[2],ymm0[3,4],ymm4[5],ymm0[6,7]1503; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill1504; AVX2-NEXT:    vbroadcastsd 88(%rdi), %ymm41505; AVX2-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[1,2,3,3,5,6,7,7]1506; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]1507; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1],ymm4[2],ymm11[3,4],ymm4[5],ymm11[6,7]1508; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm10[2,1,3,3]1509; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm11[1],ymm4[2,3],ymm11[4],ymm4[5,6],ymm11[7]1510; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1511; AVX2-NEXT:    vpermilps {{.*#+}} xmm11 = mem[1,0,2,2]1512; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,0,1]1513; AVX2-NEXT:    vpermpd {{.*#+}} ymm12 = ymm6[0,0,2,1]1514; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2,3],ymm11[4],ymm12[5,6],ymm11[7]1515; AVX2-NEXT:    vbroadcastsd 64(%rdx), %ymm121516; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1],ymm12[2],ymm11[3,4],ymm12[5],ymm11[6,7]1517; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1518; AVX2-NEXT:    vbroadcastsd 56(%rdi), %ymm121519; AVX2-NEXT:    vshufps {{.*#+}} ymm13 = ymm5[1,2,3,3,5,6,7,7]1520; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,2,2,3]1521; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1],ymm12[2],ymm13[3,4],ymm12[5],ymm13[6,7]1522; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm7[2,1,3,3]1523; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6],ymm13[7]1524; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1525; AVX2-NEXT:    vpermilps {{.*#+}} xmm13 = mem[1,0,2,2]1526; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,0,1]1527; AVX2-NEXT:    vpermpd {{.*#+}} ymm14 = ymm1[0,0,2,1]1528; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2,3],ymm13[4],ymm14[5,6],ymm13[7]1529; AVX2-NEXT:    vbroadcastsd 32(%rdx), %ymm141530; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0,1],ymm14[2],ymm13[3,4],ymm14[5],ymm13[6,7]1531; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1532; AVX2-NEXT:    vbroadcastsd 120(%rdi), %ymm141533; AVX2-NEXT:    vshufps {{.*#+}} ymm15 = ymm2[1,2,3,3,5,6,7,7]1534; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,3]1535; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2],ymm15[3,4],ymm14[5],ymm15[6,7]1536; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm3[2,1,3,3]1537; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm15[1],ymm14[2,3],ymm15[4],ymm14[5,6],ymm15[7]1538; AVX2-NEXT:    vpermilps {{.*#+}} xmm15 = mem[1,0,2,2]1539; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,1,0,1]1540; AVX2-NEXT:    vmovaps 96(%rdi), %ymm01541; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[0,0,2,1]1542; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm15[1],ymm4[2,3],ymm15[4],ymm4[5,6],ymm15[7]1543; AVX2-NEXT:    vbroadcastsd 96(%rdx), %ymm151544; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm4[0,1],ymm15[2],ymm4[3,4],ymm15[5],ymm4[6,7]1545; AVX2-NEXT:    vmovaps (%rsi), %ymm41546; AVX2-NEXT:    vshufps {{.*#+}} ymm11 = ymm4[1,2,3,3,5,6,7,7]1547; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]1548; AVX2-NEXT:    vbroadcastsd 24(%rdi), %ymm121549; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2],ymm11[3,4],ymm12[5],ymm11[6,7]1550; AVX2-NEXT:    vmovaps (%rdx), %ymm121551; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm12[2,1,3,3]1552; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm13[1],ymm11[2,3],ymm13[4],ymm11[5,6],ymm13[7]1553; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,3,3,4,4,7,7]1554; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[1,1,2,2]1555; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm4[2],ymm8[3,4],ymm4[5],ymm8[6,7]1556; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm12[1,1,2,2]1557; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0],ymm4[1,2],ymm8[3],ymm4[4,5],ymm8[6],ymm4[7]1558; AVX2-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,0,3,3,4,4,7,7]1559; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[1,1,2,2]1560; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm8[2],ymm6[3,4],ymm8[5],ymm6[6,7]1561; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm10[1,1,2,2]1562; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0],ymm6[1,2],ymm8[3],ymm6[4,5],ymm8[6],ymm6[7]1563; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,3,3,4,4,7,7]1564; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]1565; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]1566; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm7[1,1,2,2]1567; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0],ymm1[1,2],ymm5[3],ymm1[4,5],ymm5[6],ymm1[7]1568; AVX2-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0,3,3,4,4,7,7]1569; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]1570; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]1571; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm3[1,1,2,2]1572; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2],ymm2[3],ymm0[4,5],ymm2[6],ymm0[7]1573; AVX2-NEXT:    vmovaps %ymm0, 320(%rcx)1574; AVX2-NEXT:    vmovaps %ymm1, 128(%rcx)1575; AVX2-NEXT:    vmovaps %ymm6, 224(%rcx)1576; AVX2-NEXT:    vmovaps %ymm4, 32(%rcx)1577; AVX2-NEXT:    vmovaps %ymm11, 64(%rcx)1578; AVX2-NEXT:    vmovaps %ymm15, 288(%rcx)1579; AVX2-NEXT:    vmovaps %ymm14, 352(%rcx)1580; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1581; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)1582; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1583; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)1584; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1585; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)1586; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1587; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)1588; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload1589; AVX2-NEXT:    vmovaps %ymm0, (%rcx)1590; AVX2-NEXT:    addq $40, %rsp1591; AVX2-NEXT:    vzeroupper1592; AVX2-NEXT:    retq1593;1594; AVX2-FP-LABEL: store_i32_stride3_vf32:1595; AVX2-FP:       # %bb.0:1596; AVX2-FP-NEXT:    subq $40, %rsp1597; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm81598; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm11599; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm61600; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm51601; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm91602; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm21603; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm71604; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm101605; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm31606; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]1607; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]1608; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm8[0,0,2,1]1609; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2,3],ymm0[4],ymm4[5,6],ymm0[7]1610; AVX2-FP-NEXT:    vbroadcastsd (%rdx), %ymm41611; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm4[2],ymm0[3,4],ymm4[5],ymm0[6,7]1612; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill1613; AVX2-FP-NEXT:    vbroadcastsd 88(%rdi), %ymm41614; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[1,2,3,3,5,6,7,7]1615; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]1616; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1],ymm4[2],ymm11[3,4],ymm4[5],ymm11[6,7]1617; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm10[2,1,3,3]1618; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm11[1],ymm4[2,3],ymm11[4],ymm4[5,6],ymm11[7]1619; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1620; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm11 = mem[1,0,2,2]1621; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,0,1]1622; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm12 = ymm6[0,0,2,1]1623; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0],ymm11[1],ymm12[2,3],ymm11[4],ymm12[5,6],ymm11[7]1624; AVX2-FP-NEXT:    vbroadcastsd 64(%rdx), %ymm121625; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1],ymm12[2],ymm11[3,4],ymm12[5],ymm11[6,7]1626; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1627; AVX2-FP-NEXT:    vbroadcastsd 56(%rdi), %ymm121628; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm13 = ymm5[1,2,3,3,5,6,7,7]1629; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,2,2,3]1630; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1],ymm12[2],ymm13[3,4],ymm12[5],ymm13[6,7]1631; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm7[2,1,3,3]1632; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6],ymm13[7]1633; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1634; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm13 = mem[1,0,2,2]1635; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,0,1]1636; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm1[0,0,2,1]1637; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1],ymm14[2,3],ymm13[4],ymm14[5,6],ymm13[7]1638; AVX2-FP-NEXT:    vbroadcastsd 32(%rdx), %ymm141639; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0,1],ymm14[2],ymm13[3,4],ymm14[5],ymm13[6,7]1640; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1641; AVX2-FP-NEXT:    vbroadcastsd 120(%rdi), %ymm141642; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm15 = ymm2[1,2,3,3,5,6,7,7]1643; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,3]1644; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2],ymm15[3,4],ymm14[5],ymm15[6,7]1645; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm3[2,1,3,3]1646; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm15[1],ymm14[2,3],ymm15[4],ymm14[5,6],ymm15[7]1647; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm15 = mem[1,0,2,2]1648; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,1,0,1]1649; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm01650; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[0,0,2,1]1651; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm15[1],ymm4[2,3],ymm15[4],ymm4[5,6],ymm15[7]1652; AVX2-FP-NEXT:    vbroadcastsd 96(%rdx), %ymm151653; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm4[0,1],ymm15[2],ymm4[3,4],ymm15[5],ymm4[6,7]1654; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm41655; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm11 = ymm4[1,2,3,3,5,6,7,7]1656; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]1657; AVX2-FP-NEXT:    vbroadcastsd 24(%rdi), %ymm121658; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2],ymm11[3,4],ymm12[5],ymm11[6,7]1659; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm121660; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm12[2,1,3,3]1661; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm13[1],ymm11[2,3],ymm13[4],ymm11[5,6],ymm13[7]1662; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,3,3,4,4,7,7]1663; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[1,1,2,2]1664; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm4[2],ymm8[3,4],ymm4[5],ymm8[6,7]1665; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm12[1,1,2,2]1666; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0],ymm4[1,2],ymm8[3],ymm4[4,5],ymm8[6],ymm4[7]1667; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,0,3,3,4,4,7,7]1668; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[1,1,2,2]1669; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm8[2],ymm6[3,4],ymm8[5],ymm6[6,7]1670; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm10[1,1,2,2]1671; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0],ymm6[1,2],ymm8[3],ymm6[4,5],ymm8[6],ymm6[7]1672; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,0,3,3,4,4,7,7]1673; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]1674; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]1675; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm7[1,1,2,2]1676; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0],ymm1[1,2],ymm5[3],ymm1[4,5],ymm5[6],ymm1[7]1677; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0,3,3,4,4,7,7]1678; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]1679; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]1680; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm3[1,1,2,2]1681; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2],ymm2[3],ymm0[4,5],ymm2[6],ymm0[7]1682; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rcx)1683; AVX2-FP-NEXT:    vmovaps %ymm1, 128(%rcx)1684; AVX2-FP-NEXT:    vmovaps %ymm6, 224(%rcx)1685; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%rcx)1686; AVX2-FP-NEXT:    vmovaps %ymm11, 64(%rcx)1687; AVX2-FP-NEXT:    vmovaps %ymm15, 288(%rcx)1688; AVX2-FP-NEXT:    vmovaps %ymm14, 352(%rcx)1689; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1690; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)1691; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1692; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)1693; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1694; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)1695; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1696; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)1697; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload1698; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)1699; AVX2-FP-NEXT:    addq $40, %rsp1700; AVX2-FP-NEXT:    vzeroupper1701; AVX2-FP-NEXT:    retq1702;1703; AVX2-FCP-LABEL: store_i32_stride3_vf32:1704; AVX2-FCP:       # %bb.0:1705; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm41706; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm71707; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm111708; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm31709; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm11710; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm101711; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm131712; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm21713; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm121714; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm141715; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,0,3,3,4,4,7,7]1716; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm4[1,1,2,2]1717; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2],ymm5[3,4],ymm0[5],ymm5[6,7]1718; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[1,1,2,2]1719; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0],ymm0[1,2],ymm5[3],ymm0[4,5],ymm5[6],ymm0[7]1720; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1721; AVX2-FCP-NEXT:    vbroadcastf128 {{.*#+}} ymm8 = [1,0,2,2,1,0,2,2]1722; AVX2-FCP-NEXT:    # ymm8 = mem[0,1,0,1]1723; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm8, %ymm51724; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,0,2,1]1725; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3],ymm5[4],ymm4[5,6],ymm5[7]1726; AVX2-FCP-NEXT:    vbroadcastsd (%rdx), %ymm51727; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm5[2],ymm4[3,4],ymm5[5],ymm4[6,7]1728; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1729; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm9 = [5,6,5,6,5,6,7,7]1730; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm9, %ymm51731; AVX2-FCP-NEXT:    vbroadcastsd 88(%rdi), %ymm61732; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2],ymm5[3,4],ymm6[5],ymm5[6,7]1733; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm14[2,1,3,3]1734; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3],ymm6[4],ymm5[5,6],ymm6[7]1735; AVX2-FCP-NEXT:    vpermps %ymm13, %ymm8, %ymm61736; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm11[0,0,2,1]1737; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0],ymm6[1],ymm15[2,3],ymm6[4],ymm15[5,6],ymm6[7]1738; AVX2-FCP-NEXT:    vbroadcastsd 64(%rdx), %ymm151739; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm15[2],ymm6[3,4],ymm15[5],ymm6[6,7]1740; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,0,3,3,4,4,7,7]1741; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[1,1,2,2]1742; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm13[2],ymm11[3,4],ymm13[5],ymm11[6,7]1743; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm14[1,1,2,2]1744; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm13[0],ymm11[1,2],ymm13[3],ymm11[4,5],ymm13[6],ymm11[7]1745; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm13 = ymm10[0,0,3,3,4,4,7,7]1746; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm7[1,1,2,2]1747; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2],ymm14[3,4],ymm13[5],ymm14[6,7]1748; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm12[1,1,2,2]1749; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1,2],ymm14[3],ymm13[4,5],ymm14[6],ymm13[7]1750; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm9, %ymm141751; AVX2-FCP-NEXT:    vbroadcastsd 56(%rdi), %ymm151752; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]1753; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm151754; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[2,1,3,3]1755; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0],ymm12[1],ymm14[2,3],ymm12[4],ymm14[5,6],ymm12[7]1756; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm8, %ymm101757; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,0,2,1]1758; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm10[1],ymm7[2,3],ymm10[4],ymm7[5,6],ymm10[7]1759; AVX2-FCP-NEXT:    vbroadcastsd 32(%rdx), %ymm101760; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm10[2],ymm7[3,4],ymm10[5],ymm7[6,7]1761; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm10 = ymm15[0,0,3,3,4,4,7,7]1762; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm3[1,1,2,2]1763; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0,1],ymm10[2],ymm14[3,4],ymm10[5],ymm14[6,7]1764; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm141765; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm14[1,1,2,2]1766; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm10[1,2],ymm0[3],ymm10[4,5],ymm0[6],ymm10[7]1767; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm9, %ymm101768; AVX2-FCP-NEXT:    vbroadcastsd 120(%rdi), %ymm41769; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1],ymm4[2],ymm10[3,4],ymm4[5],ymm10[6,7]1770; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm14[2,1,3,3]1771; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm10[1],ymm4[2,3],ymm10[4],ymm4[5,6],ymm10[7]1772; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm8, %ymm81773; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,0,2,1]1774; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm8[1],ymm3[2,3],ymm8[4],ymm3[5,6],ymm8[7]1775; AVX2-FCP-NEXT:    vbroadcastsd 96(%rdx), %ymm81776; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm8[2],ymm3[3,4],ymm8[5],ymm3[6,7]1777; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm9, %ymm11778; AVX2-FCP-NEXT:    vbroadcastsd 24(%rdi), %ymm81779; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm8[2],ymm1[3,4],ymm8[5],ymm1[6,7]1780; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,1,3,3]1781; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1782; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rcx)1783; AVX2-FCP-NEXT:    vmovaps %ymm3, 288(%rcx)1784; AVX2-FCP-NEXT:    vmovaps %ymm4, 352(%rcx)1785; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)1786; AVX2-FCP-NEXT:    vmovaps %ymm7, 96(%rcx)1787; AVX2-FCP-NEXT:    vmovaps %ymm12, 160(%rcx)1788; AVX2-FCP-NEXT:    vmovaps %ymm13, 128(%rcx)1789; AVX2-FCP-NEXT:    vmovaps %ymm11, 224(%rcx)1790; AVX2-FCP-NEXT:    vmovaps %ymm6, 192(%rcx)1791; AVX2-FCP-NEXT:    vmovaps %ymm5, 256(%rcx)1792; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1793; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)1794; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1795; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)1796; AVX2-FCP-NEXT:    vzeroupper1797; AVX2-FCP-NEXT:    retq1798;1799; AVX512-LABEL: store_i32_stride3_vf32:1800; AVX512:       # %bb.0:1801; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm01802; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm11803; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm21804; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm31805; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm41806; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm51807; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1808; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm71809; AVX512-NEXT:    vpermt2d %zmm2, %zmm6, %zmm71810; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1811; AVX512-NEXT:    vpermt2d %zmm4, %zmm8, %zmm71812; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1813; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm101814; AVX512-NEXT:    vpermt2d %zmm3, %zmm9, %zmm101815; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1816; AVX512-NEXT:    vpermt2d %zmm5, %zmm11, %zmm101817; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1818; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm131819; AVX512-NEXT:    vpermt2d %zmm1, %zmm12, %zmm131820; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1821; AVX512-NEXT:    vpermt2d %zmm5, %zmm14, %zmm131822; AVX512-NEXT:    vpermt2d %zmm3, %zmm6, %zmm11823; AVX512-NEXT:    vpermt2d %zmm5, %zmm8, %zmm11824; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm91825; AVX512-NEXT:    vpermt2d %zmm4, %zmm11, %zmm91826; AVX512-NEXT:    vpermt2d %zmm0, %zmm12, %zmm21827; AVX512-NEXT:    vpermt2d %zmm4, %zmm14, %zmm21828; AVX512-NEXT:    vmovdqa64 %zmm2, 64(%rcx)1829; AVX512-NEXT:    vmovdqa64 %zmm9, 128(%rcx)1830; AVX512-NEXT:    vmovdqa64 %zmm1, 192(%rcx)1831; AVX512-NEXT:    vmovdqa64 %zmm13, 256(%rcx)1832; AVX512-NEXT:    vmovdqa64 %zmm10, 320(%rcx)1833; AVX512-NEXT:    vmovdqa64 %zmm7, (%rcx)1834; AVX512-NEXT:    vzeroupper1835; AVX512-NEXT:    retq1836;1837; AVX512-FCP-LABEL: store_i32_stride3_vf32:1838; AVX512-FCP:       # %bb.0:1839; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01840; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11841; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm21842; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm31843; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm41844; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm51845; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1846; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm71847; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm6, %zmm71848; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1849; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm71850; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1851; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm101852; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm9, %zmm101853; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1854; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm101855; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1856; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm131857; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm12, %zmm131858; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1859; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm131860; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm11861; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm11862; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm91863; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm91864; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm21865; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm21866; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rcx)1867; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rcx)1868; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rcx)1869; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rcx)1870; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 320(%rcx)1871; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, (%rcx)1872; AVX512-FCP-NEXT:    vzeroupper1873; AVX512-FCP-NEXT:    retq1874;1875; AVX512DQ-LABEL: store_i32_stride3_vf32:1876; AVX512DQ:       # %bb.0:1877; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm01878; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm11879; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm21880; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm31881; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm41882; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm51883; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1884; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm71885; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm6, %zmm71886; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1887; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm8, %zmm71888; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1889; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm101890; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm9, %zmm101891; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1892; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm11, %zmm101893; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1894; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm131895; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm12, %zmm131896; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1897; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm14, %zmm131898; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm6, %zmm11899; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm8, %zmm11900; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm0, %zmm91901; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm11, %zmm91902; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm12, %zmm21903; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm14, %zmm21904; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 64(%rcx)1905; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 128(%rcx)1906; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 192(%rcx)1907; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 256(%rcx)1908; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 320(%rcx)1909; AVX512DQ-NEXT:    vmovdqa64 %zmm7, (%rcx)1910; AVX512DQ-NEXT:    vzeroupper1911; AVX512DQ-NEXT:    retq1912;1913; AVX512DQ-FCP-LABEL: store_i32_stride3_vf32:1914; AVX512DQ-FCP:       # %bb.0:1915; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01916; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11917; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm21918; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm31919; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm41920; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm51921; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1922; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm71923; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm6, %zmm71924; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1925; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm71926; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1927; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm101928; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm9, %zmm101929; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1930; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm101931; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1932; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm131933; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm12, %zmm131934; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1935; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm131936; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm11937; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm11938; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm91939; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm91940; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm21941; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm21942; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rcx)1943; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rcx)1944; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rcx)1945; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rcx)1946; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 320(%rcx)1947; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, (%rcx)1948; AVX512DQ-FCP-NEXT:    vzeroupper1949; AVX512DQ-FCP-NEXT:    retq1950;1951; AVX512BW-LABEL: store_i32_stride3_vf32:1952; AVX512BW:       # %bb.0:1953; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm01954; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm11955; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm21956; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm31957; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm41958; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm51959; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1960; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm71961; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm6, %zmm71962; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]1963; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm71964; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]1965; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm101966; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm9, %zmm101967; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]1968; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm11, %zmm101969; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]1970; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm131971; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm12, %zmm131972; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]1973; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm14, %zmm131974; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm6, %zmm11975; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm11976; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm91977; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm11, %zmm91978; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm12, %zmm21979; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm21980; AVX512BW-NEXT:    vmovdqa64 %zmm2, 64(%rcx)1981; AVX512BW-NEXT:    vmovdqa64 %zmm9, 128(%rcx)1982; AVX512BW-NEXT:    vmovdqa64 %zmm1, 192(%rcx)1983; AVX512BW-NEXT:    vmovdqa64 %zmm13, 256(%rcx)1984; AVX512BW-NEXT:    vmovdqa64 %zmm10, 320(%rcx)1985; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%rcx)1986; AVX512BW-NEXT:    vzeroupper1987; AVX512BW-NEXT:    retq1988;1989; AVX512BW-FCP-LABEL: store_i32_stride3_vf32:1990; AVX512BW-FCP:       # %bb.0:1991; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01992; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11993; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm21994; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm31995; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm41996; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm51997; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]1998; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm71999; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm6, %zmm72000; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]2001; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm72002; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]2003; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm102004; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm9, %zmm102005; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]2006; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm102007; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]2008; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm132009; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm12, %zmm132010; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]2011; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm132012; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm12013; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm12014; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm92015; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm92016; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm22017; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm22018; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rcx)2019; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rcx)2020; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rcx)2021; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rcx)2022; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 320(%rcx)2023; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rcx)2024; AVX512BW-FCP-NEXT:    vzeroupper2025; AVX512BW-FCP-NEXT:    retq2026;2027; AVX512DQ-BW-LABEL: store_i32_stride3_vf32:2028; AVX512DQ-BW:       # %bb.0:2029; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm02030; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm12031; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm22032; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm32033; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm42034; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm52035; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]2036; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm72037; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm6, %zmm72038; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]2039; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm72040; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]2041; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm102042; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm9, %zmm102043; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]2044; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm11, %zmm102045; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]2046; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm132047; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm12, %zmm132048; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]2049; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm14, %zmm132050; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm6, %zmm12051; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm12052; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm0, %zmm92053; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm11, %zmm92054; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm12, %zmm22055; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm22056; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 64(%rcx)2057; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 128(%rcx)2058; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 192(%rcx)2059; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 256(%rcx)2060; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 320(%rcx)2061; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, (%rcx)2062; AVX512DQ-BW-NEXT:    vzeroupper2063; AVX512DQ-BW-NEXT:    retq2064;2065; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf32:2066; AVX512DQ-BW-FCP:       # %bb.0:2067; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm02068; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12069; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm22070; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm32071; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm42072; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm52073; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]2074; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm72075; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm6, %zmm72076; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]2077; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm72078; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]2079; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm102080; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm9, %zmm102081; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm11 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]2082; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm11, %zmm102083; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]2084; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm132085; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm12, %zmm132086; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]2087; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm14, %zmm132088; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm6, %zmm12089; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm12090; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm0, %zmm92091; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm11, %zmm92092; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm12, %zmm22093; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm22094; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rcx)2095; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rcx)2096; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 192(%rcx)2097; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rcx)2098; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 320(%rcx)2099; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, (%rcx)2100; AVX512DQ-BW-FCP-NEXT:    vzeroupper2101; AVX512DQ-BW-FCP-NEXT:    retq2102  %in.vec0 = load <32 x i32>, ptr %in.vecptr0, align 642103  %in.vec1 = load <32 x i32>, ptr %in.vecptr1, align 642104  %in.vec2 = load <32 x i32>, ptr %in.vecptr2, align 642105  %1 = shufflevector <32 x i32> %in.vec0, <32 x i32> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>2106  %2 = shufflevector <32 x i32> %in.vec2, <32 x i32> poison, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>2107  %3 = shufflevector <64 x i32> %1, <64 x i32> %2, <96 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95>2108  %interleaved.vec = shufflevector <96 x i32> %3, <96 x i32> poison, <96 x i32> <i32 0, i32 32, i32 64, i32 1, i32 33, i32 65, i32 2, i32 34, i32 66, i32 3, i32 35, i32 67, i32 4, i32 36, i32 68, i32 5, i32 37, i32 69, i32 6, i32 38, i32 70, i32 7, i32 39, i32 71, i32 8, i32 40, i32 72, i32 9, i32 41, i32 73, i32 10, i32 42, i32 74, i32 11, i32 43, i32 75, i32 12, i32 44, i32 76, i32 13, i32 45, i32 77, i32 14, i32 46, i32 78, i32 15, i32 47, i32 79, i32 16, i32 48, i32 80, i32 17, i32 49, i32 81, i32 18, i32 50, i32 82, i32 19, i32 51, i32 83, i32 20, i32 52, i32 84, i32 21, i32 53, i32 85, i32 22, i32 54, i32 86, i32 23, i32 55, i32 87, i32 24, i32 56, i32 88, i32 25, i32 57, i32 89, i32 26, i32 58, i32 90, i32 27, i32 59, i32 91, i32 28, i32 60, i32 92, i32 29, i32 61, i32 93, i32 30, i32 62, i32 94, i32 31, i32 63, i32 95>2109  store <96 x i32> %interleaved.vec, ptr %out.vec, align 642110  ret void2111}2112 2113define void @store_i32_stride3_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %out.vec) nounwind {2114; SSE-LABEL: store_i32_stride3_vf64:2115; SSE:       # %bb.0:2116; SSE-NEXT:    subq $664, %rsp # imm = 0x2982117; SSE-NEXT:    movaps (%rdi), %xmm22118; SSE-NEXT:    movaps 16(%rdi), %xmm42119; SSE-NEXT:    movaps 32(%rdi), %xmm52120; SSE-NEXT:    movaps 48(%rdi), %xmm62121; SSE-NEXT:    movaps (%rsi), %xmm02122; SSE-NEXT:    movaps 16(%rsi), %xmm112123; SSE-NEXT:    movaps 32(%rsi), %xmm142124; SSE-NEXT:    movaps 48(%rsi), %xmm32125; SSE-NEXT:    movaps (%rdx), %xmm122126; SSE-NEXT:    movaps 16(%rdx), %xmm82127; SSE-NEXT:    movaps 32(%rdx), %xmm92128; SSE-NEXT:    movaps 48(%rdx), %xmm102129; SSE-NEXT:    movaps %xmm2, %xmm12130; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm12[0,3]2131; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2132; SSE-NEXT:    movaps %xmm2, %xmm72133; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]2134; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]2135; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2136; SSE-NEXT:    movaps %xmm2, %xmm12137; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]2138; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm0[3,3]2139; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2140; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm12[1,1]2141; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2142; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2143; SSE-NEXT:    movaps %xmm4, %xmm02144; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2145; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm8[0,3]2146; SSE-NEXT:    movaps %xmm4, %xmm12147; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1]2148; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]2149; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2150; SSE-NEXT:    movaps %xmm4, %xmm02151; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm11[1]2152; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,3],xmm11[3,3]2153; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2154; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,1],xmm8[1,1]2155; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,2]2156; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2157; SSE-NEXT:    movaps %xmm5, %xmm02158; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2159; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm9[0,3]2160; SSE-NEXT:    movaps %xmm5, %xmm12161; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm14[0],xmm1[1],xmm14[1]2162; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]2163; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2164; SSE-NEXT:    movaps %xmm5, %xmm02165; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm14[1]2166; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm14[3,3]2167; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2168; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[1,1],xmm9[1,1]2169; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,2],xmm0[0,2]2170; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2171; SSE-NEXT:    movaps %xmm6, %xmm02172; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2173; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm10[0,3]2174; SSE-NEXT:    movaps %xmm6, %xmm12175; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]2176; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]2177; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2178; SSE-NEXT:    movaps %xmm6, %xmm02179; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]2180; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[3,3],xmm3[3,3]2181; SSE-NEXT:    movaps %xmm6, (%rsp) # 16-byte Spill2182; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm10[1,1]2183; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm0[0,2]2184; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2185; SSE-NEXT:    movaps 64(%rdi), %xmm22186; SSE-NEXT:    movaps 64(%rdx), %xmm42187; SSE-NEXT:    movaps %xmm2, %xmm02188; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2189; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2190; SSE-NEXT:    movaps 64(%rsi), %xmm12191; SSE-NEXT:    movaps %xmm2, %xmm32192; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2193; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2194; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2195; SSE-NEXT:    movaps %xmm2, %xmm02196; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2197; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2198; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2199; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2200; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2201; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2202; SSE-NEXT:    movaps 80(%rdi), %xmm22203; SSE-NEXT:    movaps 80(%rdx), %xmm42204; SSE-NEXT:    movaps %xmm2, %xmm02205; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2206; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2207; SSE-NEXT:    movaps 80(%rsi), %xmm12208; SSE-NEXT:    movaps %xmm2, %xmm32209; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2210; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2211; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2212; SSE-NEXT:    movaps %xmm2, %xmm02213; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2214; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2215; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2216; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2217; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2218; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2219; SSE-NEXT:    movaps 96(%rdi), %xmm22220; SSE-NEXT:    movaps 96(%rdx), %xmm42221; SSE-NEXT:    movaps %xmm2, %xmm02222; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2223; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2224; SSE-NEXT:    movaps 96(%rsi), %xmm12225; SSE-NEXT:    movaps %xmm2, %xmm32226; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2227; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2228; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2229; SSE-NEXT:    movaps %xmm2, %xmm02230; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2231; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2232; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2233; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2234; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2235; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2236; SSE-NEXT:    movaps 112(%rdi), %xmm22237; SSE-NEXT:    movaps 112(%rdx), %xmm42238; SSE-NEXT:    movaps %xmm2, %xmm02239; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2240; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2241; SSE-NEXT:    movaps 112(%rsi), %xmm12242; SSE-NEXT:    movaps %xmm2, %xmm32243; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2244; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2245; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2246; SSE-NEXT:    movaps %xmm2, %xmm02247; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2248; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2249; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2250; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2251; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2252; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2253; SSE-NEXT:    movaps 128(%rdi), %xmm22254; SSE-NEXT:    movaps 128(%rdx), %xmm42255; SSE-NEXT:    movaps %xmm2, %xmm02256; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2257; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2258; SSE-NEXT:    movaps 128(%rsi), %xmm12259; SSE-NEXT:    movaps %xmm2, %xmm32260; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2261; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2262; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2263; SSE-NEXT:    movaps %xmm2, %xmm02264; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2265; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2266; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2267; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2268; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2269; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2270; SSE-NEXT:    movaps 144(%rdi), %xmm22271; SSE-NEXT:    movaps 144(%rdx), %xmm42272; SSE-NEXT:    movaps %xmm2, %xmm02273; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm4[0,3]2274; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2275; SSE-NEXT:    movaps 144(%rsi), %xmm12276; SSE-NEXT:    movaps %xmm2, %xmm32277; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2278; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]2279; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2280; SSE-NEXT:    movaps %xmm2, %xmm02281; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2282; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm1[3,3]2283; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2284; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm4[1,1]2285; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2286; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2287; SSE-NEXT:    movaps 160(%rdi), %xmm142288; SSE-NEXT:    movaps 160(%rdx), %xmm32289; SSE-NEXT:    movaps %xmm14, %xmm02290; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm3[0,3]2291; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2292; SSE-NEXT:    movaps 160(%rsi), %xmm12293; SSE-NEXT:    movaps %xmm14, %xmm22294; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2295; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]2296; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2297; SSE-NEXT:    movaps %xmm14, %xmm02298; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2299; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[3,3],xmm1[3,3]2300; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm3[1,1]2301; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2302; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2303; SSE-NEXT:    movaps 176(%rdi), %xmm122304; SSE-NEXT:    movaps 176(%rdx), %xmm32305; SSE-NEXT:    movaps %xmm12, %xmm02306; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm3[0,3]2307; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2308; SSE-NEXT:    movaps 176(%rsi), %xmm12309; SSE-NEXT:    movaps %xmm12, %xmm22310; SSE-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2311; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]2312; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2313; SSE-NEXT:    movaps %xmm12, %xmm02314; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2315; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[3,3],xmm1[3,3]2316; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm3[1,1]2317; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]2318; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2319; SSE-NEXT:    movaps 192(%rdi), %xmm132320; SSE-NEXT:    movaps 192(%rdx), %xmm22321; SSE-NEXT:    movaps %xmm13, %xmm02322; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm2[0,3]2323; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2324; SSE-NEXT:    movaps 192(%rsi), %xmm112325; SSE-NEXT:    movaps %xmm13, %xmm12326; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm11[0],xmm1[1],xmm11[1]2327; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[2,0]2328; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2329; SSE-NEXT:    movaps %xmm13, %xmm02330; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm11[1]2331; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[3,3],xmm11[3,3]2332; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,1],xmm2[1,1]2333; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,2]2334; SSE-NEXT:    movaps 208(%rdi), %xmm62335; SSE-NEXT:    movaps 208(%rdx), %xmm12336; SSE-NEXT:    movaps %xmm6, %xmm02337; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm1[0,3]2338; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2339; SSE-NEXT:    movaps 208(%rsi), %xmm82340; SSE-NEXT:    movaps %xmm6, %xmm102341; SSE-NEXT:    unpcklps {{.*#+}} xmm10 = xmm10[0],xmm8[0],xmm10[1],xmm8[1]2342; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,0]2343; SSE-NEXT:    movaps %xmm6, %xmm02344; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm8[1]2345; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[3,3],xmm8[3,3]2346; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm1[1,1]2347; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,2],xmm0[0,2]2348; SSE-NEXT:    movaps 224(%rdi), %xmm52349; SSE-NEXT:    movaps 224(%rdx), %xmm152350; SSE-NEXT:    movaps %xmm5, %xmm02351; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm15[0,3]2352; SSE-NEXT:    movaps 224(%rsi), %xmm42353; SSE-NEXT:    movaps %xmm5, %xmm72354; SSE-NEXT:    unpcklps {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]2355; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2,0]2356; SSE-NEXT:    movaps %xmm5, %xmm02357; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]2358; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm4[3,3]2359; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm15[1,1]2360; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,2]2361; SSE-NEXT:    movaps 240(%rdi), %xmm22362; SSE-NEXT:    movaps 240(%rdx), %xmm92363; SSE-NEXT:    movaps %xmm2, %xmm12364; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm9[0,3]2365; SSE-NEXT:    movaps 240(%rsi), %xmm02366; SSE-NEXT:    movaps %xmm2, %xmm32367; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]2368; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm1[2,0]2369; SSE-NEXT:    movaps %xmm2, %xmm12370; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm0[1]2371; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[3,3],xmm0[3,3]2372; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1],xmm9[1,1]2373; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2374; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2375; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2376; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2377; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2378; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2379; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2380; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2381; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2382; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2383; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2384; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2385; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2386; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload2387; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2388; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2389; SSE-NEXT:    movaps %xmm1, (%rsp) # 16-byte Spill2390; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2391; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2392; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2393; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2394; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2395; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2396; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2397; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2398; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2399; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2400; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2401; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2402; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2403; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2404; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2405; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2406; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2407; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2408; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2409; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2410; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2411; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2412; SSE-NEXT:    # xmm1 = xmm1[1,2],mem[2,3]2413; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2414; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload2415; SSE-NEXT:    # xmm14 = xmm14[1,2],mem[2,3]2416; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload2417; SSE-NEXT:    # xmm12 = xmm12[1,2],mem[2,3]2418; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload2419; SSE-NEXT:    # xmm13 = xmm13[1,2],mem[2,3]2420; SSE-NEXT:    shufps $233, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload2421; SSE-NEXT:    # xmm6 = xmm6[1,2],mem[2,3]2422; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,2],xmm15[2,3]2423; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,2],xmm9[2,3]2424; SSE-NEXT:    movaps %xmm0, 736(%rcx)2425; SSE-NEXT:    movaps %xmm3, 720(%rcx)2426; SSE-NEXT:    movaps %xmm4, 688(%rcx)2427; SSE-NEXT:    movaps %xmm7, 672(%rcx)2428; SSE-NEXT:    movaps %xmm8, 640(%rcx)2429; SSE-NEXT:    movaps %xmm10, 624(%rcx)2430; SSE-NEXT:    movaps %xmm11, 592(%rcx)2431; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2432; SSE-NEXT:    movaps %xmm0, 576(%rcx)2433; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2434; SSE-NEXT:    movaps %xmm0, 544(%rcx)2435; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2436; SSE-NEXT:    movaps %xmm0, 528(%rcx)2437; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2438; SSE-NEXT:    movaps %xmm0, 496(%rcx)2439; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2440; SSE-NEXT:    movaps %xmm0, 480(%rcx)2441; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2442; SSE-NEXT:    movaps %xmm0, 448(%rcx)2443; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2444; SSE-NEXT:    movaps %xmm0, 432(%rcx)2445; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2446; SSE-NEXT:    movaps %xmm0, 400(%rcx)2447; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2448; SSE-NEXT:    movaps %xmm0, 384(%rcx)2449; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2450; SSE-NEXT:    movaps %xmm0, 352(%rcx)2451; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2452; SSE-NEXT:    movaps %xmm0, 336(%rcx)2453; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2454; SSE-NEXT:    movaps %xmm0, 304(%rcx)2455; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2456; SSE-NEXT:    movaps %xmm0, 288(%rcx)2457; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2458; SSE-NEXT:    movaps %xmm0, 256(%rcx)2459; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2460; SSE-NEXT:    movaps %xmm0, 240(%rcx)2461; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2462; SSE-NEXT:    movaps %xmm0, 208(%rcx)2463; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2464; SSE-NEXT:    movaps %xmm0, 192(%rcx)2465; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2466; SSE-NEXT:    movaps %xmm0, 160(%rcx)2467; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2468; SSE-NEXT:    movaps %xmm0, 144(%rcx)2469; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2470; SSE-NEXT:    movaps %xmm0, 112(%rcx)2471; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2472; SSE-NEXT:    movaps %xmm0, 96(%rcx)2473; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2474; SSE-NEXT:    movaps %xmm0, 64(%rcx)2475; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2476; SSE-NEXT:    movaps %xmm0, 48(%rcx)2477; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2478; SSE-NEXT:    movaps %xmm0, 16(%rcx)2479; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2480; SSE-NEXT:    movaps %xmm0, (%rcx)2481; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[2,0,1,3]2482; SSE-NEXT:    movaps %xmm2, 752(%rcx)2483; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,0,1,3]2484; SSE-NEXT:    movaps %xmm5, 704(%rcx)2485; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[2,0,1,3]2486; SSE-NEXT:    movaps %xmm6, 656(%rcx)2487; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[2,0,1,3]2488; SSE-NEXT:    movaps %xmm13, 608(%rcx)2489; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[2,0,1,3]2490; SSE-NEXT:    movaps %xmm12, 560(%rcx)2491; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,0,1,3]2492; SSE-NEXT:    movaps %xmm14, 512(%rcx)2493; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2494; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2495; SSE-NEXT:    movaps %xmm0, 464(%rcx)2496; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2497; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2498; SSE-NEXT:    movaps %xmm0, 416(%rcx)2499; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2500; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2501; SSE-NEXT:    movaps %xmm0, 368(%rcx)2502; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2503; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2504; SSE-NEXT:    movaps %xmm0, 320(%rcx)2505; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2506; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2507; SSE-NEXT:    movaps %xmm0, 272(%rcx)2508; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2509; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2510; SSE-NEXT:    movaps %xmm0, 224(%rcx)2511; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload2512; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2513; SSE-NEXT:    movaps %xmm0, 176(%rcx)2514; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2515; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2516; SSE-NEXT:    movaps %xmm0, 128(%rcx)2517; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2518; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2519; SSE-NEXT:    movaps %xmm0, 80(%rcx)2520; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2521; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0,1,3]2522; SSE-NEXT:    movaps %xmm0, 32(%rcx)2523; SSE-NEXT:    addq $664, %rsp # imm = 0x2982524; SSE-NEXT:    retq2525;2526; AVX-LABEL: store_i32_stride3_vf64:2527; AVX:       # %bb.0:2528; AVX-NEXT:    subq $168, %rsp2529; AVX-NEXT:    vmovaps (%rdi), %xmm02530; AVX-NEXT:    vmovaps 16(%rdi), %xmm12531; AVX-NEXT:    vmovaps 32(%rdi), %xmm22532; AVX-NEXT:    vmovaps (%rsi), %xmm32533; AVX-NEXT:    vmovaps 16(%rsi), %xmm42534; AVX-NEXT:    vmovaps 32(%rsi), %xmm52535; AVX-NEXT:    vmovaps 48(%rsi), %xmm62536; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm3[1,1,2,2]2537; AVX-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2],xmm7[3]2538; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]2539; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2540; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm02541; AVX-NEXT:    vbroadcastsd (%rdx), %ymm32542; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3,4],ymm3[5],ymm0[6,7]2543; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2544; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[3,3],xmm4[3,3]2545; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[1,1,2,2]2546; AVX-NEXT:    vblendps {{.*#+}} xmm1 = xmm3[0,1],xmm1[2],xmm3[3]2547; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm02548; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2549; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2550; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2551; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2552; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm5[1,1,2,2]2553; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2],xmm0[3]2554; AVX-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]2555; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[0,1,2,2]2556; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm02557; AVX-NEXT:    vbroadcastsd 32(%rdx), %ymm12558; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2559; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2560; AVX-NEXT:    vmovaps 48(%rdi), %xmm02561; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[3,3],xmm6[3,3]2562; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[1,1,2,2]2563; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0,1],xmm0[2],xmm3[3]2564; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm02565; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2566; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2567; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2568; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2569; AVX-NEXT:    vmovaps 64(%rdi), %xmm02570; AVX-NEXT:    vmovaps 64(%rsi), %xmm12571; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm1[1,1,2,2]2572; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm4[0,1],xmm0[2],xmm4[3]2573; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2574; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2575; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm02576; AVX-NEXT:    vbroadcastsd 64(%rdx), %ymm12577; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2578; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill2579; AVX-NEXT:    vmovaps 80(%rsi), %xmm02580; AVX-NEXT:    vmovaps 80(%rdi), %xmm12581; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm1[3,3],xmm0[3,3]2582; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2583; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2584; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm02585; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2586; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2587; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2588; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2589; AVX-NEXT:    vmovaps 96(%rdi), %xmm02590; AVX-NEXT:    vmovaps 96(%rsi), %xmm12591; AVX-NEXT:    vshufps {{.*#+}} xmm6 = xmm1[1,1,2,2]2592; AVX-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm0[2],xmm6[3]2593; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2594; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2595; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm02596; AVX-NEXT:    vbroadcastsd 96(%rdx), %ymm12597; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2598; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2599; AVX-NEXT:    vmovaps 112(%rsi), %xmm02600; AVX-NEXT:    vmovaps 112(%rdi), %xmm12601; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm1[3,3],xmm0[3,3]2602; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2603; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2604; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm02605; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2606; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2607; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2608; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2609; AVX-NEXT:    vmovaps 128(%rdi), %xmm02610; AVX-NEXT:    vmovaps 128(%rsi), %xmm12611; AVX-NEXT:    vshufps {{.*#+}} xmm8 = xmm1[1,1,2,2]2612; AVX-NEXT:    vblendps {{.*#+}} xmm8 = xmm8[0,1],xmm0[2],xmm8[3]2613; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2614; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2615; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm02616; AVX-NEXT:    vbroadcastsd 128(%rdx), %ymm12617; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2618; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2619; AVX-NEXT:    vmovaps 144(%rsi), %xmm02620; AVX-NEXT:    vmovaps 144(%rdi), %xmm12621; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm1[3,3],xmm0[3,3]2622; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2623; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2624; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm02625; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2626; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2627; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2628; AVX-NEXT:    vmovaps 160(%rdi), %xmm02629; AVX-NEXT:    vmovaps 160(%rsi), %xmm12630; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm1[1,1,2,2]2631; AVX-NEXT:    vblendps {{.*#+}} xmm10 = xmm10[0,1],xmm0[2],xmm10[3]2632; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2633; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2634; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm02635; AVX-NEXT:    vbroadcastsd 160(%rdx), %ymm12636; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2637; AVX-NEXT:    vmovaps 176(%rsi), %xmm02638; AVX-NEXT:    vmovaps 176(%rdi), %xmm12639; AVX-NEXT:    vshufps {{.*#+}} xmm11 = xmm1[3,3],xmm0[3,3]2640; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2641; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2642; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm02643; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2644; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2645; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2646; AVX-NEXT:    vmovaps 192(%rdi), %xmm02647; AVX-NEXT:    vmovaps 192(%rsi), %xmm12648; AVX-NEXT:    vshufps {{.*#+}} xmm12 = xmm1[1,1,2,2]2649; AVX-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],xmm0[2],xmm12[3]2650; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2651; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2652; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm02653; AVX-NEXT:    vbroadcastsd 192(%rdx), %ymm12654; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2655; AVX-NEXT:    vmovaps 208(%rsi), %xmm02656; AVX-NEXT:    vmovaps 208(%rdi), %xmm12657; AVX-NEXT:    vshufps {{.*#+}} xmm13 = xmm1[3,3],xmm0[3,3]2658; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2659; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2660; AVX-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm02661; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2662; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2663; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2664; AVX-NEXT:    vmovaps 224(%rdi), %xmm02665; AVX-NEXT:    vmovaps 224(%rsi), %xmm12666; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm1[1,1,2,2]2667; AVX-NEXT:    vblendps {{.*#+}} xmm14 = xmm14[0,1],xmm0[2],xmm14[3]2668; AVX-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2669; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,2]2670; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm02671; AVX-NEXT:    vbroadcastsd 224(%rdx), %ymm12672; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2673; AVX-NEXT:    vmovaps 240(%rsi), %xmm02674; AVX-NEXT:    vmovaps 240(%rdi), %xmm12675; AVX-NEXT:    vshufps {{.*#+}} xmm15 = xmm1[3,3],xmm0[3,3]2676; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]2677; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]2678; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm02679; AVX-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]2680; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0,0,3,3]2681; AVX-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2682; AVX-NEXT:    vpermilps {{.*#+}} ymm0 = mem[0,0,3,3,4,4,7,7]2683; AVX-NEXT:    vpermilpd {{.*#+}} ymm1 = mem[1,0,2,2]2684; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2685; AVX-NEXT:    vpermilpd {{.*#+}} ymm1 = mem[1,1,2,2]2686; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm0[1,2],ymm1[3],ymm0[4,5],ymm1[6],ymm0[7]2687; AVX-NEXT:    vpermilps {{.*#+}} ymm0 = mem[0,0,3,3,4,4,7,7]2688; AVX-NEXT:    vpermilpd {{.*#+}} ymm2 = mem[1,0,2,2]2689; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2],ymm2[3,4],ymm0[5],ymm2[6,7]2690; AVX-NEXT:    vpermilpd {{.*#+}} ymm2 = mem[1,1,2,2]2691; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2],ymm2[3],ymm0[4,5],ymm2[6],ymm0[7]2692; AVX-NEXT:    vpermilps {{.*#+}} ymm2 = mem[0,0,3,3,4,4,7,7]2693; AVX-NEXT:    vpermilpd {{.*#+}} ymm3 = mem[1,0,2,2]2694; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]2695; AVX-NEXT:    vpermilpd {{.*#+}} ymm3 = mem[1,1,2,2]2696; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1,2],ymm3[3],ymm2[4,5],ymm3[6],ymm2[7]2697; AVX-NEXT:    vpermilps {{.*#+}} ymm3 = mem[0,0,3,3,4,4,7,7]2698; AVX-NEXT:    vpermilpd {{.*#+}} ymm4 = mem[1,0,2,2]2699; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4],ymm3[5],ymm4[6,7]2700; AVX-NEXT:    vpermilpd {{.*#+}} ymm4 = mem[1,1,2,2]2701; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1,2],ymm4[3],ymm3[4,5],ymm4[6],ymm3[7]2702; AVX-NEXT:    vpermilps {{.*#+}} ymm4 = mem[0,0,3,3,4,4,7,7]2703; AVX-NEXT:    vpermilpd {{.*#+}} ymm5 = mem[1,0,2,2]2704; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]2705; AVX-NEXT:    vpermilpd {{.*#+}} ymm5 = mem[1,1,2,2]2706; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0],ymm4[1,2],ymm5[3],ymm4[4,5],ymm5[6],ymm4[7]2707; AVX-NEXT:    vpermilps {{.*#+}} ymm5 = mem[0,0,3,3,4,4,7,7]2708; AVX-NEXT:    vpermilpd {{.*#+}} ymm6 = mem[1,0,2,2]2709; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]2710; AVX-NEXT:    vpermilpd {{.*#+}} ymm6 = mem[1,1,2,2]2711; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0],ymm5[1,2],ymm6[3],ymm5[4,5],ymm6[6],ymm5[7]2712; AVX-NEXT:    vpermilps {{.*#+}} ymm6 = mem[0,0,3,3,4,4,7,7]2713; AVX-NEXT:    vpermilpd {{.*#+}} ymm7 = mem[1,0,2,2]2714; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6,7]2715; AVX-NEXT:    vpermilpd {{.*#+}} ymm7 = mem[1,1,2,2]2716; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0],ymm6[1,2],ymm7[3],ymm6[4,5],ymm7[6],ymm6[7]2717; AVX-NEXT:    vpermilps {{.*#+}} ymm7 = mem[0,0,3,3,4,4,7,7]2718; AVX-NEXT:    vpermilpd {{.*#+}} ymm8 = mem[1,0,2,2]2719; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2],ymm8[3,4],ymm7[5],ymm8[6,7]2720; AVX-NEXT:    vpermilpd {{.*#+}} ymm8 = mem[1,1,2,2]2721; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2],ymm8[3],ymm7[4,5],ymm8[6],ymm7[7]2722; AVX-NEXT:    vmovaps %ymm7, 704(%rcx)2723; AVX-NEXT:    vmovaps %ymm6, 608(%rcx)2724; AVX-NEXT:    vmovaps %ymm5, 512(%rcx)2725; AVX-NEXT:    vmovaps %ymm4, 416(%rcx)2726; AVX-NEXT:    vmovaps %ymm3, 320(%rcx)2727; AVX-NEXT:    vmovaps %ymm2, 224(%rcx)2728; AVX-NEXT:    vmovaps %ymm0, 128(%rcx)2729; AVX-NEXT:    vmovaps %ymm1, 32(%rcx)2730; AVX-NEXT:    vmovaps %ymm15, 736(%rcx)2731; AVX-NEXT:    vmovaps %ymm14, 672(%rcx)2732; AVX-NEXT:    vmovaps %ymm13, 640(%rcx)2733; AVX-NEXT:    vmovaps %ymm12, 576(%rcx)2734; AVX-NEXT:    vmovaps %ymm11, 544(%rcx)2735; AVX-NEXT:    vmovaps %ymm10, 480(%rcx)2736; AVX-NEXT:    vmovaps %ymm9, 448(%rcx)2737; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2738; AVX-NEXT:    vmovaps %ymm0, 384(%rcx)2739; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2740; AVX-NEXT:    vmovaps %ymm0, 352(%rcx)2741; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2742; AVX-NEXT:    vmovaps %ymm0, 288(%rcx)2743; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2744; AVX-NEXT:    vmovaps %ymm0, 256(%rcx)2745; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload2746; AVX-NEXT:    vmovaps %ymm0, 192(%rcx)2747; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2748; AVX-NEXT:    vmovaps %ymm0, 160(%rcx)2749; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2750; AVX-NEXT:    vmovaps %ymm0, 96(%rcx)2751; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2752; AVX-NEXT:    vmovaps %ymm0, 64(%rcx)2753; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2754; AVX-NEXT:    vmovaps %ymm0, (%rcx)2755; AVX-NEXT:    addq $168, %rsp2756; AVX-NEXT:    vzeroupper2757; AVX-NEXT:    retq2758;2759; AVX2-LABEL: store_i32_stride3_vf64:2760; AVX2:       # %bb.0:2761; AVX2-NEXT:    subq $712, %rsp # imm = 0x2C82762; AVX2-NEXT:    vmovaps (%rdi), %ymm152763; AVX2-NEXT:    vmovaps 32(%rdi), %ymm82764; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2765; AVX2-NEXT:    vmovaps 64(%rdi), %ymm132766; AVX2-NEXT:    vmovaps (%rsi), %ymm52767; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2768; AVX2-NEXT:    vmovaps 32(%rsi), %ymm32769; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2770; AVX2-NEXT:    vmovaps 64(%rsi), %ymm22771; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2772; AVX2-NEXT:    vmovaps (%rdx), %ymm72773; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2774; AVX2-NEXT:    vmovaps 32(%rdx), %ymm62775; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2776; AVX2-NEXT:    vmovaps 64(%rdx), %ymm42777; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2778; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2779; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2780; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm15[0,0,2,1]2781; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2782; AVX2-NEXT:    vbroadcastsd (%rdx), %ymm12783; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2784; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2785; AVX2-NEXT:    vbroadcastsd 24(%rdi), %ymm02786; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,2,3,3,5,6,7,7]2787; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]2788; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2789; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm7[2,1,3,3]2790; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2791; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2792; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2793; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2794; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm8[0,0,2,1]2795; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2796; AVX2-NEXT:    vbroadcastsd 32(%rdx), %ymm12797; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2798; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2799; AVX2-NEXT:    vbroadcastsd 56(%rdi), %ymm02800; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[1,2,3,3,5,6,7,7]2801; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]2802; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2803; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,1,3,3]2804; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2805; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2806; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2807; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2808; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,0,2,1]2809; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2810; AVX2-NEXT:    vbroadcastsd 64(%rdx), %ymm12811; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2812; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2813; AVX2-NEXT:    vbroadcastsd 88(%rdi), %ymm02814; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,2,3,3,5,6,7,7]2815; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]2816; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]2817; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm4[2,1,3,3]2818; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2819; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2820; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2821; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2822; AVX2-NEXT:    vmovaps 96(%rdi), %ymm12823; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2824; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]2825; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2826; AVX2-NEXT:    vbroadcastsd 96(%rdx), %ymm12827; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2828; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2829; AVX2-NEXT:    vmovaps 96(%rsi), %ymm142830; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,2,3,3,5,6,7,7]2831; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]2832; AVX2-NEXT:    vbroadcastsd 120(%rdi), %ymm12833; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2834; AVX2-NEXT:    vmovaps 96(%rdx), %ymm12835; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2836; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,1,3,3]2837; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2838; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2839; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2840; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2841; AVX2-NEXT:    vmovaps 128(%rdi), %ymm12842; AVX2-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill2843; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]2844; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2845; AVX2-NEXT:    vbroadcastsd 128(%rdx), %ymm12846; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2847; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2848; AVX2-NEXT:    vmovaps 128(%rsi), %ymm122849; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[1,2,3,3,5,6,7,7]2850; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]2851; AVX2-NEXT:    vbroadcastsd 152(%rdi), %ymm12852; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2853; AVX2-NEXT:    vmovaps 128(%rdx), %ymm102854; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm10[2,1,3,3]2855; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2856; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2857; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2858; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2859; AVX2-NEXT:    vmovaps 160(%rdi), %ymm92860; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm9[0,0,2,1]2861; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2862; AVX2-NEXT:    vbroadcastsd 160(%rdx), %ymm12863; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2864; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2865; AVX2-NEXT:    vmovaps 160(%rsi), %ymm72866; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[1,2,3,3,5,6,7,7]2867; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]2868; AVX2-NEXT:    vbroadcastsd 184(%rdi), %ymm12869; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2870; AVX2-NEXT:    vmovaps 160(%rdx), %ymm62871; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,1,3,3]2872; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2873; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2874; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2875; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2876; AVX2-NEXT:    vmovaps 192(%rdi), %ymm52877; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm5[0,0,2,1]2878; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2879; AVX2-NEXT:    vbroadcastsd 192(%rdx), %ymm12880; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2881; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2882; AVX2-NEXT:    vmovaps 192(%rsi), %ymm42883; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,2,3,3,5,6,7,7]2884; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]2885; AVX2-NEXT:    vbroadcastsd 216(%rdi), %ymm12886; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2887; AVX2-NEXT:    vmovaps 192(%rdx), %ymm32888; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[2,1,3,3]2889; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]2890; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2891; AVX2-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]2892; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]2893; AVX2-NEXT:    vmovaps 224(%rdi), %ymm22894; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[0,0,2,1]2895; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2896; AVX2-NEXT:    vbroadcastsd 224(%rdx), %ymm12897; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]2898; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2899; AVX2-NEXT:    vmovaps 224(%rsi), %ymm12900; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,2,3,3,5,6,7,7]2901; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]2902; AVX2-NEXT:    vbroadcastsd 248(%rdi), %ymm82903; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1],ymm8[2],ymm0[3,4],ymm8[5],ymm0[6,7]2904; AVX2-NEXT:    vmovaps 224(%rdx), %ymm02905; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm0[2,1,3,3]2906; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm11[1],ymm8[2,3],ymm11[4],ymm8[5,6],ymm11[7]2907; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2908; AVX2-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload2909; AVX2-NEXT:    # ymm8 = mem[0,0,3,3,4,4,7,7]2910; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm15[1,1,2,2]2911; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1],ymm8[2],ymm11[3,4],ymm8[5],ymm11[6,7]2912; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload2913; AVX2-NEXT:    # ymm11 = mem[1,1,2,2]2914; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm8[1,2],ymm11[3],ymm8[4,5],ymm11[6],ymm8[7]2915; AVX2-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload2916; AVX2-NEXT:    # ymm8 = mem[0,0,3,3,4,4,7,7]2917; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload2918; AVX2-NEXT:    # ymm15 = mem[1,1,2,2]2919; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1],ymm8[2],ymm15[3,4],ymm8[5],ymm15[6,7]2920; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload2921; AVX2-NEXT:    # ymm15 = mem[1,1,2,2]2922; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0],ymm8[1,2],ymm15[3],ymm8[4,5],ymm15[6],ymm8[7]2923; AVX2-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload2924; AVX2-NEXT:    # ymm15 = mem[0,0,3,3,4,4,7,7]2925; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[1,1,2,2]2926; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4],ymm15[5],ymm13[6,7]2927; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload2928; AVX2-NEXT:    # ymm15 = mem[1,1,2,2]2929; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2],ymm15[3],ymm13[4,5],ymm15[6],ymm13[7]2930; AVX2-NEXT:    vshufps {{.*#+}} ymm15 = ymm14[0,0,3,3,4,4,7,7]2931; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload2932; AVX2-NEXT:    # ymm14 = mem[1,1,2,2]2933; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]2934; AVX2-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload2935; AVX2-NEXT:    # ymm15 = mem[1,1,2,2]2936; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3],ymm14[4,5],ymm15[6],ymm14[7]2937; AVX2-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,0,3,3,4,4,7,7]2938; AVX2-NEXT:    vpermpd $165, (%rsp), %ymm15 # 32-byte Folded Reload2939; AVX2-NEXT:    # ymm15 = mem[1,1,2,2]2940; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm15[0,1],ymm12[2],ymm15[3,4],ymm12[5],ymm15[6,7]2941; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[1,1,2,2]2942; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm12[1,2],ymm10[3],ymm12[4,5],ymm10[6],ymm12[7]2943; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,0,3,3,4,4,7,7]2944; AVX2-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[1,1,2,2]2945; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2],ymm9[3,4],ymm7[5],ymm9[6,7]2946; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[1,1,2,2]2947; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1,2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]2948; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,3,3,4,4,7,7]2949; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[1,1,2,2]2950; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]2951; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[1,1,2,2]2952; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]2953; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,3,3,4,4,7,7]2954; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[1,1,2,2]2955; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]2956; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]2957; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]2958; AVX2-NEXT:    vmovaps %ymm0, 704(%rcx)2959; AVX2-NEXT:    vmovaps %ymm3, 608(%rcx)2960; AVX2-NEXT:    vmovaps %ymm6, 512(%rcx)2961; AVX2-NEXT:    vmovaps %ymm10, 416(%rcx)2962; AVX2-NEXT:    vmovaps %ymm14, 320(%rcx)2963; AVX2-NEXT:    vmovaps %ymm13, 224(%rcx)2964; AVX2-NEXT:    vmovaps %ymm8, 128(%rcx)2965; AVX2-NEXT:    vmovaps %ymm11, 32(%rcx)2966; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2967; AVX2-NEXT:    vmovaps %ymm0, 736(%rcx)2968; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2969; AVX2-NEXT:    vmovaps %ymm0, 672(%rcx)2970; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2971; AVX2-NEXT:    vmovaps %ymm0, 640(%rcx)2972; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2973; AVX2-NEXT:    vmovaps %ymm0, 576(%rcx)2974; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2975; AVX2-NEXT:    vmovaps %ymm0, 544(%rcx)2976; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2977; AVX2-NEXT:    vmovaps %ymm0, 480(%rcx)2978; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2979; AVX2-NEXT:    vmovaps %ymm0, 448(%rcx)2980; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2981; AVX2-NEXT:    vmovaps %ymm0, 384(%rcx)2982; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2983; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)2984; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2985; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)2986; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2987; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)2988; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2989; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)2990; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2991; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)2992; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2993; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)2994; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2995; AVX2-NEXT:    vmovaps %ymm0, 64(%rcx)2996; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2997; AVX2-NEXT:    vmovaps %ymm0, (%rcx)2998; AVX2-NEXT:    addq $712, %rsp # imm = 0x2C82999; AVX2-NEXT:    vzeroupper3000; AVX2-NEXT:    retq3001;3002; AVX2-FP-LABEL: store_i32_stride3_vf64:3003; AVX2-FP:       # %bb.0:3004; AVX2-FP-NEXT:    subq $712, %rsp # imm = 0x2C83005; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm153006; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm83007; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3008; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm133009; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm53010; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3011; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm33012; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3013; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm23014; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3015; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm73016; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3017; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm63018; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3019; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm43020; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3021; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3022; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3023; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm15[0,0,2,1]3024; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3025; AVX2-FP-NEXT:    vbroadcastsd (%rdx), %ymm13026; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3027; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3028; AVX2-FP-NEXT:    vbroadcastsd 24(%rdi), %ymm03029; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,2,3,3,5,6,7,7]3030; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]3031; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3032; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm7[2,1,3,3]3033; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3034; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3035; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3036; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3037; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm8[0,0,2,1]3038; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3039; AVX2-FP-NEXT:    vbroadcastsd 32(%rdx), %ymm13040; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3041; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3042; AVX2-FP-NEXT:    vbroadcastsd 56(%rdi), %ymm03043; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[1,2,3,3,5,6,7,7]3044; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]3045; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3046; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,1,3,3]3047; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3048; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3049; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3050; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3051; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,0,2,1]3052; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3053; AVX2-FP-NEXT:    vbroadcastsd 64(%rdx), %ymm13054; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3055; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3056; AVX2-FP-NEXT:    vbroadcastsd 88(%rdi), %ymm03057; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,2,3,3,5,6,7,7]3058; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]3059; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]3060; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm4[2,1,3,3]3061; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3062; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3063; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3064; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3065; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm13066; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3067; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]3068; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3069; AVX2-FP-NEXT:    vbroadcastsd 96(%rdx), %ymm13070; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3071; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3072; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm143073; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,2,3,3,5,6,7,7]3074; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]3075; AVX2-FP-NEXT:    vbroadcastsd 120(%rdi), %ymm13076; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3077; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm13078; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3079; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,1,3,3]3080; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3081; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3082; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3083; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3084; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm13085; AVX2-FP-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill3086; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]3087; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3088; AVX2-FP-NEXT:    vbroadcastsd 128(%rdx), %ymm13089; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3090; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3091; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm123092; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[1,2,3,3,5,6,7,7]3093; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]3094; AVX2-FP-NEXT:    vbroadcastsd 152(%rdi), %ymm13095; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3096; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm103097; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm10[2,1,3,3]3098; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3099; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3100; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3101; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3102; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm93103; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm9[0,0,2,1]3104; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3105; AVX2-FP-NEXT:    vbroadcastsd 160(%rdx), %ymm13106; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3107; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3108; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm73109; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[1,2,3,3,5,6,7,7]3110; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]3111; AVX2-FP-NEXT:    vbroadcastsd 184(%rdi), %ymm13112; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3113; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm63114; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[2,1,3,3]3115; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3116; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3117; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3118; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3119; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm53120; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm5[0,0,2,1]3121; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3122; AVX2-FP-NEXT:    vbroadcastsd 192(%rdx), %ymm13123; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3124; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3125; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm43126; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,2,3,3,5,6,7,7]3127; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]3128; AVX2-FP-NEXT:    vbroadcastsd 216(%rdi), %ymm13129; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3130; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm33131; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[2,1,3,3]3132; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3133; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3134; AVX2-FP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[1,0,2,2]3135; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,1]3136; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm23137; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[0,0,2,1]3138; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3139; AVX2-FP-NEXT:    vbroadcastsd 224(%rdx), %ymm13140; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3141; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3142; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm13143; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,2,3,3,5,6,7,7]3144; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,3]3145; AVX2-FP-NEXT:    vbroadcastsd 248(%rdi), %ymm83146; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1],ymm8[2],ymm0[3,4],ymm8[5],ymm0[6,7]3147; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm03148; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm0[2,1,3,3]3149; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm11[1],ymm8[2,3],ymm11[4],ymm8[5,6],ymm11[7]3150; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3151; AVX2-FP-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload3152; AVX2-FP-NEXT:    # ymm8 = mem[0,0,3,3,4,4,7,7]3153; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm15[1,1,2,2]3154; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1],ymm8[2],ymm11[3,4],ymm8[5],ymm11[6,7]3155; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload3156; AVX2-FP-NEXT:    # ymm11 = mem[1,1,2,2]3157; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm8[1,2],ymm11[3],ymm8[4,5],ymm11[6],ymm8[7]3158; AVX2-FP-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Folded Reload3159; AVX2-FP-NEXT:    # ymm8 = mem[0,0,3,3,4,4,7,7]3160; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload3161; AVX2-FP-NEXT:    # ymm15 = mem[1,1,2,2]3162; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1],ymm8[2],ymm15[3,4],ymm8[5],ymm15[6,7]3163; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload3164; AVX2-FP-NEXT:    # ymm15 = mem[1,1,2,2]3165; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0],ymm8[1,2],ymm15[3],ymm8[4,5],ymm15[6],ymm8[7]3166; AVX2-FP-NEXT:    vpermilps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload3167; AVX2-FP-NEXT:    # ymm15 = mem[0,0,3,3,4,4,7,7]3168; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[1,1,2,2]3169; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4],ymm15[5],ymm13[6,7]3170; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload3171; AVX2-FP-NEXT:    # ymm15 = mem[1,1,2,2]3172; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2],ymm15[3],ymm13[4,5],ymm15[6],ymm13[7]3173; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm15 = ymm14[0,0,3,3,4,4,7,7]3174; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload3175; AVX2-FP-NEXT:    # ymm14 = mem[1,1,2,2]3176; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]3177; AVX2-FP-NEXT:    vpermpd $165, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload3178; AVX2-FP-NEXT:    # ymm15 = mem[1,1,2,2]3179; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3],ymm14[4,5],ymm15[6],ymm14[7]3180; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,0,3,3,4,4,7,7]3181; AVX2-FP-NEXT:    vpermpd $165, (%rsp), %ymm15 # 32-byte Folded Reload3182; AVX2-FP-NEXT:    # ymm15 = mem[1,1,2,2]3183; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm15[0,1],ymm12[2],ymm15[3,4],ymm12[5],ymm15[6,7]3184; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[1,1,2,2]3185; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm12[1,2],ymm10[3],ymm12[4,5],ymm10[6],ymm12[7]3186; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,0,3,3,4,4,7,7]3187; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[1,1,2,2]3188; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2],ymm9[3,4],ymm7[5],ymm9[6,7]3189; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[1,1,2,2]3190; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1,2],ymm6[3],ymm7[4,5],ymm6[6],ymm7[7]3191; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,0,3,3,4,4,7,7]3192; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[1,1,2,2]3193; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]3194; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[1,1,2,2]3195; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2],ymm3[3],ymm4[4,5],ymm3[6],ymm4[7]3196; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0,3,3,4,4,7,7]3197; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[1,1,2,2]3198; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]3199; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]3200; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2],ymm0[3],ymm1[4,5],ymm0[6],ymm1[7]3201; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rcx)3202; AVX2-FP-NEXT:    vmovaps %ymm3, 608(%rcx)3203; AVX2-FP-NEXT:    vmovaps %ymm6, 512(%rcx)3204; AVX2-FP-NEXT:    vmovaps %ymm10, 416(%rcx)3205; AVX2-FP-NEXT:    vmovaps %ymm14, 320(%rcx)3206; AVX2-FP-NEXT:    vmovaps %ymm13, 224(%rcx)3207; AVX2-FP-NEXT:    vmovaps %ymm8, 128(%rcx)3208; AVX2-FP-NEXT:    vmovaps %ymm11, 32(%rcx)3209; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3210; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rcx)3211; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3212; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%rcx)3213; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3214; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rcx)3215; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3216; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rcx)3217; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3218; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rcx)3219; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3220; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rcx)3221; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3222; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rcx)3223; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3224; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rcx)3225; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3226; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)3227; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3228; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)3229; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3230; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)3231; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3232; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)3233; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3234; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)3235; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3236; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)3237; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3238; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rcx)3239; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3240; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)3241; AVX2-FP-NEXT:    addq $712, %rsp # imm = 0x2C83242; AVX2-FP-NEXT:    vzeroupper3243; AVX2-FP-NEXT:    retq3244;3245; AVX2-FCP-LABEL: store_i32_stride3_vf64:3246; AVX2-FCP:       # %bb.0:3247; AVX2-FCP-NEXT:    subq $232, %rsp3248; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm63249; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm33250; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm13251; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm123252; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm83253; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm53254; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm103255; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm03256; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm93257; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm43258; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm23259; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm133260; AVX2-FCP-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = [1,0,2,2,1,0,2,2]3261; AVX2-FCP-NEXT:    # ymm7 = mem[0,1,0,1]3262; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm7, %ymm113263; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm6[0,0,2,1]3264; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2,3],ymm11[4],ymm14[5,6],ymm11[7]3265; AVX2-FCP-NEXT:    vbroadcastsd (%rdx), %ymm143266; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm14[2],ymm11[3,4],ymm14[5],ymm11[6,7]3267; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3268; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm11 = ymm8[0,0,3,3,4,4,7,7]3269; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[1,1,2,2]3270; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm11[2],ymm6[3,4],ymm11[5],ymm6[6,7]3271; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm9[1,1,2,2]3272; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0],ymm6[1,2],ymm11[3],ymm6[4,5],ymm11[6],ymm6[7]3273; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3274; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm6 = [5,6,5,6,5,6,7,7]3275; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm6, %ymm83276; AVX2-FCP-NEXT:    vbroadcastsd 24(%rdi), %ymm113277; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm11[2],ymm8[3,4],ymm11[5],ymm8[6,7]3278; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,1,3,3]3279; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3],ymm9[4],ymm8[5,6],ymm9[7]3280; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3281; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm7, %ymm83282; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm3[0,0,2,1]3283; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2,3],ymm8[4],ymm9[5,6],ymm8[7]3284; AVX2-FCP-NEXT:    vbroadcastsd 32(%rdx), %ymm93285; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]3286; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3287; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm8 = ymm5[0,0,3,3,4,4,7,7]3288; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[1,1,2,2]3289; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm8[2],ymm3[3,4],ymm8[5],ymm3[6,7]3290; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm4[1,1,2,2]3291; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0],ymm3[1,2],ymm8[3],ymm3[4,5],ymm8[6],ymm3[7]3292; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3293; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm6, %ymm33294; AVX2-FCP-NEXT:    vbroadcastsd 56(%rdi), %ymm53295; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]3296; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[2,1,3,3]3297; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3],ymm4[4],ymm3[5,6],ymm4[7]3298; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3299; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm7, %ymm33300; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm1[0,0,2,1]3301; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]3302; AVX2-FCP-NEXT:    vbroadcastsd 64(%rdx), %ymm43303; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]3304; AVX2-FCP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill3305; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm3 = ymm10[0,0,3,3,4,4,7,7]3306; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]3307; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm3[2],ymm1[3,4],ymm3[5],ymm1[6,7]3308; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm2[1,1,2,2]3309; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0],ymm1[1,2],ymm3[3],ymm1[4,5],ymm3[6],ymm1[7]3310; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3311; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm6, %ymm13312; AVX2-FCP-NEXT:    vbroadcastsd 88(%rdi), %ymm33313; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm3[2],ymm1[3,4],ymm3[5],ymm1[6,7]3314; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,1,3,3]3315; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]3316; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3317; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm7, %ymm13318; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm12[0,0,2,1]3319; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]3320; AVX2-FCP-NEXT:    vbroadcastsd 96(%rdx), %ymm23321; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3322; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3323; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm1 = ymm0[0,0,3,3,4,4,7,7]3324; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm12[1,1,2,2]3325; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]3326; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm13[1,1,2,2]3327; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0],ymm1[1,2],ymm2[3],ymm1[4,5],ymm2[6],ymm1[7]3328; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3329; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm6, %ymm03330; AVX2-FCP-NEXT:    vbroadcastsd 120(%rdi), %ymm13331; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3332; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm13333; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm13[2,1,3,3]3334; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0],ymm2[1],ymm0[2,3],ymm2[4],ymm0[5,6],ymm2[7]3335; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm03336; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm7, %ymm23337; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm1[0,0,2,1]3338; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]3339; AVX2-FCP-NEXT:    vbroadcastsd 128(%rdx), %ymm33340; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]3341; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[1,1,2,2]3342; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm0[0,0,3,3,4,4,7,7]3343; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3344; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm23345; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm2[1,1,2,2]3346; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm3[0],ymm1[1,2],ymm3[3],ymm1[4,5],ymm3[6],ymm1[7]3347; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm6, %ymm03348; AVX2-FCP-NEXT:    vbroadcastsd 152(%rdi), %ymm13349; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]3350; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm2[2,1,3,3]3351; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]3352; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm03353; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm13354; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm7, %ymm23355; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,0,2,1]3356; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]3357; AVX2-FCP-NEXT:    vbroadcastsd 160(%rdx), %ymm33358; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]3359; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[1,1,2,2]3360; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[0,0,3,3,4,4,7,7]3361; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1],ymm2[2],ymm0[3,4],ymm2[5],ymm0[6,7]3362; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm03363; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm0[1,1,2,2]3364; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0],ymm2[1,2],ymm5[3],ymm2[4,5],ymm5[6],ymm2[7]3365; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm6, %ymm13366; AVX2-FCP-NEXT:    vbroadcastsd 184(%rdi), %ymm53367; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]3368; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]3369; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3370; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm53371; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm03372; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm7, %ymm13373; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm5[0,0,2,1]3374; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0],ymm1[1],ymm9[2,3],ymm1[4],ymm9[5,6],ymm1[7]3375; AVX2-FCP-NEXT:    vbroadcastsd 192(%rdx), %ymm93376; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm9[2],ymm1[3,4],ymm9[5],ymm1[6,7]3377; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[1,1,2,2]3378; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[0,0,3,3,4,4,7,7]3379; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm9[2],ymm5[3,4],ymm9[5],ymm5[6,7]3380; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm93381; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm9[1,1,2,2]3382; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0],ymm5[1,2],ymm10[3],ymm5[4,5],ymm10[6],ymm5[7]3383; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm6, %ymm03384; AVX2-FCP-NEXT:    vbroadcastsd 216(%rdi), %ymm103385; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm10[2],ymm0[3,4],ymm10[5],ymm0[6,7]3386; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,1,3,3]3387; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm9[1],ymm0[2,3],ymm9[4],ymm0[5,6],ymm9[7]3388; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm93389; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm7, %ymm73390; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm103391; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm10[0,0,2,1]3392; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0],ymm7[1],ymm11[2,3],ymm7[4],ymm11[5,6],ymm7[7]3393; AVX2-FCP-NEXT:    vbroadcastsd 224(%rdx), %ymm113394; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm11[2],ymm7[3,4],ymm11[5],ymm7[6,7]3395; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[1,1,2,2]3396; AVX2-FCP-NEXT:    vshufps {{.*#+}} ymm11 = ymm9[0,0,3,3,4,4,7,7]3397; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2],ymm10[3,4],ymm11[5],ymm10[6,7]3398; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm113399; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[1,1,2,2]3400; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0],ymm10[1,2],ymm12[3],ymm10[4,5],ymm12[6],ymm10[7]3401; AVX2-FCP-NEXT:    vpermps %ymm9, %ymm6, %ymm63402; AVX2-FCP-NEXT:    vbroadcastsd 248(%rdi), %ymm93403; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm9[2],ymm6[3,4],ymm9[5],ymm6[6,7]3404; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm11[2,1,3,3]3405; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm9[1],ymm6[2,3],ymm9[4],ymm6[5,6],ymm9[7]3406; AVX2-FCP-NEXT:    vmovaps %ymm6, 736(%rcx)3407; AVX2-FCP-NEXT:    vmovaps %ymm10, 704(%rcx)3408; AVX2-FCP-NEXT:    vmovaps %ymm7, 672(%rcx)3409; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rcx)3410; AVX2-FCP-NEXT:    vmovaps %ymm5, 608(%rcx)3411; AVX2-FCP-NEXT:    vmovaps %ymm1, 576(%rcx)3412; AVX2-FCP-NEXT:    vmovaps %ymm2, 544(%rcx)3413; AVX2-FCP-NEXT:    vmovaps %ymm3, 512(%rcx)3414; AVX2-FCP-NEXT:    vmovaps %ymm4, 480(%rcx)3415; AVX2-FCP-NEXT:    vmovaps %ymm8, 448(%rcx)3416; AVX2-FCP-NEXT:    vmovaps %ymm15, 416(%rcx)3417; AVX2-FCP-NEXT:    vmovaps %ymm14, 384(%rcx)3418; AVX2-FCP-NEXT:    vmovaps %ymm13, 352(%rcx)3419; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3420; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)3421; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3422; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)3423; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3424; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rcx)3425; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3426; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rcx)3427; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload3428; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)3429; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3430; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)3431; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3432; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rcx)3433; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3434; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rcx)3435; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3436; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rcx)3437; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3438; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)3439; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3440; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)3441; AVX2-FCP-NEXT:    addq $232, %rsp3442; AVX2-FCP-NEXT:    vzeroupper3443; AVX2-FCP-NEXT:    retq3444;3445; AVX512-LABEL: store_i32_stride3_vf64:3446; AVX512:       # %bb.0:3447; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm33448; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm23449; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm13450; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm03451; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm43452; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm53453; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm63454; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm73455; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm83456; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm93457; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm103458; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm113459; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3460; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm133461; AVX512-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133462; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3463; AVX512-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133464; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3465; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm163466; AVX512-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163467; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3468; AVX512-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163469; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3470; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm193471; AVX512-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193472; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3473; AVX512-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193474; AVX512-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03475; AVX512-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03476; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm73477; AVX512-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73478; AVX512-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73479; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm113480; AVX512-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113481; AVX512-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113482; AVX512-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13483; AVX512-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13484; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm63485; AVX512-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63486; AVX512-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63487; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm103488; AVX512-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103489; AVX512-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103490; AVX512-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23491; AVX512-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23492; AVX512-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153493; AVX512-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153494; AVX512-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43495; AVX512-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43496; AVX512-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3497; AVX512-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3498; AVX512-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3499; AVX512-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3500; AVX512-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3501; AVX512-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3502; AVX512-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3503; AVX512-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3504; AVX512-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3505; AVX512-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3506; AVX512-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3507; AVX512-NEXT:    vmovdqa64 %zmm13, (%rcx)3508; AVX512-NEXT:    vzeroupper3509; AVX512-NEXT:    retq3510;3511; AVX512-FCP-LABEL: store_i32_stride3_vf64:3512; AVX512-FCP:       # %bb.0:3513; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm33514; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm23515; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm13516; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm03517; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm43518; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm53519; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm63520; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm73521; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm83522; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm93523; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm103524; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm113525; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3526; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133527; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133528; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3529; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133530; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3531; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163532; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163533; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3534; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163535; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3536; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm193537; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193538; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3539; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193540; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03541; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03542; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm73543; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73544; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73545; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm113546; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113547; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113548; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13549; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13550; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm63551; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63552; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63553; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103554; AVX512-FCP-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103555; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103556; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23557; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23558; AVX512-FCP-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153559; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153560; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43561; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43562; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3563; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3564; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3565; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3566; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3567; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3568; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3569; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3570; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3571; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3572; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3573; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, (%rcx)3574; AVX512-FCP-NEXT:    vzeroupper3575; AVX512-FCP-NEXT:    retq3576;3577; AVX512DQ-LABEL: store_i32_stride3_vf64:3578; AVX512DQ:       # %bb.0:3579; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm33580; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm23581; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm13582; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm03583; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm43584; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm53585; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm63586; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm73587; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm83588; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm93589; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm103590; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm113591; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3592; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm133593; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133594; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3595; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133596; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3597; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm163598; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163599; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3600; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163601; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3602; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm193603; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193604; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3605; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193606; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03607; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03608; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm73609; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73610; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73611; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm113612; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113613; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113614; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13615; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13616; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm63617; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63618; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63619; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm103620; AVX512DQ-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103621; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103622; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23623; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23624; AVX512DQ-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153625; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153626; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43627; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43628; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3629; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3630; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3631; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3632; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3633; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3634; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3635; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3636; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3637; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3638; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3639; AVX512DQ-NEXT:    vmovdqa64 %zmm13, (%rcx)3640; AVX512DQ-NEXT:    vzeroupper3641; AVX512DQ-NEXT:    retq3642;3643; AVX512DQ-FCP-LABEL: store_i32_stride3_vf64:3644; AVX512DQ-FCP:       # %bb.0:3645; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm33646; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm23647; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm13648; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm03649; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm43650; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm53651; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm63652; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm73653; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm83654; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm93655; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm103656; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm113657; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3658; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133659; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133660; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3661; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133662; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3663; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163664; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163665; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3666; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163667; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3668; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm193669; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193670; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3671; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193672; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03673; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03674; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm73675; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73676; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73677; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm113678; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113679; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113680; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13681; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13682; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm63683; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63684; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63685; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103686; AVX512DQ-FCP-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103687; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103688; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23689; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23690; AVX512DQ-FCP-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153691; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153692; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43693; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43694; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3695; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3696; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3697; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3698; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3699; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3700; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3701; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3702; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3703; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3704; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3705; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, (%rcx)3706; AVX512DQ-FCP-NEXT:    vzeroupper3707; AVX512DQ-FCP-NEXT:    retq3708;3709; AVX512BW-LABEL: store_i32_stride3_vf64:3710; AVX512BW:       # %bb.0:3711; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm33712; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm23713; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm13714; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm03715; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm43716; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm53717; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm63718; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm73719; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm83720; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm93721; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm103722; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm113723; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3724; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm133725; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133726; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3727; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133728; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3729; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm163730; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163731; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3732; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163733; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3734; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm193735; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193736; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3737; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193738; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03739; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03740; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm73741; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73742; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73743; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm113744; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113745; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113746; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13747; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13748; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm63749; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63750; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63751; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm103752; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103753; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103754; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23755; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23756; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153757; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153758; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43759; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43760; AVX512BW-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3761; AVX512BW-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3762; AVX512BW-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3763; AVX512BW-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3764; AVX512BW-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3765; AVX512BW-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3766; AVX512BW-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3767; AVX512BW-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3768; AVX512BW-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3769; AVX512BW-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3770; AVX512BW-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3771; AVX512BW-NEXT:    vmovdqa64 %zmm13, (%rcx)3772; AVX512BW-NEXT:    vzeroupper3773; AVX512BW-NEXT:    retq3774;3775; AVX512BW-FCP-LABEL: store_i32_stride3_vf64:3776; AVX512BW-FCP:       # %bb.0:3777; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm33778; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm23779; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm13780; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm03781; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm43782; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm53783; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm63784; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm73785; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm83786; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm93787; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm103788; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm113789; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3790; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133791; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133792; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3793; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133794; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3795; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163796; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163797; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3798; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163799; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3800; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm193801; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193802; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3803; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193804; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03805; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03806; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm73807; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73808; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73809; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm113810; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113811; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113812; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13813; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13814; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm63815; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63816; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63817; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103818; AVX512BW-FCP-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103819; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103820; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23821; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23822; AVX512BW-FCP-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153823; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153824; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43825; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43826; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3827; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3828; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3829; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3830; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3831; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3832; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3833; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3834; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3835; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3836; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3837; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, (%rcx)3838; AVX512BW-FCP-NEXT:    vzeroupper3839; AVX512BW-FCP-NEXT:    retq3840;3841; AVX512DQ-BW-LABEL: store_i32_stride3_vf64:3842; AVX512DQ-BW:       # %bb.0:3843; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm33844; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm23845; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm13846; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm03847; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm43848; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm53849; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm63850; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm73851; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm83852; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm93853; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm103854; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm113855; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3856; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm133857; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133858; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3859; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133860; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3861; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm163862; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163863; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3864; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163865; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3866; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm193867; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193868; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3869; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193870; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03871; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03872; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm73873; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73874; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73875; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm113876; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113877; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113878; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13879; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13880; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm63881; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63882; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63883; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm103884; AVX512DQ-BW-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103885; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103886; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23887; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23888; AVX512DQ-BW-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153889; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153890; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43891; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43892; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3893; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3894; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3895; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3896; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3897; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3898; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3899; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3900; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3901; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3902; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3903; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, (%rcx)3904; AVX512DQ-BW-NEXT:    vzeroupper3905; AVX512DQ-BW-NEXT:    retq3906;3907; AVX512DQ-BW-FCP-LABEL: store_i32_stride3_vf64:3908; AVX512DQ-BW-FCP:       # %bb.0:3909; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm33910; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm23911; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm13912; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm03913; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm43914; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm53915; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm63916; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm73917; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm83918; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm93919; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm103920; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm113921; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,16,0,1,17,0,2,18,0,3,19,0,4,20,0,5]3922; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133923; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm12, %zmm133924; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,16,3,4,17,6,7,18,9,10,19,12,13,20,15]3925; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133926; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm15 = [0,11,27,0,12,28,0,13,29,0,14,30,0,15,31,0]3927; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163928; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm15, %zmm163929; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm17 = [26,1,2,27,4,5,28,7,8,29,10,11,30,13,14,31]3930; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm17, %zmm163931; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [5,0,22,6,0,23,7,0,24,8,0,25,9,0,26,10]3932; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm193933; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm18, %zmm193934; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm20 = [0,21,2,3,22,5,6,23,8,9,24,11,12,25,14,15]3935; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm20, %zmm193936; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm03937; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm03938; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm73939; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm15, %zmm73940; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm17, %zmm73941; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm113942; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm18, %zmm113943; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm20, %zmm113944; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm12, %zmm13945; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm14, %zmm13946; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm63947; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm15, %zmm63948; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm17, %zmm63949; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm103950; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm2, %zmm18, %zmm103951; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm20, %zmm103952; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm23953; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm14, %zmm23954; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm4, %zmm3, %zmm153955; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm17, %zmm153956; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm18, %zmm43957; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm20, %zmm43958; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 64(%rcx)3959; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rcx)3960; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 192(%rcx)3961; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 256(%rcx)3962; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 320(%rcx)3963; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 384(%rcx)3964; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 448(%rcx)3965; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 512(%rcx)3966; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 576(%rcx)3967; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 640(%rcx)3968; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 704(%rcx)3969; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, (%rcx)3970; AVX512DQ-BW-FCP-NEXT:    vzeroupper3971; AVX512DQ-BW-FCP-NEXT:    retq3972  %in.vec0 = load <64 x i32>, ptr %in.vecptr0, align 643973  %in.vec1 = load <64 x i32>, ptr %in.vecptr1, align 643974  %in.vec2 = load <64 x i32>, ptr %in.vecptr2, align 643975  %1 = shufflevector <64 x i32> %in.vec0, <64 x i32> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>3976  %2 = shufflevector <64 x i32> %in.vec2, <64 x i32> poison, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>3977  %3 = shufflevector <128 x i32> %1, <128 x i32> %2, <192 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>3978  %interleaved.vec = shufflevector <192 x i32> %3, <192 x i32> poison, <192 x i32> <i32 0, i32 64, i32 128, i32 1, i32 65, i32 129, i32 2, i32 66, i32 130, i32 3, i32 67, i32 131, i32 4, i32 68, i32 132, i32 5, i32 69, i32 133, i32 6, i32 70, i32 134, i32 7, i32 71, i32 135, i32 8, i32 72, i32 136, i32 9, i32 73, i32 137, i32 10, i32 74, i32 138, i32 11, i32 75, i32 139, i32 12, i32 76, i32 140, i32 13, i32 77, i32 141, i32 14, i32 78, i32 142, i32 15, i32 79, i32 143, i32 16, i32 80, i32 144, i32 17, i32 81, i32 145, i32 18, i32 82, i32 146, i32 19, i32 83, i32 147, i32 20, i32 84, i32 148, i32 21, i32 85, i32 149, i32 22, i32 86, i32 150, i32 23, i32 87, i32 151, i32 24, i32 88, i32 152, i32 25, i32 89, i32 153, i32 26, i32 90, i32 154, i32 27, i32 91, i32 155, i32 28, i32 92, i32 156, i32 29, i32 93, i32 157, i32 30, i32 94, i32 158, i32 31, i32 95, i32 159, i32 32, i32 96, i32 160, i32 33, i32 97, i32 161, i32 34, i32 98, i32 162, i32 35, i32 99, i32 163, i32 36, i32 100, i32 164, i32 37, i32 101, i32 165, i32 38, i32 102, i32 166, i32 39, i32 103, i32 167, i32 40, i32 104, i32 168, i32 41, i32 105, i32 169, i32 42, i32 106, i32 170, i32 43, i32 107, i32 171, i32 44, i32 108, i32 172, i32 45, i32 109, i32 173, i32 46, i32 110, i32 174, i32 47, i32 111, i32 175, i32 48, i32 112, i32 176, i32 49, i32 113, i32 177, i32 50, i32 114, i32 178, i32 51, i32 115, i32 179, i32 52, i32 116, i32 180, i32 53, i32 117, i32 181, i32 54, i32 118, i32 182, i32 55, i32 119, i32 183, i32 56, i32 120, i32 184, i32 57, i32 121, i32 185, i32 58, i32 122, i32 186, i32 59, i32 123, i32 187, i32 60, i32 124, i32 188, i32 61, i32 125, i32 189, i32 62, i32 126, i32 190, i32 63, i32 127, i32 191>3979  store <192 x i32> %interleaved.vec, ptr %out.vec, align 643980  ret void3981}3982