11999 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_stride6_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {19; SSE-LABEL: store_i32_stride6_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax22; SSE-NEXT: movsd {{.*#+}} xmm0 = mem[0],zero23; SSE-NEXT: movsd {{.*#+}} xmm1 = mem[0],zero24; SSE-NEXT: movsd {{.*#+}} xmm2 = mem[0],zero25; SSE-NEXT: movsd {{.*#+}} xmm3 = mem[0],zero26; SSE-NEXT: movaps %xmm0, %xmm427; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]28; SSE-NEXT: movaps %xmm2, %xmm529; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]30; SSE-NEXT: movsd {{.*#+}} xmm6 = mem[0],zero31; SSE-NEXT: movsd {{.*#+}} xmm7 = mem[0],zero32; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm6[0]33; SSE-NEXT: unpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]34; SSE-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]35; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm2[0]36; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,3],xmm7[1,3]37; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,2],xmm4[1,3]38; SSE-NEXT: movaps %xmm5, 32(%rax)39; SSE-NEXT: movaps %xmm7, 16(%rax)40; SSE-NEXT: movaps %xmm0, (%rax)41; SSE-NEXT: retq42;43; AVX-LABEL: store_i32_stride6_vf2:44; AVX: # %bb.0:45; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax46; AVX-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero47; AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero48; AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]49; AVX-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero50; AVX-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero51; AVX-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]52; AVX-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero53; AVX-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero54; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]55; AVX-NEXT: vshufps {{.*#+}} xmm3 = xmm2[0,2],xmm0[1,3]56; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]57; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm058; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,3],xmm2[1,3]59; AVX-NEXT: vmovaps %xmm1, 32(%rax)60; AVX-NEXT: vmovaps %ymm0, (%rax)61; AVX-NEXT: vzeroupper62; AVX-NEXT: retq63;64; AVX2-LABEL: store_i32_stride6_vf2:65; AVX2: # %bb.0:66; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax67; AVX2-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero68; AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero69; AVX2-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]70; AVX2-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero71; AVX2-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero72; AVX2-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]73; AVX2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm074; AVX2-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero75; AVX2-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero76; AVX2-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]77; AVX2-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,2,1,3,4,6,5,7]78; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,2,1]79; AVX2-NEXT: vshufps {{.*#+}} xmm3 = xmm2[0,2,2,3]80; AVX2-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm381; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]82; AVX2-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,3],xmm2[1,3]83; AVX2-NEXT: vmovaps %xmm1, 32(%rax)84; AVX2-NEXT: vmovaps %ymm0, (%rax)85; AVX2-NEXT: vzeroupper86; AVX2-NEXT: retq87;88; AVX2-FP-LABEL: store_i32_stride6_vf2:89; AVX2-FP: # %bb.0:90; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax91; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero92; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero93; AVX2-FP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]94; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero95; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero96; AVX2-FP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]97; AVX2-FP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm098; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero99; AVX2-FP-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero100; AVX2-FP-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]101; AVX2-FP-NEXT: vshufps {{.*#+}} ymm0 = ymm0[0,2,1,3,4,6,5,7]102; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,2,1]103; AVX2-FP-NEXT: vshufps {{.*#+}} xmm3 = xmm2[0,2,2,3]104; AVX2-FP-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm3105; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]106; AVX2-FP-NEXT: vshufps {{.*#+}} xmm1 = xmm1[1,3],xmm2[1,3]107; AVX2-FP-NEXT: vmovaps %xmm1, 32(%rax)108; AVX2-FP-NEXT: vmovaps %ymm0, (%rax)109; AVX2-FP-NEXT: vzeroupper110; AVX2-FP-NEXT: retq111;112; AVX2-FCP-LABEL: store_i32_stride6_vf2:113; AVX2-FCP: # %bb.0:114; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax115; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero116; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero117; AVX2-FCP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]118; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero119; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero120; AVX2-FCP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]121; AVX2-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0122; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero123; AVX2-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero124; AVX2-FCP-NEXT: vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm1[0]125; AVX2-FCP-NEXT: vshufps {{.*#+}} ymm3 = ymm0[1,3],ymm3[1,3],ymm0[5,7],ymm3[5,7]126; AVX2-FCP-NEXT: vpermpd {{.*#+}} ymm3 = ymm3[2,1,2,3]127; AVX2-FCP-NEXT: vmovaps {{.*#+}} ymm4 = [0,2,4,6,u,u,1,3]128; AVX2-FCP-NEXT: vpermps %ymm0, %ymm4, %ymm0129; AVX2-FCP-NEXT: vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]130; AVX2-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm1131; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]132; AVX2-FCP-NEXT: vmovaps %ymm0, (%rax)133; AVX2-FCP-NEXT: vmovaps %xmm3, 32(%rax)134; AVX2-FCP-NEXT: vzeroupper135; AVX2-FCP-NEXT: retq136;137; AVX512-LABEL: store_i32_stride6_vf2:138; AVX512: # %bb.0:139; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax140; AVX512-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero141; AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero142; AVX512-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]143; AVX512-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero144; AVX512-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero145; AVX512-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]146; AVX512-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero147; AVX512-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero148; AVX512-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]149; AVX512-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0150; AVX512-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0151; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]152; AVX512-NEXT: vpermps %zmm0, %zmm1, %zmm0153; AVX512-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)154; AVX512-NEXT: vmovaps %ymm0, (%rax)155; AVX512-NEXT: vzeroupper156; AVX512-NEXT: retq157;158; AVX512-FCP-LABEL: store_i32_stride6_vf2:159; AVX512-FCP: # %bb.0:160; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax161; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero162; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero163; AVX512-FCP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]164; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero165; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero166; AVX512-FCP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]167; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero168; AVX512-FCP-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero169; AVX512-FCP-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]170; AVX512-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0171; AVX512-FCP-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0172; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]173; AVX512-FCP-NEXT: vpermps %zmm0, %zmm1, %zmm0174; AVX512-FCP-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)175; AVX512-FCP-NEXT: vmovaps %ymm0, (%rax)176; AVX512-FCP-NEXT: vzeroupper177; AVX512-FCP-NEXT: retq178;179; AVX512DQ-LABEL: store_i32_stride6_vf2:180; AVX512DQ: # %bb.0:181; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax182; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero183; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero184; AVX512DQ-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]185; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero186; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero187; AVX512DQ-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]188; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero189; AVX512DQ-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero190; AVX512DQ-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]191; AVX512DQ-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0192; AVX512DQ-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0193; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]194; AVX512DQ-NEXT: vpermps %zmm0, %zmm1, %zmm0195; AVX512DQ-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)196; AVX512DQ-NEXT: vmovaps %ymm0, (%rax)197; AVX512DQ-NEXT: vzeroupper198; AVX512DQ-NEXT: retq199;200; AVX512DQ-FCP-LABEL: store_i32_stride6_vf2:201; AVX512DQ-FCP: # %bb.0:202; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax203; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero204; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero205; AVX512DQ-FCP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]206; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero207; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero208; AVX512DQ-FCP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]209; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero210; AVX512DQ-FCP-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero211; AVX512DQ-FCP-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]212; AVX512DQ-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0213; AVX512DQ-FCP-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0214; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]215; AVX512DQ-FCP-NEXT: vpermps %zmm0, %zmm1, %zmm0216; AVX512DQ-FCP-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)217; AVX512DQ-FCP-NEXT: vmovaps %ymm0, (%rax)218; AVX512DQ-FCP-NEXT: vzeroupper219; AVX512DQ-FCP-NEXT: retq220;221; AVX512BW-LABEL: store_i32_stride6_vf2:222; AVX512BW: # %bb.0:223; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax224; AVX512BW-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero225; AVX512BW-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero226; AVX512BW-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]227; AVX512BW-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero228; AVX512BW-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero229; AVX512BW-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]230; AVX512BW-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero231; AVX512BW-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero232; AVX512BW-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]233; AVX512BW-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0234; AVX512BW-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0235; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]236; AVX512BW-NEXT: vpermps %zmm0, %zmm1, %zmm0237; AVX512BW-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)238; AVX512BW-NEXT: vmovaps %ymm0, (%rax)239; AVX512BW-NEXT: vzeroupper240; AVX512BW-NEXT: retq241;242; AVX512BW-FCP-LABEL: store_i32_stride6_vf2:243; AVX512BW-FCP: # %bb.0:244; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax245; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero246; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero247; AVX512BW-FCP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]248; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero249; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero250; AVX512BW-FCP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]251; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero252; AVX512BW-FCP-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero253; AVX512BW-FCP-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]254; AVX512BW-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0255; AVX512BW-FCP-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0256; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]257; AVX512BW-FCP-NEXT: vpermps %zmm0, %zmm1, %zmm0258; AVX512BW-FCP-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)259; AVX512BW-FCP-NEXT: vmovaps %ymm0, (%rax)260; AVX512BW-FCP-NEXT: vzeroupper261; AVX512BW-FCP-NEXT: retq262;263; AVX512DQ-BW-LABEL: store_i32_stride6_vf2:264; AVX512DQ-BW: # %bb.0:265; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax266; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero267; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero268; AVX512DQ-BW-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]269; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero270; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero271; AVX512DQ-BW-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]272; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero273; AVX512DQ-BW-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero274; AVX512DQ-BW-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]275; AVX512DQ-BW-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0276; AVX512DQ-BW-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0277; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]278; AVX512DQ-BW-NEXT: vpermps %zmm0, %zmm1, %zmm0279; AVX512DQ-BW-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)280; AVX512DQ-BW-NEXT: vmovaps %ymm0, (%rax)281; AVX512DQ-BW-NEXT: vzeroupper282; AVX512DQ-BW-NEXT: retq283;284; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf2:285; AVX512DQ-BW-FCP: # %bb.0:286; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax287; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero288; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero289; AVX512DQ-BW-FCP-NEXT: vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]290; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm1 = mem[0],zero291; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero292; AVX512DQ-BW-FCP-NEXT: vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]293; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm2 = mem[0],zero294; AVX512DQ-BW-FCP-NEXT: vmovsd {{.*#+}} xmm3 = mem[0],zero295; AVX512DQ-BW-FCP-NEXT: vmovlhps {{.*#+}} xmm2 = xmm3[0],xmm2[0]296; AVX512DQ-BW-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm0297; AVX512DQ-BW-FCP-NEXT: vinsertf32x4 $2, %xmm2, %zmm0, %zmm0298; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,2,4,6,8,10,1,3,5,7,9,11,0,0,0,0]299; AVX512DQ-BW-FCP-NEXT: vpermps %zmm0, %zmm1, %zmm0300; AVX512DQ-BW-FCP-NEXT: vextractf32x4 $2, %zmm0, 32(%rax)301; AVX512DQ-BW-FCP-NEXT: vmovaps %ymm0, (%rax)302; AVX512DQ-BW-FCP-NEXT: vzeroupper303; AVX512DQ-BW-FCP-NEXT: retq304 %in.vec0 = load <2 x i32>, ptr %in.vecptr0, align 64305 %in.vec1 = load <2 x i32>, ptr %in.vecptr1, align 64306 %in.vec2 = load <2 x i32>, ptr %in.vecptr2, align 64307 %in.vec3 = load <2 x i32>, ptr %in.vecptr3, align 64308 %in.vec4 = load <2 x i32>, ptr %in.vecptr4, align 64309 %in.vec5 = load <2 x i32>, ptr %in.vecptr5, align 64310 %1 = shufflevector <2 x i32> %in.vec0, <2 x i32> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>311 %2 = shufflevector <2 x i32> %in.vec2, <2 x i32> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>312 %3 = shufflevector <2 x i32> %in.vec4, <2 x i32> %in.vec5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>313 %4 = shufflevector <4 x i32> %1, <4 x i32> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>314 %5 = shufflevector <4 x i32> %3, <4 x i32> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>315 %6 = shufflevector <8 x i32> %4, <8 x i32> %5, <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>316 %interleaved.vec = shufflevector <12 x i32> %6, <12 x i32> poison, <12 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11>317 store <12 x i32> %interleaved.vec, ptr %out.vec, align 64318 ret void319}320 321define void @store_i32_stride6_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {322; SSE-LABEL: store_i32_stride6_vf4:323; SSE: # %bb.0:324; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax325; SSE-NEXT: movaps (%rdi), %xmm0326; SSE-NEXT: movaps (%rsi), %xmm4327; SSE-NEXT: movaps (%rdx), %xmm1328; SSE-NEXT: movaps (%rcx), %xmm5329; SSE-NEXT: movaps (%r8), %xmm7330; SSE-NEXT: movaps (%r9), %xmm3331; SSE-NEXT: movaps %xmm1, %xmm2332; SSE-NEXT: unpcklps {{.*#+}} xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]333; SSE-NEXT: movaps %xmm7, %xmm6334; SSE-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]335; SSE-NEXT: movaps %xmm7, %xmm8336; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[3,3],xmm3[3,3]337; SSE-NEXT: movaps %xmm7, %xmm9338; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[1,1],xmm3[1,1]339; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm7[0]340; SSE-NEXT: movaps %xmm0, %xmm7341; SSE-NEXT: unpcklps {{.*#+}} xmm7 = xmm7[0],xmm4[0],xmm7[1],xmm4[1]342; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm7[2,3]343; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm2[0]344; SSE-NEXT: unpckhps {{.*#+}} xmm0 = xmm0[2],xmm4[2],xmm0[3],xmm4[3]345; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,2],xmm0[2,3]346; SSE-NEXT: unpckhps {{.*#+}} xmm1 = xmm1[2],xmm5[2],xmm1[3],xmm5[3]347; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]348; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[2,3],xmm8[0,2]349; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,3],xmm9[0,2]350; SSE-NEXT: movaps %xmm3, 16(%rax)351; SSE-NEXT: movaps %xmm2, 32(%rax)352; SSE-NEXT: movaps %xmm0, 48(%rax)353; SSE-NEXT: movaps %xmm1, 80(%rax)354; SSE-NEXT: movaps %xmm6, 64(%rax)355; SSE-NEXT: movaps %xmm7, (%rax)356; SSE-NEXT: retq357;358; AVX-LABEL: store_i32_stride6_vf4:359; AVX: # %bb.0:360; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax361; AVX-NEXT: vmovaps (%rdi), %xmm0362; AVX-NEXT: vmovaps (%rsi), %xmm1363; AVX-NEXT: vmovaps (%rdx), %xmm2364; AVX-NEXT: vmovaps (%rcx), %xmm3365; AVX-NEXT: vmovaps (%r8), %xmm4366; AVX-NEXT: vmovaps (%r9), %xmm5367; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm6368; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm7369; AVX-NEXT: vunpckhpd {{.*#+}} ymm6 = ymm6[1],ymm7[1],ymm6[3],ymm7[3]370; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm7371; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm8372; AVX-NEXT: vshufps {{.*#+}} ymm7 = ymm8[3,3],ymm7[3,3],ymm8[7,7],ymm7[7,7]373; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6],ymm6[7]374; AVX-NEXT: vpermilps {{.*#+}} ymm6 = ymm6[0,2,1,3,4,6,7,5]375; AVX-NEXT: vunpcklps {{.*#+}} xmm7 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]376; AVX-NEXT: vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]377; AVX-NEXT: vblendps {{.*#+}} xmm5 = xmm4[0,1],xmm7[2,3]378; AVX-NEXT: vunpcklps {{.*#+}} xmm8 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]379; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm7[0],xmm8[0]380; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm7, %ymm5381; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]382; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm3[2,2,2,2]383; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm2[0,1,2],xmm1[3]384; AVX-NEXT: vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2,3]385; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm2[1,1,1,1]386; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]387; AVX-NEXT: vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm4[2,3]388; AVX-NEXT: vmovaps %xmm1, 32(%rax)389; AVX-NEXT: vmovaps %xmm0, 48(%rax)390; AVX-NEXT: vmovaps %ymm5, (%rax)391; AVX-NEXT: vmovaps %ymm6, 64(%rax)392; AVX-NEXT: vzeroupper393; AVX-NEXT: retq394;395; AVX2-LABEL: store_i32_stride6_vf4:396; AVX2: # %bb.0:397; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax398; AVX2-NEXT: vmovaps (%rdi), %xmm0399; AVX2-NEXT: vmovaps (%rsi), %xmm1400; AVX2-NEXT: vmovaps (%rdx), %xmm2401; AVX2-NEXT: vmovaps (%rcx), %xmm3402; AVX2-NEXT: vmovaps (%r8), %xmm4403; AVX2-NEXT: vmovaps (%r9), %xmm5404; AVX2-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm6405; AVX2-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm7406; AVX2-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm8407; AVX2-NEXT: vbroadcastsd {{.*#+}} ymm9 = [0,4,0,4,0,4,0,4]408; AVX2-NEXT: vpermps %ymm7, %ymm9, %ymm10409; AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm11 = [0,4,1,5,0,4,1,5]410; AVX2-NEXT: # ymm11 = mem[0,1,0,1]411; AVX2-NEXT: vpermps %ymm6, %ymm11, %ymm11412; AVX2-NEXT: vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3],ymm11[4,5,6,7]413; AVX2-NEXT: vpermps %ymm8, %ymm9, %ymm9414; AVX2-NEXT: vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5],ymm10[6,7]415; AVX2-NEXT: vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]416; AVX2-NEXT: vpermps %ymm6, %ymm10, %ymm6417; AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm10 = [1,5,2,6,1,5,2,6]418; AVX2-NEXT: # ymm10 = mem[0,1,0,1]419; AVX2-NEXT: vpermps %ymm7, %ymm10, %ymm7420; AVX2-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]421; AVX2-NEXT: vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]422; AVX2-NEXT: vblendps {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3],ymm6[4,5,6,7]423; AVX2-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1424; AVX2-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0425; AVX2-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]426; AVX2-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]427; AVX2-NEXT: vbroadcastf128 {{.*#+}} ymm1 = [2,6,3,7,2,6,3,7]428; AVX2-NEXT: # ymm1 = mem[0,1,0,1]429; AVX2-NEXT: vpermps %ymm8, %ymm1, %ymm1430; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]431; AVX2-NEXT: vmovaps %ymm0, 64(%rax)432; AVX2-NEXT: vmovaps %ymm4, 32(%rax)433; AVX2-NEXT: vmovaps %ymm9, (%rax)434; AVX2-NEXT: vzeroupper435; AVX2-NEXT: retq436;437; AVX2-FP-LABEL: store_i32_stride6_vf4:438; AVX2-FP: # %bb.0:439; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax440; AVX2-FP-NEXT: vmovaps (%rdi), %xmm0441; AVX2-FP-NEXT: vmovaps (%rsi), %xmm1442; AVX2-FP-NEXT: vmovaps (%rdx), %xmm2443; AVX2-FP-NEXT: vmovaps (%rcx), %xmm3444; AVX2-FP-NEXT: vmovaps (%r8), %xmm4445; AVX2-FP-NEXT: vmovaps (%r9), %xmm5446; AVX2-FP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm6447; AVX2-FP-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm7448; AVX2-FP-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm8449; AVX2-FP-NEXT: vbroadcastsd {{.*#+}} ymm9 = [0,4,0,4,0,4,0,4]450; AVX2-FP-NEXT: vpermps %ymm7, %ymm9, %ymm10451; AVX2-FP-NEXT: vbroadcastf128 {{.*#+}} ymm11 = [0,4,1,5,0,4,1,5]452; AVX2-FP-NEXT: # ymm11 = mem[0,1,0,1]453; AVX2-FP-NEXT: vpermps %ymm6, %ymm11, %ymm11454; AVX2-FP-NEXT: vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3],ymm11[4,5,6,7]455; AVX2-FP-NEXT: vpermps %ymm8, %ymm9, %ymm9456; AVX2-FP-NEXT: vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5],ymm10[6,7]457; AVX2-FP-NEXT: vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]458; AVX2-FP-NEXT: vpermps %ymm6, %ymm10, %ymm6459; AVX2-FP-NEXT: vbroadcastf128 {{.*#+}} ymm10 = [1,5,2,6,1,5,2,6]460; AVX2-FP-NEXT: # ymm10 = mem[0,1,0,1]461; AVX2-FP-NEXT: vpermps %ymm7, %ymm10, %ymm7462; AVX2-FP-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]463; AVX2-FP-NEXT: vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]464; AVX2-FP-NEXT: vblendps {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3],ymm6[4,5,6,7]465; AVX2-FP-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1466; AVX2-FP-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0467; AVX2-FP-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]468; AVX2-FP-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]469; AVX2-FP-NEXT: vbroadcastf128 {{.*#+}} ymm1 = [2,6,3,7,2,6,3,7]470; AVX2-FP-NEXT: # ymm1 = mem[0,1,0,1]471; AVX2-FP-NEXT: vpermps %ymm8, %ymm1, %ymm1472; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]473; AVX2-FP-NEXT: vmovaps %ymm0, 64(%rax)474; AVX2-FP-NEXT: vmovaps %ymm4, 32(%rax)475; AVX2-FP-NEXT: vmovaps %ymm9, (%rax)476; AVX2-FP-NEXT: vzeroupper477; AVX2-FP-NEXT: retq478;479; AVX2-FCP-LABEL: store_i32_stride6_vf4:480; AVX2-FCP: # %bb.0:481; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax482; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm0483; AVX2-FCP-NEXT: vmovaps (%rsi), %xmm1484; AVX2-FCP-NEXT: vmovaps (%rdx), %xmm2485; AVX2-FCP-NEXT: vmovaps (%rcx), %xmm3486; AVX2-FCP-NEXT: vmovaps (%r8), %xmm4487; AVX2-FCP-NEXT: vmovaps (%r9), %xmm5488; AVX2-FCP-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm6489; AVX2-FCP-NEXT: vinsertf128 $1, %xmm3, %ymm2, %ymm7490; AVX2-FCP-NEXT: vinsertf128 $1, %xmm5, %ymm4, %ymm8491; AVX2-FCP-NEXT: vbroadcastsd {{.*#+}} ymm9 = [0,4,0,4,0,4,0,4]492; AVX2-FCP-NEXT: vpermps %ymm7, %ymm9, %ymm10493; AVX2-FCP-NEXT: vbroadcastf128 {{.*#+}} ymm11 = [0,4,1,5,0,4,1,5]494; AVX2-FCP-NEXT: # ymm11 = mem[0,1,0,1]495; AVX2-FCP-NEXT: vpermps %ymm6, %ymm11, %ymm11496; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3],ymm11[4,5,6,7]497; AVX2-FCP-NEXT: vpermps %ymm8, %ymm9, %ymm9498; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm9 = ymm10[0,1,2,3],ymm9[4,5],ymm10[6,7]499; AVX2-FCP-NEXT: vbroadcastsd {{.*#+}} ymm10 = [2,6,2,6,2,6,2,6]500; AVX2-FCP-NEXT: vpermps %ymm6, %ymm10, %ymm6501; AVX2-FCP-NEXT: vbroadcastf128 {{.*#+}} ymm10 = [1,5,2,6,1,5,2,6]502; AVX2-FCP-NEXT: # ymm10 = mem[0,1,0,1]503; AVX2-FCP-NEXT: vpermps %ymm7, %ymm10, %ymm7504; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]505; AVX2-FCP-NEXT: vunpcklps {{.*#+}} xmm4 = xmm4[0],xmm5[0],xmm4[1],xmm5[1]506; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3],ymm6[4,5,6,7]507; AVX2-FCP-NEXT: vinsertf128 $1, %xmm3, %ymm1, %ymm1508; AVX2-FCP-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm0509; AVX2-FCP-NEXT: vunpckhps {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]510; AVX2-FCP-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]511; AVX2-FCP-NEXT: vbroadcastf128 {{.*#+}} ymm1 = [2,6,3,7,2,6,3,7]512; AVX2-FCP-NEXT: # ymm1 = mem[0,1,0,1]513; AVX2-FCP-NEXT: vpermps %ymm8, %ymm1, %ymm1514; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]515; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%rax)516; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%rax)517; AVX2-FCP-NEXT: vmovaps %ymm9, (%rax)518; AVX2-FCP-NEXT: vzeroupper519; AVX2-FCP-NEXT: retq520;521; AVX512-LABEL: store_i32_stride6_vf4:522; AVX512: # %bb.0:523; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax524; AVX512-NEXT: vmovdqa (%rdi), %xmm0525; AVX512-NEXT: vmovdqa (%rdx), %xmm1526; AVX512-NEXT: vmovdqa (%r8), %xmm2527; AVX512-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1528; AVX512-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0529; AVX512-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0530; AVX512-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1531; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]532; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm2533; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]534; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm3535; AVX512-NEXT: vmovdqa64 %zmm3, (%rax)536; AVX512-NEXT: vmovdqa %ymm2, 64(%rax)537; AVX512-NEXT: vzeroupper538; AVX512-NEXT: retq539;540; AVX512-FCP-LABEL: store_i32_stride6_vf4:541; AVX512-FCP: # %bb.0:542; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax543; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0544; AVX512-FCP-NEXT: vmovdqa (%rdx), %xmm1545; AVX512-FCP-NEXT: vmovdqa (%r8), %xmm2546; AVX512-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1547; AVX512-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0548; AVX512-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0549; AVX512-FCP-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1550; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]551; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm2552; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]553; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3554; AVX512-FCP-NEXT: vmovdqa64 %zmm3, (%rax)555; AVX512-FCP-NEXT: vmovdqa %ymm2, 64(%rax)556; AVX512-FCP-NEXT: vzeroupper557; AVX512-FCP-NEXT: retq558;559; AVX512DQ-LABEL: store_i32_stride6_vf4:560; AVX512DQ: # %bb.0:561; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax562; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0563; AVX512DQ-NEXT: vmovdqa (%rdx), %xmm1564; AVX512DQ-NEXT: vmovdqa (%r8), %xmm2565; AVX512DQ-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1566; AVX512DQ-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0567; AVX512DQ-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0568; AVX512DQ-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1569; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]570; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm2571; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]572; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm3573; AVX512DQ-NEXT: vmovdqa64 %zmm3, (%rax)574; AVX512DQ-NEXT: vmovdqa %ymm2, 64(%rax)575; AVX512DQ-NEXT: vzeroupper576; AVX512DQ-NEXT: retq577;578; AVX512DQ-FCP-LABEL: store_i32_stride6_vf4:579; AVX512DQ-FCP: # %bb.0:580; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax581; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0582; AVX512DQ-FCP-NEXT: vmovdqa (%rdx), %xmm1583; AVX512DQ-FCP-NEXT: vmovdqa (%r8), %xmm2584; AVX512DQ-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1585; AVX512DQ-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0586; AVX512DQ-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0587; AVX512DQ-FCP-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1588; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]589; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm2590; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]591; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3592; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, (%rax)593; AVX512DQ-FCP-NEXT: vmovdqa %ymm2, 64(%rax)594; AVX512DQ-FCP-NEXT: vzeroupper595; AVX512DQ-FCP-NEXT: retq596;597; AVX512BW-LABEL: store_i32_stride6_vf4:598; AVX512BW: # %bb.0:599; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax600; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0601; AVX512BW-NEXT: vmovdqa (%rdx), %xmm1602; AVX512BW-NEXT: vmovdqa (%r8), %xmm2603; AVX512BW-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1604; AVX512BW-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0605; AVX512BW-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0606; AVX512BW-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1607; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]608; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm2609; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]610; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm3611; AVX512BW-NEXT: vmovdqa64 %zmm3, (%rax)612; AVX512BW-NEXT: vmovdqa %ymm2, 64(%rax)613; AVX512BW-NEXT: vzeroupper614; AVX512BW-NEXT: retq615;616; AVX512BW-FCP-LABEL: store_i32_stride6_vf4:617; AVX512BW-FCP: # %bb.0:618; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax619; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0620; AVX512BW-FCP-NEXT: vmovdqa (%rdx), %xmm1621; AVX512BW-FCP-NEXT: vmovdqa (%r8), %xmm2622; AVX512BW-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1623; AVX512BW-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0624; AVX512BW-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0625; AVX512BW-FCP-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1626; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]627; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm2628; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]629; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3630; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)631; AVX512BW-FCP-NEXT: vmovdqa %ymm2, 64(%rax)632; AVX512BW-FCP-NEXT: vzeroupper633; AVX512BW-FCP-NEXT: retq634;635; AVX512DQ-BW-LABEL: store_i32_stride6_vf4:636; AVX512DQ-BW: # %bb.0:637; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax638; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0639; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %xmm1640; AVX512DQ-BW-NEXT: vmovdqa (%r8), %xmm2641; AVX512DQ-BW-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1642; AVX512DQ-BW-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0643; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0644; AVX512DQ-BW-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1645; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]646; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm2647; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]648; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm3649; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, (%rax)650; AVX512DQ-BW-NEXT: vmovdqa %ymm2, 64(%rax)651; AVX512DQ-BW-NEXT: vzeroupper652; AVX512DQ-BW-NEXT: retq653;654; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf4:655; AVX512DQ-BW-FCP: # %bb.0:656; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax657; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0658; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdx), %xmm1659; AVX512DQ-BW-FCP-NEXT: vmovdqa (%r8), %xmm2660; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1661; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0662; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, %ymm1, %zmm0, %zmm0663; AVX512DQ-BW-FCP-NEXT: vinserti32x4 $1, (%r9), %zmm2, %zmm1664; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} ymm2 = [18,22,3,7,11,15,19,23]665; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm2666; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,4,8,12,16,20,1,5,9,13,17,21,2,6,10,14]667; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm3668; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, (%rax)669; AVX512DQ-BW-FCP-NEXT: vmovdqa %ymm2, 64(%rax)670; AVX512DQ-BW-FCP-NEXT: vzeroupper671; AVX512DQ-BW-FCP-NEXT: retq672 %in.vec0 = load <4 x i32>, ptr %in.vecptr0, align 64673 %in.vec1 = load <4 x i32>, ptr %in.vecptr1, align 64674 %in.vec2 = load <4 x i32>, ptr %in.vecptr2, align 64675 %in.vec3 = load <4 x i32>, ptr %in.vecptr3, align 64676 %in.vec4 = load <4 x i32>, ptr %in.vecptr4, align 64677 %in.vec5 = load <4 x i32>, ptr %in.vecptr5, align 64678 %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>679 %2 = shufflevector <4 x i32> %in.vec2, <4 x i32> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>680 %3 = shufflevector <4 x i32> %in.vec4, <4 x i32> %in.vec5, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>681 %4 = shufflevector <8 x i32> %1, <8 x i32> %2, <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>682 %5 = shufflevector <8 x i32> %3, <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>683 %6 = shufflevector <16 x i32> %4, <16 x i32> %5, <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>684 %interleaved.vec = shufflevector <24 x i32> %6, <24 x i32> poison, <24 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23>685 store <24 x i32> %interleaved.vec, ptr %out.vec, align 64686 ret void687}688 689define void @store_i32_stride6_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {690; SSE-LABEL: store_i32_stride6_vf8:691; SSE: # %bb.0:692; SSE-NEXT: movaps (%rdi), %xmm4693; SSE-NEXT: movaps 16(%rdi), %xmm1694; SSE-NEXT: movaps (%rsi), %xmm0695; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill696; SSE-NEXT: movaps 16(%rsi), %xmm10697; SSE-NEXT: movaps (%rdx), %xmm8698; SSE-NEXT: movaps 16(%rdx), %xmm2699; SSE-NEXT: movaps (%rcx), %xmm6700; SSE-NEXT: movaps 16(%rcx), %xmm9701; SSE-NEXT: movaps (%r8), %xmm5702; SSE-NEXT: movaps 16(%r8), %xmm11703; SSE-NEXT: movaps (%r9), %xmm7704; SSE-NEXT: movaps 16(%r9), %xmm3705; SSE-NEXT: movaps %xmm9, %xmm14706; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm2[1]707; SSE-NEXT: movaps %xmm1, %xmm12708; SSE-NEXT: unpckhps {{.*#+}} xmm12 = xmm12[2],xmm10[2],xmm12[3],xmm10[3]709; SSE-NEXT: movaps %xmm11, %xmm13710; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm3[1]711; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[0,2],xmm12[2,3]712; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[0,1],xmm14[2,0]713; SSE-NEXT: movaps %xmm11, %xmm14714; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[1,1],xmm3[1,1]715; SSE-NEXT: movaps %xmm2, %xmm15716; SSE-NEXT: unpcklps {{.*#+}} xmm15 = xmm15[0],xmm9[0],xmm15[1],xmm9[1]717; SSE-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm10[0],xmm1[1],xmm10[1]718; SSE-NEXT: movaps %xmm11, %xmm0719; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[3,3],xmm3[3,3]720; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm11[0]721; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm1[2,3]722; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm15[0]723; SSE-NEXT: movaps %xmm15, %xmm10724; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[2,3],xmm14[0,2]725; SSE-NEXT: movaps %xmm5, %xmm14726; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[3,3],xmm7[3,3]727; SSE-NEXT: movaps %xmm8, %xmm11728; SSE-NEXT: unpckhps {{.*#+}} xmm11 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]729; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,3],xmm14[0,2]730; SSE-NEXT: movaps %xmm4, %xmm14731; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload732; SSE-NEXT: unpckhps {{.*#+}} xmm14 = xmm14[2],xmm15[2],xmm14[3],xmm15[3]733; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm15[0],xmm4[1],xmm15[1]734; SSE-NEXT: unpckhps {{.*#+}} xmm2 = xmm2[2],xmm9[2],xmm2[3],xmm9[3]735; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,3],xmm0[0,2]736; SSE-NEXT: movaps %xmm8, %xmm0737; SSE-NEXT: unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]738; SSE-NEXT: unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]739; SSE-NEXT: movaps %xmm5, %xmm8740; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm7[1]741; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,2],xmm14[2,3]742; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[0,1],xmm6[2,0]743; SSE-NEXT: movaps %xmm7, %xmm6744; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]745; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,1],xmm7[1,1]746; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm4[2,3]747; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]748; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[2,3],xmm5[0,2]749; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax750; SSE-NEXT: movaps %xmm0, 32(%rax)751; SSE-NEXT: movaps %xmm14, 48(%rax)752; SSE-NEXT: movaps %xmm1, 96(%rax)753; SSE-NEXT: movaps %xmm3, 112(%rax)754; SSE-NEXT: movaps %xmm13, 160(%rax)755; SSE-NEXT: movaps %xmm2, 176(%rax)756; SSE-NEXT: movaps %xmm4, (%rax)757; SSE-NEXT: movaps %xmm6, 16(%rax)758; SSE-NEXT: movaps %xmm8, 64(%rax)759; SSE-NEXT: movaps %xmm11, 80(%rax)760; SSE-NEXT: movaps %xmm10, 128(%rax)761; SSE-NEXT: movaps %xmm12, 144(%rax)762; SSE-NEXT: retq763;764; AVX-LABEL: store_i32_stride6_vf8:765; AVX: # %bb.0:766; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax767; AVX-NEXT: vmovaps (%rdi), %ymm3768; AVX-NEXT: vmovaps (%rsi), %ymm4769; AVX-NEXT: vmovaps (%rdx), %ymm1770; AVX-NEXT: vmovaps (%rcx), %ymm2771; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]772; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]773; AVX-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]774; AVX-NEXT: vextractf128 $1, %ymm5, %xmm5775; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm5[0,1,2,0]776; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3],ymm0[4,5,6,7]777; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]778; AVX-NEXT: vbroadcastss 16(%r9), %ymm5779; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]780; AVX-NEXT: vmovaps (%rcx), %xmm6781; AVX-NEXT: vmovaps (%rdx), %xmm7782; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm7[1,2],xmm6[1,2]783; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm5[0,2,1,3]784; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm5, %ymm5785; AVX-NEXT: vmovaps (%rsi), %xmm8786; AVX-NEXT: vmovaps (%rdi), %xmm9787; AVX-NEXT: vunpckhps {{.*#+}} xmm10 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]788; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm0, %ymm11789; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5],ymm5[6,7]790; AVX-NEXT: vbroadcastss 4(%r8), %xmm11791; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm11[2,3],ymm5[4,5,6,7]792; AVX-NEXT: vbroadcastss 4(%r9), %ymm11793; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm11[3],ymm5[4,5,6,7]794; AVX-NEXT: vunpckhps {{.*#+}} xmm6 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]795; AVX-NEXT: vshufps {{.*#+}} xmm6 = xmm6[2,3,2,3]796; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm10, %ymm6797; AVX-NEXT: vpermilps {{.*#+}} xmm7 = mem[2,1,3,3]798; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm7, %ymm7799; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5],ymm7[6,7]800; AVX-NEXT: vmovaps (%r9), %xmm7801; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm7[0,2,2,3]802; AVX-NEXT: vinsertf128 $1, %xmm7, %ymm10, %ymm7803; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5,6],ymm7[7]804; AVX-NEXT: vbroadcastss (%rcx), %xmm7805; AVX-NEXT: vbroadcastss (%rdx), %xmm10806; AVX-NEXT: vunpcklps {{.*#+}} xmm7 = xmm10[0],xmm7[0],xmm10[1],xmm7[1]807; AVX-NEXT: vunpcklps {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]808; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm0, %ymm9809; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6,7]810; AVX-NEXT: vinsertf128 $1, (%r8), %ymm8, %ymm8811; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3],ymm8[4,5],ymm7[6,7]812; AVX-NEXT: vbroadcastss (%r9), %ymm8813; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm8[5],ymm7[6,7]814; AVX-NEXT: vunpckhps {{.*#+}} ymm3 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]815; AVX-NEXT: vshufps {{.*#+}} ymm4 = ymm1[1,2],ymm2[1,2],ymm1[5,6],ymm2[5,6]816; AVX-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]817; AVX-NEXT: vshufps {{.*#+}} ymm4 = ymm4[0,2,1,3,4,6,5,7]818; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]819; AVX-NEXT: vbroadcastss 20(%r8), %xmm8820; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm8[2,3],ymm4[4,5,6,7]821; AVX-NEXT: vbroadcastss 20(%r9), %ymm8822; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm8[3],ymm4[4,5,6,7]823; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm2[3,0],ymm1[3,0],ymm2[7,4],ymm1[7,4]824; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]825; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm3[2,3],ymm1[2,3]826; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm2 = mem[0,1,0,1]827; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[2,1,3,3,6,5,7,7]828; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5],ymm2[6,7]829; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm2 = mem[0,1,0,1]830; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[0,2,2,3,4,6,6,7]831; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3,4,5,6],ymm2[7]832; AVX-NEXT: vmovaps %ymm1, 160(%rax)833; AVX-NEXT: vmovaps %ymm4, 128(%rax)834; AVX-NEXT: vmovaps %ymm7, (%rax)835; AVX-NEXT: vmovaps %ymm6, 64(%rax)836; AVX-NEXT: vmovaps %ymm5, 32(%rax)837; AVX-NEXT: vmovaps %ymm0, 96(%rax)838; AVX-NEXT: vzeroupper839; AVX-NEXT: retq840;841; AVX2-LABEL: store_i32_stride6_vf8:842; AVX2: # %bb.0:843; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax844; AVX2-NEXT: vmovdqa (%rdi), %ymm0845; AVX2-NEXT: vmovdqa (%rsi), %ymm1846; AVX2-NEXT: vmovdqa (%rdx), %ymm3847; AVX2-NEXT: vmovdqa (%rcx), %ymm4848; AVX2-NEXT: vmovdqa (%r8), %ymm2849; AVX2-NEXT: vmovdqa (%rsi), %xmm6850; AVX2-NEXT: vmovdqa (%rdi), %xmm11851; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]852; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm5853; AVX2-NEXT: vmovdqa (%rcx), %xmm8854; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm8[1,2,2,3]855; AVX2-NEXT: vmovdqa (%rdx), %xmm9856; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm9[1,2,2,3]857; AVX2-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]858; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,1,2,1]859; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5],ymm10[6,7]860; AVX2-NEXT: vmovdqa (%r8), %xmm10861; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm12 = xmm10[0],zero,xmm10[1],zero862; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1],ymm12[2,3],ymm5[4,5,6,7]863; AVX2-NEXT: vpbroadcastd 4(%r9), %ymm12864; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm12[3],ymm5[4,5,6,7]865; AVX2-NEXT: vpbroadcastd (%rcx), %xmm12866; AVX2-NEXT: vpbroadcastd (%rdx), %xmm13867; AVX2-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]868; AVX2-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm11[0],xmm6[0],xmm11[1],xmm6[1]869; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]870; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm12[2,3],ymm6[4,5,6,7]871; AVX2-NEXT: vpbroadcastq %xmm10, %ymm11872; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]873; AVX2-NEXT: vmovdqa (%r9), %xmm12874; AVX2-NEXT: vpbroadcastd %xmm12, %ymm11875; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm11[5],ymm6[6,7]876; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm13 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]877; AVX2-NEXT: vpshufd {{.*#+}} ymm11 = ymm4[0,1,2,2,4,5,6,6]878; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm3[1,1,2,3,5,5,6,7]879; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2],ymm11[3],ymm14[4],ymm11[5],ymm14[6],ymm11[7]880; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,1,2,3]881; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5],ymm11[6,7]882; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm14 = mem[0],zero,mem[1],zero883; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1],ymm14[2,3],ymm11[4,5,6,7]884; AVX2-NEXT: vpbroadcastd 20(%r9), %ymm14885; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2],ymm14[3],ymm11[4,5,6,7]886; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]887; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,3,2,3]888; AVX2-NEXT: vinserti128 $1, %xmm8, %ymm7, %ymm7889; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm10[2,2,3,3]890; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]891; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5],ymm8[6,7]892; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm12[2,2,3,3]893; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]894; AVX2-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5,6],ymm8[7]895; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]896; AVX2-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,2,3,6,7,6,7]897; AVX2-NEXT: vperm2i128 {{.*#+}} ymm8 = ymm13[2,3],ymm8[2,3]898; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = ymm2[2,1,3,3,6,5,7,7]899; AVX2-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]900; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5],ymm9[6,7]901; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = mem[0,2,2,3,4,6,6,7]902; AVX2-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]903; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3,4,5,6],ymm9[7]904; AVX2-NEXT: vpunpckldq {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]905; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,2,2,2]906; AVX2-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]907; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]908; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]909; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]910; AVX2-NEXT: vpbroadcastd 16(%r9), %ymm1911; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]912; AVX2-NEXT: vmovdqa %ymm0, 96(%rax)913; AVX2-NEXT: vmovdqa %ymm8, 160(%rax)914; AVX2-NEXT: vmovdqa %ymm7, 64(%rax)915; AVX2-NEXT: vmovdqa %ymm11, 128(%rax)916; AVX2-NEXT: vmovdqa %ymm6, (%rax)917; AVX2-NEXT: vmovdqa %ymm5, 32(%rax)918; AVX2-NEXT: vzeroupper919; AVX2-NEXT: retq920;921; AVX2-FP-LABEL: store_i32_stride6_vf8:922; AVX2-FP: # %bb.0:923; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax924; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm0925; AVX2-FP-NEXT: vmovdqa (%rsi), %ymm1926; AVX2-FP-NEXT: vmovdqa (%rdx), %ymm3927; AVX2-FP-NEXT: vmovdqa (%rcx), %ymm4928; AVX2-FP-NEXT: vmovdqa (%r8), %ymm2929; AVX2-FP-NEXT: vmovdqa (%rsi), %xmm6930; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm11931; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm11[2],xmm6[2],xmm11[3],xmm6[3]932; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm5933; AVX2-FP-NEXT: vmovdqa (%rcx), %xmm8934; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm10 = xmm8[1,2,2,3]935; AVX2-FP-NEXT: vmovdqa (%rdx), %xmm9936; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm9[1,2,2,3]937; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]938; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,1,2,1]939; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2,3],ymm5[4,5],ymm10[6,7]940; AVX2-FP-NEXT: vmovdqa (%r8), %xmm10941; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm12 = xmm10[0],zero,xmm10[1],zero942; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1],ymm12[2,3],ymm5[4,5,6,7]943; AVX2-FP-NEXT: vpbroadcastd 4(%r9), %ymm12944; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2],ymm12[3],ymm5[4,5,6,7]945; AVX2-FP-NEXT: vpbroadcastd (%rcx), %xmm12946; AVX2-FP-NEXT: vpbroadcastd (%rdx), %xmm13947; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]948; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm11[0],xmm6[0],xmm11[1],xmm6[1]949; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]950; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm12[2,3],ymm6[4,5,6,7]951; AVX2-FP-NEXT: vpbroadcastq %xmm10, %ymm11952; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm11[4,5],ymm6[6,7]953; AVX2-FP-NEXT: vmovdqa (%r9), %xmm12954; AVX2-FP-NEXT: vpbroadcastd %xmm12, %ymm11955; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm11[5],ymm6[6,7]956; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm13 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]957; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm11 = ymm4[0,1,2,2,4,5,6,6]958; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm3[1,1,2,3,5,5,6,7]959; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm14[0],ymm11[1],ymm14[2],ymm11[3],ymm14[4],ymm11[5],ymm14[6],ymm11[7]960; AVX2-FP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,1,2,3]961; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm13[4,5],ymm11[6,7]962; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm14 = mem[0],zero,mem[1],zero963; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1],ymm14[2,3],ymm11[4,5,6,7]964; AVX2-FP-NEXT: vpbroadcastd 20(%r9), %ymm14965; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2],ymm14[3],ymm11[4,5,6,7]966; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]967; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,3,2,3]968; AVX2-FP-NEXT: vinserti128 $1, %xmm8, %ymm7, %ymm7969; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm8 = xmm10[2,2,3,3]970; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]971; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5],ymm8[6,7]972; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm8 = xmm12[2,2,3,3]973; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]974; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5,6],ymm8[7]975; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm8 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]976; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,2,3,6,7,6,7]977; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm8 = ymm13[2,3],ymm8[2,3]978; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm9 = ymm2[2,1,3,3,6,5,7,7]979; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]980; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5],ymm9[6,7]981; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm9 = mem[0,2,2,3,4,6,6,7]982; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]983; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3,4,5,6],ymm9[7]984; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]985; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,2,2,2]986; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]987; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]988; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]989; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]990; AVX2-FP-NEXT: vpbroadcastd 16(%r9), %ymm1991; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]992; AVX2-FP-NEXT: vmovdqa %ymm0, 96(%rax)993; AVX2-FP-NEXT: vmovdqa %ymm8, 160(%rax)994; AVX2-FP-NEXT: vmovdqa %ymm7, 64(%rax)995; AVX2-FP-NEXT: vmovdqa %ymm11, 128(%rax)996; AVX2-FP-NEXT: vmovdqa %ymm6, (%rax)997; AVX2-FP-NEXT: vmovdqa %ymm5, 32(%rax)998; AVX2-FP-NEXT: vzeroupper999; AVX2-FP-NEXT: retq1000;1001; AVX2-FCP-LABEL: store_i32_stride6_vf8:1002; AVX2-FCP: # %bb.0:1003; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1004; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm01005; AVX2-FCP-NEXT: vmovdqa (%rsi), %ymm11006; AVX2-FCP-NEXT: vmovdqa (%rdx), %ymm31007; AVX2-FCP-NEXT: vmovdqa (%rcx), %ymm41008; AVX2-FCP-NEXT: vmovdqa (%r8), %ymm21009; AVX2-FCP-NEXT: vmovdqa (%r9), %ymm51010; AVX2-FCP-NEXT: vmovdqa (%rsi), %xmm71011; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm111012; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm11[2],xmm7[2],xmm11[3],xmm7[3]1013; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm0, %ymm61014; AVX2-FCP-NEXT: vmovdqa (%rcx), %xmm91015; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm12 = xmm9[1,2,2,3]1016; AVX2-FCP-NEXT: vmovdqa (%rdx), %xmm101017; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm13 = xmm10[1,2,2,3]1018; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]1019; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm12 = ymm12[0,1,2,1]1020; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0,1,2,3],ymm6[4,5],ymm12[6,7]1021; AVX2-FCP-NEXT: vmovdqa (%r8), %xmm121022; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm13 = xmm12[0],zero,xmm12[1],zero1023; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm13[2,3],ymm6[4,5,6,7]1024; AVX2-FCP-NEXT: vpbroadcastd 4(%r9), %ymm131025; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2],ymm13[3],ymm6[4,5,6,7]1026; AVX2-FCP-NEXT: vpbroadcastd (%rcx), %xmm131027; AVX2-FCP-NEXT: vpbroadcastd (%rdx), %xmm141028; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm13 = xmm14[0],xmm13[0],xmm14[1],xmm13[1]1029; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm7 = xmm11[0],xmm7[0],xmm11[1],xmm7[1]1030; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,1,2,1]1031; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1],ymm13[2,3],ymm7[4,5,6,7]1032; AVX2-FCP-NEXT: vpbroadcastq %xmm12, %ymm111033; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm11[4,5],ymm7[6,7]1034; AVX2-FCP-NEXT: vpbroadcastd (%r9), %ymm111035; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4],ymm11[5],ymm7[6,7]1036; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]1037; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm12 = ymm4[0,1,2,2,4,5,6,6]1038; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm13 = ymm3[1,1,2,3,5,5,6,7]1039; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0],ymm12[1],ymm13[2],ymm12[3],ymm13[4],ymm12[5],ymm13[6],ymm12[7]1040; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm12 = ymm12[2,1,2,3]1041; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm11[4,5],ymm12[6,7]1042; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm13 = mem[0],zero,mem[1],zero1043; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6,7]1044; AVX2-FCP-NEXT: vpbroadcastd 20(%r9), %ymm131045; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2],ymm13[3],ymm12[4,5,6,7]1046; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]1047; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm9 = xmm9[2,3,2,3]1048; AVX2-FCP-NEXT: vinserti128 $1, %xmm9, %ymm8, %ymm81049; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm9 = [2,2,3,3,2,2,3,3]1050; AVX2-FCP-NEXT: # ymm9 = mem[0,1,0,1]1051; AVX2-FCP-NEXT: vpermd %ymm2, %ymm9, %ymm101052; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm10[0,1],ymm8[2,3,4,5],ymm10[6,7]1053; AVX2-FCP-NEXT: vpermd %ymm5, %ymm9, %ymm91054; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3,4,5,6],ymm9[7]1055; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm9 = ymm3[2],ymm4[2],ymm3[3],ymm4[3],ymm3[6],ymm4[6],ymm3[7],ymm4[7]1056; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]1057; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm9 = ymm11[2,3],ymm9[2,3]1058; AVX2-FCP-NEXT: vpmovsxbq {{.*#+}} ymm10 = [6,0,0,7]1059; AVX2-FCP-NEXT: vpermd %ymm2, %ymm10, %ymm101060; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm10[0,1],ymm9[2,3,4,5],ymm10[6,7]1061; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm10 = [0,6,0,0,0,0,0,7]1062; AVX2-FCP-NEXT: vpermd %ymm5, %ymm10, %ymm51063; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm9[0],ymm5[1],ymm9[2,3,4,5,6],ymm5[7]1064; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[1],ymm4[1],ymm3[4],ymm4[4],ymm3[5],ymm4[5]1065; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,2,2,2]1066; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]1067; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]1068; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]1069; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]1070; AVX2-FCP-NEXT: vpbroadcastd 16(%r9), %ymm11071; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]1072; AVX2-FCP-NEXT: vmovdqa %ymm0, 96(%rax)1073; AVX2-FCP-NEXT: vmovdqa %ymm5, 160(%rax)1074; AVX2-FCP-NEXT: vmovdqa %ymm8, 64(%rax)1075; AVX2-FCP-NEXT: vmovdqa %ymm12, 128(%rax)1076; AVX2-FCP-NEXT: vmovdqa %ymm7, (%rax)1077; AVX2-FCP-NEXT: vmovdqa %ymm6, 32(%rax)1078; AVX2-FCP-NEXT: vzeroupper1079; AVX2-FCP-NEXT: retq1080;1081; AVX512-LABEL: store_i32_stride6_vf8:1082; AVX512: # %bb.0:1083; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax1084; AVX512-NEXT: vmovdqa (%rdi), %ymm01085; AVX512-NEXT: vmovdqa (%rdx), %ymm11086; AVX512-NEXT: vmovdqa (%r8), %ymm21087; AVX512-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01088; AVX512-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11089; AVX512-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21090; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1091; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm31092; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1093; AVX512-NEXT: vpermi2d %zmm2, %zmm3, %zmm41094; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1095; AVX512-NEXT: vpermi2d %zmm1, %zmm0, %zmm31096; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1097; AVX512-NEXT: vpermi2d %zmm2, %zmm3, %zmm51098; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1099; AVX512-NEXT: vpermi2d %zmm0, %zmm1, %zmm31100; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1101; AVX512-NEXT: vpermi2d %zmm2, %zmm3, %zmm01102; AVX512-NEXT: vmovdqa64 %zmm0, 128(%rax)1103; AVX512-NEXT: vmovdqa64 %zmm5, 64(%rax)1104; AVX512-NEXT: vmovdqa64 %zmm4, (%rax)1105; AVX512-NEXT: vzeroupper1106; AVX512-NEXT: retq1107;1108; AVX512-FCP-LABEL: store_i32_stride6_vf8:1109; AVX512-FCP: # %bb.0:1110; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1111; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm01112; AVX512-FCP-NEXT: vmovdqa (%rdx), %ymm11113; AVX512-FCP-NEXT: vmovdqa (%r8), %ymm21114; AVX512-FCP-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01115; AVX512-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11116; AVX512-FCP-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21117; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1118; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31119; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1120; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm41121; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1122; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31123; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1124; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm51125; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1126; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm31127; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1128; AVX512-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm01129; AVX512-FCP-NEXT: vmovdqa64 %zmm0, 128(%rax)1130; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 64(%rax)1131; AVX512-FCP-NEXT: vmovdqa64 %zmm4, (%rax)1132; AVX512-FCP-NEXT: vzeroupper1133; AVX512-FCP-NEXT: retq1134;1135; AVX512DQ-LABEL: store_i32_stride6_vf8:1136; AVX512DQ: # %bb.0:1137; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax1138; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm01139; AVX512DQ-NEXT: vmovdqa (%rdx), %ymm11140; AVX512DQ-NEXT: vmovdqa (%r8), %ymm21141; AVX512DQ-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01142; AVX512DQ-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11143; AVX512DQ-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21144; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1145; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm31146; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1147; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm3, %zmm41148; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1149; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm0, %zmm31150; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1151; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm3, %zmm51152; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1153; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm1, %zmm31154; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1155; AVX512DQ-NEXT: vpermi2d %zmm2, %zmm3, %zmm01156; AVX512DQ-NEXT: vmovdqa64 %zmm0, 128(%rax)1157; AVX512DQ-NEXT: vmovdqa64 %zmm5, 64(%rax)1158; AVX512DQ-NEXT: vmovdqa64 %zmm4, (%rax)1159; AVX512DQ-NEXT: vzeroupper1160; AVX512DQ-NEXT: retq1161;1162; AVX512DQ-FCP-LABEL: store_i32_stride6_vf8:1163; AVX512DQ-FCP: # %bb.0:1164; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1165; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm01166; AVX512DQ-FCP-NEXT: vmovdqa (%rdx), %ymm11167; AVX512DQ-FCP-NEXT: vmovdqa (%r8), %ymm21168; AVX512DQ-FCP-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01169; AVX512DQ-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11170; AVX512DQ-FCP-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21171; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1172; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31173; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1174; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm41175; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1176; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31177; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1178; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm51179; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1180; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm31181; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1182; AVX512DQ-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm01183; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, 128(%rax)1184; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, 64(%rax)1185; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, (%rax)1186; AVX512DQ-FCP-NEXT: vzeroupper1187; AVX512DQ-FCP-NEXT: retq1188;1189; AVX512BW-LABEL: store_i32_stride6_vf8:1190; AVX512BW: # %bb.0:1191; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1192; AVX512BW-NEXT: vmovdqa (%rdi), %ymm01193; AVX512BW-NEXT: vmovdqa (%rdx), %ymm11194; AVX512BW-NEXT: vmovdqa (%r8), %ymm21195; AVX512BW-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01196; AVX512BW-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11197; AVX512BW-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21198; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1199; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm31200; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1201; AVX512BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm41202; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1203; AVX512BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm31204; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1205; AVX512BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm51206; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1207; AVX512BW-NEXT: vpermi2d %zmm0, %zmm1, %zmm31208; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1209; AVX512BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm01210; AVX512BW-NEXT: vmovdqa64 %zmm0, 128(%rax)1211; AVX512BW-NEXT: vmovdqa64 %zmm5, 64(%rax)1212; AVX512BW-NEXT: vmovdqa64 %zmm4, (%rax)1213; AVX512BW-NEXT: vzeroupper1214; AVX512BW-NEXT: retq1215;1216; AVX512BW-FCP-LABEL: store_i32_stride6_vf8:1217; AVX512BW-FCP: # %bb.0:1218; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1219; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm01220; AVX512BW-FCP-NEXT: vmovdqa (%rdx), %ymm11221; AVX512BW-FCP-NEXT: vmovdqa (%r8), %ymm21222; AVX512BW-FCP-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01223; AVX512BW-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11224; AVX512BW-FCP-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21225; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1226; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31227; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1228; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm41229; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1230; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31231; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1232; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm51233; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1234; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm31235; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1236; AVX512BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm01237; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%rax)1238; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, 64(%rax)1239; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, (%rax)1240; AVX512BW-FCP-NEXT: vzeroupper1241; AVX512BW-FCP-NEXT: retq1242;1243; AVX512DQ-BW-LABEL: store_i32_stride6_vf8:1244; AVX512DQ-BW: # %bb.0:1245; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax1246; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm01247; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %ymm11248; AVX512DQ-BW-NEXT: vmovdqa (%r8), %ymm21249; AVX512DQ-BW-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01250; AVX512DQ-BW-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11251; AVX512DQ-BW-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21252; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1253; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm31254; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1255; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm41256; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1257; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm0, %zmm31258; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1259; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm51260; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1261; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm1, %zmm31262; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1263; AVX512DQ-BW-NEXT: vpermi2d %zmm2, %zmm3, %zmm01264; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 128(%rax)1265; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, 64(%rax)1266; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, (%rax)1267; AVX512DQ-BW-NEXT: vzeroupper1268; AVX512DQ-BW-NEXT: retq1269;1270; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf8:1271; AVX512DQ-BW-FCP: # %bb.0:1272; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax1273; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm01274; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdx), %ymm11275; AVX512DQ-BW-FCP-NEXT: vmovdqa (%r8), %ymm21276; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, (%rsi), %zmm0, %zmm01277; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm11278; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, (%r9), %zmm2, %zmm21279; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,8,16,24,0,0,1,9,17,25,0,0,2,10,18,26]1280; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31281; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,16,24,6,7,8,9,17,25,12,13,14,15]1282; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm41283; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [0,0,3,11,19,27,0,0,4,12,20,28,0,0,5,13]1284; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm0, %zmm31285; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm5 = [18,26,2,3,4,5,19,27,8,9,10,11,20,28,14,15]1286; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm51287; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm3 = [5,13,0,0,22,30,6,14,0,0,23,31,7,15,0,0]1288; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm31289; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,21,29,4,5,6,7,22,30,10,11,12,13,23,31]1290; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm2, %zmm3, %zmm01291; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%rax)1292; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, 64(%rax)1293; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, (%rax)1294; AVX512DQ-BW-FCP-NEXT: vzeroupper1295; AVX512DQ-BW-FCP-NEXT: retq1296 %in.vec0 = load <8 x i32>, ptr %in.vecptr0, align 641297 %in.vec1 = load <8 x i32>, ptr %in.vecptr1, align 641298 %in.vec2 = load <8 x i32>, ptr %in.vecptr2, align 641299 %in.vec3 = load <8 x i32>, ptr %in.vecptr3, align 641300 %in.vec4 = load <8 x i32>, ptr %in.vecptr4, align 641301 %in.vec5 = load <8 x i32>, ptr %in.vecptr5, align 641302 %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>1303 %2 = shufflevector <8 x i32> %in.vec2, <8 x i32> %in.vec3, <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>1304 %3 = shufflevector <8 x i32> %in.vec4, <8 x i32> %in.vec5, <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>1305 %4 = shufflevector <16 x i32> %1, <16 x i32> %2, <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>1306 %5 = shufflevector <16 x i32> %3, <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>1307 %6 = shufflevector <32 x i32> %4, <32 x i32> %5, <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>1308 %interleaved.vec = shufflevector <48 x i32> %6, <48 x i32> poison, <48 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47>1309 store <48 x i32> %interleaved.vec, ptr %out.vec, align 641310 ret void1311}1312 1313define void @store_i32_stride6_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {1314; SSE-LABEL: store_i32_stride6_vf16:1315; SSE: # %bb.0:1316; SSE-NEXT: subq $72, %rsp1317; SSE-NEXT: movaps (%rdi), %xmm71318; SSE-NEXT: movaps 16(%rdi), %xmm81319; SSE-NEXT: movaps (%rsi), %xmm21320; SSE-NEXT: movaps 16(%rsi), %xmm61321; SSE-NEXT: movaps (%rdx), %xmm91322; SSE-NEXT: movaps 16(%rdx), %xmm101323; SSE-NEXT: movaps (%rcx), %xmm11324; SSE-NEXT: movaps 16(%rcx), %xmm01325; SSE-NEXT: movaps (%r8), %xmm31326; SSE-NEXT: movaps 16(%r8), %xmm141327; SSE-NEXT: movaps (%r9), %xmm41328; SSE-NEXT: movaps 16(%r9), %xmm131329; SSE-NEXT: movaps %xmm9, %xmm111330; SSE-NEXT: unpcklps {{.*#+}} xmm11 = xmm11[0],xmm1[0],xmm11[1],xmm1[1]1331; SSE-NEXT: movaps %xmm7, %xmm51332; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]1333; SSE-NEXT: movaps %xmm4, %xmm121334; SSE-NEXT: movlhps {{.*#+}} xmm12 = xmm12[0],xmm3[0]1335; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[2,0],xmm5[2,3]1336; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1337; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm11[0]1338; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1339; SSE-NEXT: movaps %xmm3, %xmm51340; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[1,1],xmm4[1,1]1341; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,3],xmm5[0,2]1342; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1343; SSE-NEXT: movaps %xmm1, %xmm51344; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm9[1]1345; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm2[2],xmm7[3],xmm2[3]1346; SSE-NEXT: movaps %xmm3, %xmm21347; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm4[1]1348; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,2],xmm7[2,3]1349; SSE-NEXT: movaps %xmm2, (%rsp) # 16-byte Spill1350; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm5[2,0]1351; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1352; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[3,3],xmm4[3,3]1353; SSE-NEXT: unpckhps {{.*#+}} xmm9 = xmm9[2],xmm1[2],xmm9[3],xmm1[3]1354; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,3],xmm3[0,2]1355; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1356; SSE-NEXT: movaps %xmm10, %xmm21357; SSE-NEXT: unpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]1358; SSE-NEXT: movaps %xmm8, %xmm11359; SSE-NEXT: unpcklps {{.*#+}} xmm1 = xmm1[0],xmm6[0],xmm1[1],xmm6[1]1360; SSE-NEXT: movaps %xmm13, %xmm31361; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm14[0]1362; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,0],xmm1[2,3]1363; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1364; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]1365; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1366; SSE-NEXT: movaps %xmm14, %xmm11367; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[1,1],xmm13[1,1]1368; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[2,3],xmm1[0,2]1369; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1370; SSE-NEXT: movaps %xmm0, %xmm11371; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]1372; SSE-NEXT: unpckhps {{.*#+}} xmm8 = xmm8[2],xmm6[2],xmm8[3],xmm6[3]1373; SSE-NEXT: movaps %xmm14, %xmm21374; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm13[1]1375; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,2],xmm8[2,3]1376; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1377; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,1],xmm1[2,0]1378; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1379; SSE-NEXT: movaps 32(%rdi), %xmm121380; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[3,3],xmm13[3,3]1381; SSE-NEXT: movaps 32(%rdx), %xmm131382; SSE-NEXT: unpckhps {{.*#+}} xmm10 = xmm10[2],xmm0[2],xmm10[3],xmm0[3]1383; SSE-NEXT: movaps 32(%rcx), %xmm01384; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[2,3],xmm14[0,2]1385; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1386; SSE-NEXT: movaps %xmm13, %xmm141387; SSE-NEXT: unpcklps {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]1388; SSE-NEXT: movaps 32(%rsi), %xmm11389; SSE-NEXT: movaps %xmm12, %xmm151390; SSE-NEXT: unpcklps {{.*#+}} xmm15 = xmm15[0],xmm1[0],xmm15[1],xmm1[1]1391; SSE-NEXT: movaps 32(%r8), %xmm21392; SSE-NEXT: movaps 32(%r9), %xmm31393; SSE-NEXT: movaps %xmm3, %xmm111394; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm2[0]1395; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,0],xmm15[2,3]1396; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm14[0]1397; SSE-NEXT: movaps %xmm2, %xmm41398; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]1399; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,3],xmm4[0,2]1400; SSE-NEXT: unpckhps {{.*#+}} xmm12 = xmm12[2],xmm1[2],xmm12[3],xmm1[3]1401; SSE-NEXT: movaps %xmm0, %xmm11402; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm13[1]1403; SSE-NEXT: movaps %xmm2, %xmm81404; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]1405; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,2],xmm12[2,3]1406; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[0,1],xmm1[2,0]1407; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]1408; SSE-NEXT: unpckhps {{.*#+}} xmm13 = xmm13[2],xmm0[2],xmm13[3],xmm0[3]1409; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[2,3],xmm2[0,2]1410; SSE-NEXT: movaps 48(%rdx), %xmm31411; SSE-NEXT: movaps 48(%rcx), %xmm101412; SSE-NEXT: movaps %xmm3, %xmm51413; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm10[0],xmm5[1],xmm10[1]1414; SSE-NEXT: movaps 48(%rdi), %xmm21415; SSE-NEXT: movaps 48(%rsi), %xmm91416; SSE-NEXT: movaps %xmm2, %xmm41417; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1]1418; SSE-NEXT: movaps 48(%r8), %xmm11419; SSE-NEXT: movaps 48(%r9), %xmm71420; SSE-NEXT: movaps %xmm7, %xmm61421; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm1[0]1422; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm4[2,3]1423; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]1424; SSE-NEXT: movaps %xmm1, %xmm01425; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1],xmm7[1,1]1426; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm0[0,2]1427; SSE-NEXT: unpckhps {{.*#+}} xmm2 = xmm2[2],xmm9[2],xmm2[3],xmm9[3]1428; SSE-NEXT: movaps %xmm10, %xmm01429; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]1430; SSE-NEXT: movaps %xmm1, %xmm91431; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm7[1]1432; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,2],xmm2[2,3]1433; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]1434; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3],xmm7[3,3]1435; SSE-NEXT: unpckhps {{.*#+}} xmm3 = xmm3[2],xmm10[2],xmm3[3],xmm10[3]1436; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,3],xmm1[0,2]1437; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax1438; SSE-NEXT: movaps %xmm3, 368(%rax)1439; SSE-NEXT: movaps %xmm9, 352(%rax)1440; SSE-NEXT: movaps %xmm2, 336(%rax)1441; SSE-NEXT: movaps %xmm5, 320(%rax)1442; SSE-NEXT: movaps %xmm6, 304(%rax)1443; SSE-NEXT: movaps %xmm4, 288(%rax)1444; SSE-NEXT: movaps %xmm13, 272(%rax)1445; SSE-NEXT: movaps %xmm8, 256(%rax)1446; SSE-NEXT: movaps %xmm12, 240(%rax)1447; SSE-NEXT: movaps %xmm14, 224(%rax)1448; SSE-NEXT: movaps %xmm11, 208(%rax)1449; SSE-NEXT: movaps %xmm15, 192(%rax)1450; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1451; SSE-NEXT: movaps %xmm0, 176(%rax)1452; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1453; SSE-NEXT: movaps %xmm0, 160(%rax)1454; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1455; SSE-NEXT: movaps %xmm0, 144(%rax)1456; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1457; SSE-NEXT: movaps %xmm0, 128(%rax)1458; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1459; SSE-NEXT: movaps %xmm0, 112(%rax)1460; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1461; SSE-NEXT: movaps %xmm0, 96(%rax)1462; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1463; SSE-NEXT: movaps %xmm0, 80(%rax)1464; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload1465; SSE-NEXT: movaps %xmm0, 64(%rax)1466; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1467; SSE-NEXT: movaps %xmm0, 48(%rax)1468; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1469; SSE-NEXT: movaps %xmm0, 32(%rax)1470; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1471; SSE-NEXT: movaps %xmm0, 16(%rax)1472; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1473; SSE-NEXT: movaps %xmm0, (%rax)1474; SSE-NEXT: addq $72, %rsp1475; SSE-NEXT: retq1476;1477; AVX-LABEL: store_i32_stride6_vf16:1478; AVX: # %bb.0:1479; AVX-NEXT: subq $40, %rsp1480; AVX-NEXT: vmovaps 32(%rdi), %ymm111481; AVX-NEXT: vmovaps 32(%rsi), %ymm131482; AVX-NEXT: vmovaps 32(%rdx), %ymm81483; AVX-NEXT: vmovaps 32(%rcx), %ymm91484; AVX-NEXT: vmovaps (%rcx), %xmm41485; AVX-NEXT: vmovaps 32(%rcx), %xmm51486; AVX-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1487; AVX-NEXT: vmovaps (%rdx), %xmm151488; AVX-NEXT: vmovaps 32(%rdx), %xmm61489; AVX-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1490; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm15[1,2],xmm4[1,2]1491; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]1492; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm01493; AVX-NEXT: vmovaps (%rsi), %xmm11494; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1495; AVX-NEXT: vmovaps (%rdi), %xmm21496; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1497; AVX-NEXT: vunpckhps {{.*#+}} xmm3 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]1498; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm11499; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]1500; AVX-NEXT: vbroadcastss 4(%r8), %xmm11501; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]1502; AVX-NEXT: vbroadcastss 4(%r9), %ymm11503; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]1504; AVX-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill1505; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm11[0],ymm13[0],ymm11[1],ymm13[1],ymm11[4],ymm13[4],ymm11[5],ymm13[5]1506; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]1507; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]1508; AVX-NEXT: vextractf128 $1, %ymm1, %xmm11509; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[0,1,2,0]1510; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]1511; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]1512; AVX-NEXT: vbroadcastss 48(%r9), %ymm11513; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]1514; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1515; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm6[1,2],xmm5[1,2]1516; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]1517; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm51518; AVX-NEXT: vmovaps 32(%rsi), %xmm21519; AVX-NEXT: vmovaps 32(%rdi), %xmm11520; AVX-NEXT: vunpckhps {{.*#+}} xmm6 = xmm1[2],xmm2[2],xmm1[3],xmm2[3]1521; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm0, %ymm101522; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm10[4,5],ymm5[6,7]1523; AVX-NEXT: vbroadcastss 36(%r8), %xmm101524; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm10[2,3],ymm5[4,5,6,7]1525; AVX-NEXT: vbroadcastss 36(%r9), %ymm101526; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2],ymm10[3],ymm5[4,5,6,7]1527; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1528; AVX-NEXT: vmovaps (%rdi), %ymm141529; AVX-NEXT: vmovaps (%rsi), %ymm51530; AVX-NEXT: vunpcklps {{.*#+}} ymm10 = ymm14[0],ymm5[0],ymm14[1],ymm5[1],ymm14[4],ymm5[4],ymm14[5],ymm5[5]1531; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm10[2,3,2,3]1532; AVX-NEXT: vmovaps (%rdx), %ymm101533; AVX-NEXT: vmovaps (%rcx), %ymm121534; AVX-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm12[0],ymm10[0],ymm12[2],ymm10[2]1535; AVX-NEXT: vextractf128 $1, %ymm7, %xmm71536; AVX-NEXT: vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]1537; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6,7]1538; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]1539; AVX-NEXT: vbroadcastss 16(%r9), %ymm71540; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]1541; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm15[2],xmm4[2],xmm15[3],xmm4[3]1542; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]1543; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm3, %ymm01544; AVX-NEXT: vpermilps {{.*#+}} xmm3 = mem[2,1,3,3]1545; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm3, %ymm31546; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5],ymm3[6,7]1547; AVX-NEXT: vmovaps (%r9), %xmm31548; AVX-NEXT: vshufps {{.*#+}} xmm4 = xmm3[0,2,2,3]1549; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm4, %ymm31550; AVX-NEXT: vblendps {{.*#+}} ymm15 = ymm0[0],ymm3[1],ymm0[2,3,4,5,6],ymm3[7]1551; AVX-NEXT: vbroadcastss 32(%rcx), %xmm01552; AVX-NEXT: vbroadcastss 32(%rdx), %xmm31553; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]1554; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm2[0],xmm1[1],xmm2[1]1555; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm21556; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6,7]1557; AVX-NEXT: vinsertf128 $1, 32(%r8), %ymm1, %ymm11558; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]1559; AVX-NEXT: vbroadcastss 32(%r9), %ymm11560; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]1561; AVX-NEXT: vunpckhps {{.*#+}} ymm0 = ymm11[2],ymm13[2],ymm11[3],ymm13[3],ymm11[6],ymm13[6],ymm11[7],ymm13[7]1562; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm8[1,2],ymm9[1,2],ymm8[5,6],ymm9[5,6]1563; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]1564; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]1565; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]1566; AVX-NEXT: vbroadcastss 52(%r8), %xmm31567; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]1568; AVX-NEXT: vbroadcastss 52(%r9), %ymm31569; AVX-NEXT: vblendps {{.*#+}} ymm11 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6,7]1570; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm9[3,0],ymm8[3,0],ymm9[7,4],ymm8[7,4]1571; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]1572; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]1573; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]1574; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]1575; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]1576; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]1577; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]1578; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]1579; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1580; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload1581; AVX-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]1582; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]1583; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm6, %ymm01584; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]1585; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm11586; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]1587; AVX-NEXT: vmovaps 32(%r9), %xmm11588; AVX-NEXT: vshufps {{.*#+}} xmm3 = xmm1[0,2,2,3]1589; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm3, %ymm11590; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]1591; AVX-NEXT: vbroadcastss (%rcx), %xmm11592; AVX-NEXT: vbroadcastss (%rdx), %xmm31593; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]1594; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload1595; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload1596; AVX-NEXT: # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]1597; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm41598; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5,6,7]1599; AVX-NEXT: vinsertf128 $1, (%r8), %ymm3, %ymm31600; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5],ymm1[6,7]1601; AVX-NEXT: vbroadcastss (%r9), %ymm31602; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5],ymm1[6,7]1603; AVX-NEXT: vunpckhps {{.*#+}} ymm3 = ymm14[2],ymm5[2],ymm14[3],ymm5[3],ymm14[6],ymm5[6],ymm14[7],ymm5[7]1604; AVX-NEXT: vshufps {{.*#+}} ymm4 = ymm10[1,2],ymm12[1,2],ymm10[5,6],ymm12[5,6]1605; AVX-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]1606; AVX-NEXT: vshufps {{.*#+}} ymm4 = ymm4[0,2,1,3,4,6,5,7]1607; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]1608; AVX-NEXT: vbroadcastss 20(%r8), %xmm51609; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]1610; AVX-NEXT: vbroadcastss 20(%r9), %ymm51611; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]1612; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm12[3,0],ymm10[3,0],ymm12[7,4],ymm10[7,4]1613; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm5[2,0,2,3,6,4,6,7]1614; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm5[2,3]1615; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm5 = mem[0,1,0,1]1616; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm5[2,1,3,3,6,5,7,7]1617; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5],ymm5[6,7]1618; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm5 = mem[0,1,0,1]1619; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm5[0,2,2,3,4,6,6,7]1620; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1],ymm3[2,3,4,5,6],ymm5[7]1621; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax1622; AVX-NEXT: vmovaps %ymm3, 160(%rax)1623; AVX-NEXT: vmovaps %ymm4, 128(%rax)1624; AVX-NEXT: vmovaps %ymm1, (%rax)1625; AVX-NEXT: vmovaps %ymm0, 256(%rax)1626; AVX-NEXT: vmovaps %ymm8, 352(%rax)1627; AVX-NEXT: vmovaps %ymm11, 320(%rax)1628; AVX-NEXT: vmovaps %ymm2, 192(%rax)1629; AVX-NEXT: vmovaps %ymm15, 64(%rax)1630; AVX-NEXT: vmovaps %ymm7, 96(%rax)1631; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1632; AVX-NEXT: vmovaps %ymm0, 224(%rax)1633; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1634; AVX-NEXT: vmovaps %ymm0, 288(%rax)1635; AVX-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload1636; AVX-NEXT: vmovaps %ymm0, 32(%rax)1637; AVX-NEXT: addq $40, %rsp1638; AVX-NEXT: vzeroupper1639; AVX-NEXT: retq1640;1641; AVX2-LABEL: store_i32_stride6_vf16:1642; AVX2: # %bb.0:1643; AVX2-NEXT: subq $200, %rsp1644; AVX2-NEXT: vmovdqa (%rsi), %xmm121645; AVX2-NEXT: vmovdqa 32(%rsi), %xmm11646; AVX2-NEXT: vmovdqa (%rdi), %xmm01647; AVX2-NEXT: vmovdqa 32(%rdi), %xmm21648; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]1649; AVX2-NEXT: vmovdqu %ymm3, (%rsp) # 32-byte Spill1650; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm31651; AVX2-NEXT: vmovdqa (%rcx), %xmm41652; AVX2-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1653; AVX2-NEXT: vmovdqa 32(%rcx), %xmm71654; AVX2-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1655; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,2,2,3]1656; AVX2-NEXT: vmovdqa (%rdx), %xmm51657; AVX2-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1658; AVX2-NEXT: vmovdqa 32(%rdx), %xmm81659; AVX2-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1660; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]1661; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]1662; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]1663; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]1664; AVX2-NEXT: vmovdqa (%r8), %xmm131665; AVX2-NEXT: vmovdqa 32(%r8), %xmm61666; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm13[0],zero,xmm13[1],zero1667; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]1668; AVX2-NEXT: vpbroadcastd 4(%r9), %ymm41669; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]1670; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1671; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]1672; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1673; AVX2-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm31674; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]1675; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm8[1,2,2,3]1676; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]1677; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]1678; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]1679; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm6[0],zero,xmm6[1],zero1680; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]1681; AVX2-NEXT: vpbroadcastd 36(%r9), %ymm41682; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]1683; AVX2-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1684; AVX2-NEXT: vpbroadcastd 32(%rcx), %xmm31685; AVX2-NEXT: vpbroadcastd 32(%rdx), %xmm41686; AVX2-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]1687; AVX2-NEXT: vmovdqa 32(%rdx), %ymm91688; AVX2-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1689; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]1690; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]1691; AVX2-NEXT: vpbroadcastq %xmm6, %ymm21692; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]1693; AVX2-NEXT: vmovdqa 32(%r9), %xmm151694; AVX2-NEXT: vpbroadcastd %xmm15, %ymm21695; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]1696; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1697; AVX2-NEXT: vmovdqa 32(%rcx), %ymm141698; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm14[0,1,2,2,4,5,6,6]1699; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm9[1,1,2,3,5,5,6,7]1700; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]1701; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]1702; AVX2-NEXT: vmovdqa 32(%rdi), %ymm101703; AVX2-NEXT: vmovdqa 32(%rsi), %ymm81704; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm4 = ymm10[2],ymm8[2],ymm10[3],ymm8[3],ymm10[6],ymm8[6],ymm10[7],ymm8[7]1705; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5],ymm1[6,7]1706; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm3 = mem[0],zero,mem[1],zero1707; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]1708; AVX2-NEXT: vpbroadcastd 52(%r9), %ymm31709; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6,7]1710; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1711; AVX2-NEXT: vpbroadcastd (%rcx), %xmm11712; AVX2-NEXT: vpbroadcastd (%rdx), %xmm31713; AVX2-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]1714; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]1715; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]1716; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]1717; AVX2-NEXT: vpbroadcastq %xmm13, %ymm11718; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]1719; AVX2-NEXT: vmovdqa (%r9), %xmm11720; AVX2-NEXT: vpbroadcastd %xmm1, %ymm21721; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]1722; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1723; AVX2-NEXT: vmovdqa (%rdx), %ymm21724; AVX2-NEXT: vmovdqa (%rcx), %ymm01725; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm0[0,1,2,2,4,5,6,6]1726; AVX2-NEXT: vpshufd {{.*#+}} ymm5 = ymm2[1,1,2,3,5,5,6,7]1727; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]1728; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm3[2,1,2,3]1729; AVX2-NEXT: vmovdqa (%rdi), %ymm71730; AVX2-NEXT: vmovdqa (%rsi), %ymm51731; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm3 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]1732; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm3[4,5],ymm12[6,7]1733; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm11 = mem[0],zero,mem[1],zero1734; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3],ymm12[4,5,6,7]1735; AVX2-NEXT: vpbroadcastd 20(%r9), %ymm121736; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3],ymm11[4,5,6,7]1737; AVX2-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1738; AVX2-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1739; AVX2-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload1740; AVX2-NEXT: # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]1741; AVX2-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,3,2,3]1742; AVX2-NEXT: vmovdqu (%rsp), %ymm12 # 32-byte Reload1743; AVX2-NEXT: vinserti128 $1, %xmm11, %ymm12, %ymm111744; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,2,3,3]1745; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[0,1,2,1]1746; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm13[0,1],ymm11[2,3,4,5],ymm13[6,7]1747; AVX2-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,3,3]1748; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]1749; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0],ymm1[1],ymm11[2,3,4,5,6],ymm1[7]1750; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm9[2],ymm14[2],ymm9[3],ymm14[3],ymm9[6],ymm14[6],ymm9[7],ymm14[7]1751; AVX2-NEXT: vpshufd {{.*#+}} ymm11 = ymm11[2,3,2,3,6,7,6,7]1752; AVX2-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm4[2,3],ymm11[2,3]1753; AVX2-NEXT: vmovdqa 32(%r8), %ymm111754; AVX2-NEXT: vpshufd {{.*#+}} ymm13 = ymm11[2,1,3,3,6,5,7,7]1755; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]1756; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0,1],ymm4[2,3,4,5],ymm13[6,7]1757; AVX2-NEXT: vpshufd {{.*#+}} ymm13 = mem[0,2,2,3,4,6,6,7]1758; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]1759; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm13[1],ymm4[2,3,4,5,6],ymm13[7]1760; AVX2-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload1761; AVX2-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm13 # 16-byte Folded Reload1762; AVX2-NEXT: # xmm13 = xmm12[2],mem[2],xmm12[3],mem[3]1763; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,3,2,3]1764; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload1765; AVX2-NEXT: vinserti128 $1, %xmm13, %ymm12, %ymm131766; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,2,3,3]1767; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]1768; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm13[2,3,4,5],ymm6[6,7]1769; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm15[2,2,3,3]1770; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[0,1,2,1]1771; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm13[1],ymm6[2,3,4,5,6],ymm13[7]1772; AVX2-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm9[0],ymm14[0],ymm9[1],ymm14[1],ymm9[4],ymm14[4],ymm9[5],ymm14[5]1773; AVX2-NEXT: vpunpckldq {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[1],ymm8[1],ymm10[4],ymm8[4],ymm10[5],ymm8[5]1774; AVX2-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,2,2,2]1775; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm8[2,1,2,3]1776; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]1777; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5],ymm8[6,7]1778; AVX2-NEXT: vpbroadcastd 48(%r9), %ymm91779; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm9[5],ymm8[6,7]1780; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm9 = ymm2[2],ymm0[2],ymm2[3],ymm0[3],ymm2[6],ymm0[6],ymm2[7],ymm0[7]1781; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]1782; AVX2-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[2,3],ymm9[2,3]1783; AVX2-NEXT: vmovdqa (%r8), %ymm91784; AVX2-NEXT: vpshufd {{.*#+}} ymm10 = ymm9[2,1,3,3,6,5,7,7]1785; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]1786; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0,1],ymm3[2,3,4,5],ymm10[6,7]1787; AVX2-NEXT: vpshufd {{.*#+}} ymm10 = mem[0,2,2,3,4,6,6,7]1788; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]1789; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0],ymm10[1],ymm3[2,3,4,5,6],ymm10[7]1790; AVX2-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm2[0],ymm0[0],ymm2[1],ymm0[1],ymm2[4],ymm0[4],ymm2[5],ymm0[5]1791; AVX2-NEXT: vpunpckldq {{.*#+}} ymm2 = ymm7[0],ymm5[0],ymm7[1],ymm5[1],ymm7[4],ymm5[4],ymm7[5],ymm5[5]1792; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,2,2,2]1793; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,1,2,3]1794; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6,7]1795; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]1796; AVX2-NEXT: vpbroadcastd 16(%r9), %ymm21797; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]1798; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax1799; AVX2-NEXT: vmovdqa %ymm0, 96(%rax)1800; AVX2-NEXT: vmovdqa %ymm3, 160(%rax)1801; AVX2-NEXT: vmovdqa %ymm8, 288(%rax)1802; AVX2-NEXT: vmovdqa %ymm6, 256(%rax)1803; AVX2-NEXT: vmovdqa %ymm4, 352(%rax)1804; AVX2-NEXT: vmovdqa %ymm1, 64(%rax)1805; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1806; AVX2-NEXT: vmovaps %ymm0, 128(%rax)1807; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1808; AVX2-NEXT: vmovaps %ymm0, (%rax)1809; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1810; AVX2-NEXT: vmovaps %ymm0, 320(%rax)1811; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1812; AVX2-NEXT: vmovaps %ymm0, 192(%rax)1813; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1814; AVX2-NEXT: vmovaps %ymm0, 224(%rax)1815; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1816; AVX2-NEXT: vmovaps %ymm0, 32(%rax)1817; AVX2-NEXT: addq $200, %rsp1818; AVX2-NEXT: vzeroupper1819; AVX2-NEXT: retq1820;1821; AVX2-FP-LABEL: store_i32_stride6_vf16:1822; AVX2-FP: # %bb.0:1823; AVX2-FP-NEXT: subq $200, %rsp1824; AVX2-FP-NEXT: vmovdqa (%rsi), %xmm121825; AVX2-FP-NEXT: vmovdqa 32(%rsi), %xmm11826; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm01827; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm21828; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]1829; AVX2-FP-NEXT: vmovdqu %ymm3, (%rsp) # 32-byte Spill1830; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm31831; AVX2-FP-NEXT: vmovdqa (%rcx), %xmm41832; AVX2-FP-NEXT: vmovdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1833; AVX2-FP-NEXT: vmovdqa 32(%rcx), %xmm71834; AVX2-FP-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1835; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm4[1,2,2,3]1836; AVX2-FP-NEXT: vmovdqa (%rdx), %xmm51837; AVX2-FP-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1838; AVX2-FP-NEXT: vmovdqa 32(%rdx), %xmm81839; AVX2-FP-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1840; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]1841; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]1842; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]1843; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]1844; AVX2-FP-NEXT: vmovdqa (%r8), %xmm131845; AVX2-FP-NEXT: vmovdqa 32(%r8), %xmm61846; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm13[0],zero,xmm13[1],zero1847; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]1848; AVX2-FP-NEXT: vpbroadcastd 4(%r9), %ymm41849; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]1850; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1851; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]1852; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1853; AVX2-FP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm31854; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]1855; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm8[1,2,2,3]1856; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]1857; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]1858; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]1859; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm6[0],zero,xmm6[1],zero1860; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]1861; AVX2-FP-NEXT: vpbroadcastd 36(%r9), %ymm41862; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]1863; AVX2-FP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1864; AVX2-FP-NEXT: vpbroadcastd 32(%rcx), %xmm31865; AVX2-FP-NEXT: vpbroadcastd 32(%rdx), %xmm41866; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]1867; AVX2-FP-NEXT: vmovdqa 32(%rdx), %ymm91868; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]1869; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]1870; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]1871; AVX2-FP-NEXT: vpbroadcastq %xmm6, %ymm21872; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]1873; AVX2-FP-NEXT: vmovdqa 32(%r9), %xmm151874; AVX2-FP-NEXT: vpbroadcastd %xmm15, %ymm21875; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]1876; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1877; AVX2-FP-NEXT: vmovdqa 32(%rcx), %ymm141878; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm14[0,1,2,2,4,5,6,6]1879; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm9[1,1,2,3,5,5,6,7]1880; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]1881; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]1882; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm101883; AVX2-FP-NEXT: vmovdqa 32(%rsi), %ymm81884; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm4 = ymm10[2],ymm8[2],ymm10[3],ymm8[3],ymm10[6],ymm8[6],ymm10[7],ymm8[7]1885; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5],ymm1[6,7]1886; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm3 = mem[0],zero,mem[1],zero1887; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]1888; AVX2-FP-NEXT: vpbroadcastd 52(%r9), %ymm31889; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6,7]1890; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1891; AVX2-FP-NEXT: vpbroadcastd (%rcx), %xmm11892; AVX2-FP-NEXT: vpbroadcastd (%rdx), %xmm31893; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]1894; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]1895; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]1896; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]1897; AVX2-FP-NEXT: vpbroadcastq %xmm13, %ymm11898; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]1899; AVX2-FP-NEXT: vmovdqa (%r9), %xmm11900; AVX2-FP-NEXT: vpbroadcastd %xmm1, %ymm21901; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]1902; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1903; AVX2-FP-NEXT: vmovdqa (%rdx), %ymm21904; AVX2-FP-NEXT: vmovdqa (%rcx), %ymm01905; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm3 = ymm0[0,1,2,2,4,5,6,6]1906; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm5 = ymm2[1,1,2,3,5,5,6,7]1907; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0],ymm3[1],ymm5[2],ymm3[3],ymm5[4],ymm3[5],ymm5[6],ymm3[7]1908; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm3[2,1,2,3]1909; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm71910; AVX2-FP-NEXT: vmovdqa (%rsi), %ymm51911; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm3 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]1912; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm3[4,5],ymm12[6,7]1913; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm11 = mem[0],zero,mem[1],zero1914; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm12[0,1],ymm11[2,3],ymm12[4,5,6,7]1915; AVX2-FP-NEXT: vpbroadcastd 20(%r9), %ymm121916; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2],ymm12[3],ymm11[4,5,6,7]1917; AVX2-FP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1918; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload1919; AVX2-FP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm11, %xmm11 # 16-byte Folded Reload1920; AVX2-FP-NEXT: # xmm11 = xmm11[2],mem[2],xmm11[3],mem[3]1921; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm11[2,3,2,3]1922; AVX2-FP-NEXT: vmovdqu (%rsp), %ymm12 # 32-byte Reload1923; AVX2-FP-NEXT: vinserti128 $1, %xmm11, %ymm12, %ymm111924; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,2,3,3]1925; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[0,1,2,1]1926; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm13[0,1],ymm11[2,3,4,5],ymm13[6,7]1927; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm1 = xmm1[2,2,3,3]1928; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]1929; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm11[0],ymm1[1],ymm11[2,3,4,5,6],ymm1[7]1930; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm9[2],ymm14[2],ymm9[3],ymm14[3],ymm9[6],ymm14[6],ymm9[7],ymm14[7]1931; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm11 = ymm11[2,3,2,3,6,7,6,7]1932; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm4[2,3],ymm11[2,3]1933; AVX2-FP-NEXT: vmovdqa 32(%r8), %ymm111934; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm13 = ymm11[2,1,3,3,6,5,7,7]1935; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]1936; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm13[0,1],ymm4[2,3,4,5],ymm13[6,7]1937; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm13 = mem[0,2,2,3,4,6,6,7]1938; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]1939; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm13[1],ymm4[2,3,4,5,6],ymm13[7]1940; AVX2-FP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload1941; AVX2-FP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm13 # 16-byte Folded Reload1942; AVX2-FP-NEXT: # xmm13 = xmm12[2],mem[2],xmm12[3],mem[3]1943; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm13 = xmm13[2,3,2,3]1944; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload1945; AVX2-FP-NEXT: vinserti128 $1, %xmm13, %ymm12, %ymm131946; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,2,3,3]1947; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]1948; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm13[2,3,4,5],ymm6[6,7]1949; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm13 = xmm15[2,2,3,3]1950; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[0,1,2,1]1951; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0],ymm13[1],ymm6[2,3,4,5,6],ymm13[7]1952; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm9[0],ymm14[0],ymm9[1],ymm14[1],ymm9[4],ymm14[4],ymm9[5],ymm14[5]1953; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[1],ymm8[1],ymm10[4],ymm8[4],ymm10[5],ymm8[5]1954; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,2,2,2]1955; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[2,1,2,3]1956; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]1957; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm11[4,5],ymm8[6,7]1958; AVX2-FP-NEXT: vpbroadcastd 48(%r9), %ymm91959; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm9[5],ymm8[6,7]1960; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm9 = ymm2[2],ymm0[2],ymm2[3],ymm0[3],ymm2[6],ymm0[6],ymm2[7],ymm0[7]1961; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm9 = ymm9[2,3,2,3,6,7,6,7]1962; AVX2-FP-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[2,3],ymm9[2,3]1963; AVX2-FP-NEXT: vmovdqa (%r8), %ymm91964; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm10 = ymm9[2,1,3,3,6,5,7,7]1965; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]1966; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm10[0,1],ymm3[2,3,4,5],ymm10[6,7]1967; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm10 = mem[0,2,2,3,4,6,6,7]1968; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]1969; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0],ymm10[1],ymm3[2,3,4,5,6],ymm10[7]1970; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm2[0],ymm0[0],ymm2[1],ymm0[1],ymm2[4],ymm0[4],ymm2[5],ymm0[5]1971; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm2 = ymm7[0],ymm5[0],ymm7[1],ymm5[1],ymm7[4],ymm5[4],ymm7[5],ymm5[5]1972; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,2,2,2]1973; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,1,2,3]1974; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6,7]1975; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]1976; AVX2-FP-NEXT: vpbroadcastd 16(%r9), %ymm21977; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]1978; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax1979; AVX2-FP-NEXT: vmovdqa %ymm0, 96(%rax)1980; AVX2-FP-NEXT: vmovdqa %ymm3, 160(%rax)1981; AVX2-FP-NEXT: vmovdqa %ymm8, 288(%rax)1982; AVX2-FP-NEXT: vmovdqa %ymm6, 256(%rax)1983; AVX2-FP-NEXT: vmovdqa %ymm4, 352(%rax)1984; AVX2-FP-NEXT: vmovdqa %ymm1, 64(%rax)1985; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1986; AVX2-FP-NEXT: vmovaps %ymm0, 128(%rax)1987; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1988; AVX2-FP-NEXT: vmovaps %ymm0, (%rax)1989; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1990; AVX2-FP-NEXT: vmovaps %ymm0, 320(%rax)1991; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1992; AVX2-FP-NEXT: vmovaps %ymm0, 192(%rax)1993; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1994; AVX2-FP-NEXT: vmovaps %ymm0, 224(%rax)1995; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1996; AVX2-FP-NEXT: vmovaps %ymm0, 32(%rax)1997; AVX2-FP-NEXT: addq $200, %rsp1998; AVX2-FP-NEXT: vzeroupper1999; AVX2-FP-NEXT: retq2000;2001; AVX2-FCP-LABEL: store_i32_stride6_vf16:2002; AVX2-FCP: # %bb.0:2003; AVX2-FCP-NEXT: subq $232, %rsp2004; AVX2-FCP-NEXT: vmovdqa (%rsi), %xmm122005; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %xmm12006; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm152007; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm22008; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm15[2],xmm12[2],xmm15[3],xmm12[3]2009; AVX2-FCP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm02010; AVX2-FCP-NEXT: vmovdqa (%rcx), %xmm82011; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %xmm62012; AVX2-FCP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2013; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm8[1,2,2,3]2014; AVX2-FCP-NEXT: vmovdqa (%rdx), %xmm92015; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %xmm102016; AVX2-FCP-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2017; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm9[1,2,2,3]2018; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]2019; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]2020; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm0[4,5],ymm3[6,7]2021; AVX2-FCP-NEXT: vmovdqa (%r8), %xmm02022; AVX2-FCP-NEXT: vmovdqa 32(%r8), %xmm42023; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm0[0],zero,xmm0[1],zero2024; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3],ymm3[4,5,6,7]2025; AVX2-FCP-NEXT: vpbroadcastd 4(%r9), %ymm52026; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3],ymm3[4,5,6,7]2027; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2028; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]2029; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2030; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm32031; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm6[1,2,2,3]2032; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm10 = xmm10[1,2,2,3]2033; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm10[0],xmm5[0],xmm10[1],xmm5[1]2034; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,1,2,1]2035; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]2036; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm4[0],zero,xmm4[1],zero2037; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3],ymm3[4,5,6,7]2038; AVX2-FCP-NEXT: vpbroadcastd 36(%r9), %ymm52039; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3],ymm3[4,5,6,7]2040; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2041; AVX2-FCP-NEXT: vpbroadcastd 32(%rcx), %xmm32042; AVX2-FCP-NEXT: vpbroadcastd 32(%rdx), %xmm52043; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]2044; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %ymm102045; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]2046; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %ymm112047; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]2048; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]2049; AVX2-FCP-NEXT: vpbroadcastq %xmm4, %ymm22050; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]2051; AVX2-FCP-NEXT: vpbroadcastd 32(%r9), %ymm22052; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]2053; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2054; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm11[0,1,2,2,4,5,6,6]2055; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm10[1,1,2,3,5,5,6,7]2056; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm2[0],ymm1[1],ymm2[2],ymm1[3],ymm2[4],ymm1[5],ymm2[6],ymm1[7]2057; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm22058; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2059; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]2060; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %ymm142061; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm2[2],ymm14[2],ymm2[3],ymm14[3],ymm2[6],ymm14[6],ymm2[7],ymm14[7]2062; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]2063; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm3 = mem[0],zero,mem[1],zero2064; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]2065; AVX2-FCP-NEXT: vpbroadcastd 52(%r9), %ymm32066; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6,7]2067; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2068; AVX2-FCP-NEXT: vpbroadcastd (%rcx), %xmm12069; AVX2-FCP-NEXT: vpbroadcastd (%rdx), %xmm32070; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm3[0],xmm1[0],xmm3[1],xmm1[1]2071; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm15[0],xmm12[0],xmm15[1],xmm12[1]2072; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]2073; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]2074; AVX2-FCP-NEXT: vpbroadcastq %xmm0, %ymm02075; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]2076; AVX2-FCP-NEXT: vpbroadcastd (%r9), %ymm12077; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]2078; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2079; AVX2-FCP-NEXT: vmovdqa (%rdx), %ymm52080; AVX2-FCP-NEXT: vmovdqa (%rcx), %ymm12081; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm3 = ymm1[0,1,2,2,4,5,6,6]2082; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm5[1,1,2,3,5,5,6,7]2083; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2],ymm3[3],ymm4[4],ymm3[5],ymm4[6],ymm3[7]2084; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm3[2,1,2,3]2085; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm132086; AVX2-FCP-NEXT: vmovdqa (%rsi), %ymm42087; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm3 = ymm13[2],ymm4[2],ymm13[3],ymm4[3],ymm13[6],ymm4[6],ymm13[7],ymm4[7]2088; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm3[4,5],ymm15[6,7]2089; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm12 = mem[0],zero,mem[1],zero2090; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm15[0,1],ymm12[2,3],ymm15[4,5,6,7]2091; AVX2-FCP-NEXT: vpbroadcastd 20(%r9), %ymm152092; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm12[0,1,2],ymm15[3],ymm12[4,5,6,7]2093; AVX2-FCP-NEXT: vmovdqu %ymm6, (%rsp) # 32-byte Spill2094; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]2095; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,3,2,3]2096; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm7, %ymm72097; AVX2-FCP-NEXT: vmovdqa (%r8), %ymm82098; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm12 = [2,2,3,3,2,2,3,3]2099; AVX2-FCP-NEXT: # ymm12 = mem[0,1,0,1]2100; AVX2-FCP-NEXT: vpermd %ymm8, %ymm12, %ymm92101; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3,4,5],ymm9[6,7]2102; AVX2-FCP-NEXT: vmovdqa (%r9), %ymm92103; AVX2-FCP-NEXT: vpermd %ymm9, %ymm12, %ymm152104; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0],ymm15[1],ymm7[2,3,4,5,6],ymm15[7]2105; AVX2-FCP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2106; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]2107; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,2,3,6,7,6,7]2108; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm2 = ymm2[2,3],ymm15[2,3]2109; AVX2-FCP-NEXT: vmovdqa 32(%r8), %ymm152110; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [6,5,3,3,6,5,7,7]2111; AVX2-FCP-NEXT: vpermd %ymm15, %ymm6, %ymm72112; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm7[0,1],ymm2[2,3,4,5],ymm7[6,7]2113; AVX2-FCP-NEXT: vmovdqa 32(%r9), %ymm72114; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm0 = [4,6,2,3,4,6,6,7]2115; AVX2-FCP-NEXT: vpermd %ymm7, %ymm0, %ymm62116; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4,5,6],ymm6[7]2117; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2118; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2119; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm6 # 16-byte Folded Reload2120; AVX2-FCP-NEXT: # xmm6 = xmm2[2],mem[2],xmm2[3],mem[3]2121; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]2122; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2123; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm2, %ymm62124; AVX2-FCP-NEXT: vpermd %ymm15, %ymm12, %ymm22125; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm6[2,3,4,5],ymm2[6,7]2126; AVX2-FCP-NEXT: vpermd %ymm7, %ymm12, %ymm62127; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm6[1],ymm2[2,3,4,5,6],ymm6[7]2128; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm6 = ymm10[0],ymm11[0],ymm10[1],ymm11[1],ymm10[4],ymm11[4],ymm10[5],ymm11[5]2129; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload2130; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm7 = ymm7[0],ymm14[0],ymm7[1],ymm14[1],ymm7[4],ymm14[4],ymm7[5],ymm14[5]2131; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,2,2,2]2132; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[2,1,2,3]2133; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3],ymm7[4,5,6,7]2134; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm15[4,5],ymm6[6,7]2135; AVX2-FCP-NEXT: vpbroadcastd 48(%r9), %ymm72136; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]2137; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm7 = ymm5[2],ymm1[2],ymm5[3],ymm1[3],ymm5[6],ymm1[6],ymm5[7],ymm1[7]2138; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm7 = ymm7[2,3,2,3,6,7,6,7]2139; AVX2-FCP-NEXT: vperm2i128 {{.*#+}} ymm3 = ymm3[2,3],ymm7[2,3]2140; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [6,5,3,3,6,5,7,7]2141; AVX2-FCP-NEXT: vpermd %ymm8, %ymm7, %ymm72142; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm7[0,1],ymm3[2,3,4,5],ymm7[6,7]2143; AVX2-FCP-NEXT: vpermd %ymm9, %ymm0, %ymm72144; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0],ymm7[1],ymm3[2,3,4,5,6],ymm7[7]2145; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm0 = ymm5[0],ymm1[0],ymm5[1],ymm1[1],ymm5[4],ymm1[4],ymm5[5],ymm1[5]2146; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm13[0],ymm4[0],ymm13[1],ymm4[1],ymm13[4],ymm4[4],ymm13[5],ymm4[5]2147; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,2,2,2]2148; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]2149; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]2150; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm8[4,5],ymm0[6,7]2151; AVX2-FCP-NEXT: vpbroadcastd 16(%r9), %ymm12152; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]2153; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2154; AVX2-FCP-NEXT: vmovdqa %ymm0, 96(%rax)2155; AVX2-FCP-NEXT: vmovdqa %ymm3, 160(%rax)2156; AVX2-FCP-NEXT: vmovdqa %ymm6, 288(%rax)2157; AVX2-FCP-NEXT: vmovdqa %ymm2, 256(%rax)2158; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2159; AVX2-FCP-NEXT: vmovaps %ymm0, 352(%rax)2160; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2161; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%rax)2162; AVX2-FCP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload2163; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%rax)2164; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2165; AVX2-FCP-NEXT: vmovaps %ymm0, (%rax)2166; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2167; AVX2-FCP-NEXT: vmovaps %ymm0, 320(%rax)2168; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2169; AVX2-FCP-NEXT: vmovaps %ymm0, 192(%rax)2170; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2171; AVX2-FCP-NEXT: vmovaps %ymm0, 224(%rax)2172; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2173; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%rax)2174; AVX2-FCP-NEXT: addq $232, %rsp2175; AVX2-FCP-NEXT: vzeroupper2176; AVX2-FCP-NEXT: retq2177;2178; AVX512-LABEL: store_i32_stride6_vf16:2179; AVX512: # %bb.0:2180; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax2181; AVX512-NEXT: vmovdqa64 (%rdi), %zmm22182; AVX512-NEXT: vmovdqa64 (%rsi), %zmm32183; AVX512-NEXT: vmovdqa64 (%rdx), %zmm42184; AVX512-NEXT: vmovdqa64 (%rcx), %zmm52185; AVX512-NEXT: vmovdqa64 (%r8), %zmm12186; AVX512-NEXT: vmovdqa64 (%r9), %zmm02187; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2188; AVX512-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2189; AVX512-NEXT: vpermi2d %zmm3, %zmm2, %zmm62190; AVX512-NEXT: vmovdqa (%rdx), %ymm72191; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,11,0,8,7,15,4,12]2192; AVX512-NEXT: vpermi2d (%rcx), %ymm7, %ymm82193; AVX512-NEXT: movb $36, %cl2194; AVX512-NEXT: kmovw %ecx, %k12195; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm6 {%k1} = zmm8[0,1,0,1,2,3,6,7]2196; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2197; AVX512-NEXT: vpermi2d %zmm1, %zmm6, %zmm72198; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2199; AVX512-NEXT: vpermi2d %zmm0, %zmm7, %zmm62200; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2201; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm72202; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2203; AVX512-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2204; AVX512-NEXT: vpermi2d %zmm3, %zmm2, %zmm82205; AVX512-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2206; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2207; AVX512-NEXT: vpermi2d %zmm1, %zmm8, %zmm72208; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2209; AVX512-NEXT: vpermi2d %zmm0, %zmm7, %zmm82210; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2211; AVX512-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2212; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm72213; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2214; AVX512-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2215; AVX512-NEXT: vpermi2d %zmm3, %zmm2, %zmm92216; AVX512-NEXT: movb $-110, %cl2217; AVX512-NEXT: kmovw %ecx, %k22218; AVX512-NEXT: vmovdqa64 %zmm7, %zmm9 {%k2}2219; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2220; AVX512-NEXT: vpermi2d %zmm1, %zmm9, %zmm72221; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2222; AVX512-NEXT: vpermi2d %zmm0, %zmm7, %zmm92223; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2224; AVX512-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2225; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm72226; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2227; AVX512-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2228; AVX512-NEXT: vpermi2d %zmm3, %zmm2, %zmm102229; AVX512-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2230; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2231; AVX512-NEXT: vpermi2d %zmm1, %zmm10, %zmm72232; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2233; AVX512-NEXT: vpermi2d %zmm0, %zmm7, %zmm102234; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2235; AVX512-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2236; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm72237; AVX512-NEXT: vmovdqa (%rdi), %ymm112238; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]2239; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm7 {%k1} = zmm11[2,3,2,3,2,3,2,3]2240; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2241; AVX512-NEXT: vpermi2d %zmm1, %zmm7, %zmm112242; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2243; AVX512-NEXT: vpermi2d %zmm0, %zmm11, %zmm72244; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2245; AVX512-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2246; AVX512-NEXT: vpermi2d %zmm5, %zmm4, %zmm112247; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm2 = zmm2[2],zmm3[2],zmm2[3],zmm3[3],zmm2[6],zmm3[6],zmm2[7],zmm3[7],zmm2[10],zmm3[10],zmm2[11],zmm3[11],zmm2[14],zmm3[14],zmm2[15],zmm3[15]2248; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm2[6,7,6,7,6,7,6,7]2249; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2250; AVX512-NEXT: vpermi2d %zmm1, %zmm11, %zmm22251; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2252; AVX512-NEXT: vpermi2d %zmm0, %zmm2, %zmm12253; AVX512-NEXT: vmovdqa64 %zmm10, (%rax)2254; AVX512-NEXT: vmovdqa64 %zmm9, 192(%rax)2255; AVX512-NEXT: vmovdqa64 %zmm1, 320(%rax)2256; AVX512-NEXT: vmovdqa64 %zmm8, 256(%rax)2257; AVX512-NEXT: vmovdqa64 %zmm7, 128(%rax)2258; AVX512-NEXT: vmovdqa64 %zmm6, 64(%rax)2259; AVX512-NEXT: vzeroupper2260; AVX512-NEXT: retq2261;2262; AVX512-FCP-LABEL: store_i32_stride6_vf16:2263; AVX512-FCP: # %bb.0:2264; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2265; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm32266; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm52267; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm22268; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm42269; AVX512-FCP-NEXT: vmovdqa64 (%r8), %zmm12270; AVX512-FCP-NEXT: vmovdqa64 (%r9), %zmm02271; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2272; AVX512-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2273; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm62274; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2275; AVX512-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2276; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72277; AVX512-FCP-NEXT: movb $-110, %cl2278; AVX512-FCP-NEXT: kmovw %ecx, %k22279; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm7 {%k2}2280; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2281; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm7, %zmm82282; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2283; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm62284; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,3,19,0,0,7,23,4,20,0,0,0,0]2285; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72286; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2287; AVX512-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2288; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm82289; AVX512-FCP-NEXT: movb $36, %cl2290; AVX512-FCP-NEXT: kmovw %ecx, %k12291; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2292; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2293; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm8, %zmm72294; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2295; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm82296; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]2297; AVX512-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2298; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72299; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2300; AVX512-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2301; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm92302; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm9 {%k1}2303; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2304; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm9, %zmm72305; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2306; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm92307; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2308; AVX512-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2309; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72310; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2311; AVX512-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2312; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm102313; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2314; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2315; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm10, %zmm72316; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2317; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm102318; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2319; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72320; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2321; AVX512-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2322; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm112323; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm11 {%k1}2324; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2325; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm11, %zmm72326; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2327; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm112328; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]2329; AVX512-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2330; AVX512-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72331; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2332; AVX512-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]2333; AVX512-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm32334; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm3 {%k1}2335; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2336; AVX512-FCP-NEXT: vpermi2d %zmm1, %zmm3, %zmm22337; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2338; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm2, %zmm12339; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 320(%rax)2340; AVX512-FCP-NEXT: vmovdqa64 %zmm11, 256(%rax)2341; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)2342; AVX512-FCP-NEXT: vmovdqa64 %zmm9, 128(%rax)2343; AVX512-FCP-NEXT: vmovdqa64 %zmm8, 64(%rax)2344; AVX512-FCP-NEXT: vmovdqa64 %zmm6, (%rax)2345; AVX512-FCP-NEXT: vzeroupper2346; AVX512-FCP-NEXT: retq2347;2348; AVX512DQ-LABEL: store_i32_stride6_vf16:2349; AVX512DQ: # %bb.0:2350; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax2351; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm22352; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm32353; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm42354; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm52355; AVX512DQ-NEXT: vmovdqa64 (%r8), %zmm12356; AVX512DQ-NEXT: vmovdqa64 (%r9), %zmm02357; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2358; AVX512DQ-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2359; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm2, %zmm62360; AVX512DQ-NEXT: vmovdqa (%rdx), %ymm72361; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,11,0,8,7,15,4,12]2362; AVX512DQ-NEXT: vpermi2d (%rcx), %ymm7, %ymm82363; AVX512DQ-NEXT: movb $36, %cl2364; AVX512DQ-NEXT: kmovw %ecx, %k12365; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm6 {%k1} = zmm8[0,1,0,1,2,3,6,7]2366; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2367; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm6, %zmm72368; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2369; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm7, %zmm62370; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2371; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm72372; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2373; AVX512DQ-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2374; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm2, %zmm82375; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2376; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2377; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm8, %zmm72378; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2379; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm7, %zmm82380; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2381; AVX512DQ-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2382; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm72383; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2384; AVX512DQ-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2385; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm2, %zmm92386; AVX512DQ-NEXT: movb $-110, %cl2387; AVX512DQ-NEXT: kmovw %ecx, %k22388; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm9 {%k2}2389; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2390; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm9, %zmm72391; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2392; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm7, %zmm92393; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2394; AVX512DQ-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2395; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm72396; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2397; AVX512DQ-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2398; AVX512DQ-NEXT: vpermi2d %zmm3, %zmm2, %zmm102399; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2400; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2401; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm10, %zmm72402; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2403; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm7, %zmm102404; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2405; AVX512DQ-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2406; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm72407; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm112408; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]2409; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm7 {%k1} = zmm11[2,3,2,3,2,3,2,3]2410; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2411; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm7, %zmm112412; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2413; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm11, %zmm72414; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2415; AVX512DQ-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2416; AVX512DQ-NEXT: vpermi2d %zmm5, %zmm4, %zmm112417; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm2 = zmm2[2],zmm3[2],zmm2[3],zmm3[3],zmm2[6],zmm3[6],zmm2[7],zmm3[7],zmm2[10],zmm3[10],zmm2[11],zmm3[11],zmm2[14],zmm3[14],zmm2[15],zmm3[15]2418; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm2[6,7,6,7,6,7,6,7]2419; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2420; AVX512DQ-NEXT: vpermi2d %zmm1, %zmm11, %zmm22421; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2422; AVX512DQ-NEXT: vpermi2d %zmm0, %zmm2, %zmm12423; AVX512DQ-NEXT: vmovdqa64 %zmm10, (%rax)2424; AVX512DQ-NEXT: vmovdqa64 %zmm9, 192(%rax)2425; AVX512DQ-NEXT: vmovdqa64 %zmm1, 320(%rax)2426; AVX512DQ-NEXT: vmovdqa64 %zmm8, 256(%rax)2427; AVX512DQ-NEXT: vmovdqa64 %zmm7, 128(%rax)2428; AVX512DQ-NEXT: vmovdqa64 %zmm6, 64(%rax)2429; AVX512DQ-NEXT: vzeroupper2430; AVX512DQ-NEXT: retq2431;2432; AVX512DQ-FCP-LABEL: store_i32_stride6_vf16:2433; AVX512DQ-FCP: # %bb.0:2434; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2435; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm32436; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm52437; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm22438; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm42439; AVX512DQ-FCP-NEXT: vmovdqa64 (%r8), %zmm12440; AVX512DQ-FCP-NEXT: vmovdqa64 (%r9), %zmm02441; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2442; AVX512DQ-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2443; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm62444; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2445; AVX512DQ-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2446; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72447; AVX512DQ-FCP-NEXT: movb $-110, %cl2448; AVX512DQ-FCP-NEXT: kmovw %ecx, %k22449; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm7 {%k2}2450; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2451; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm7, %zmm82452; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2453; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm62454; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,3,19,0,0,7,23,4,20,0,0,0,0]2455; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72456; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2457; AVX512DQ-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2458; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm82459; AVX512DQ-FCP-NEXT: movb $36, %cl2460; AVX512DQ-FCP-NEXT: kmovw %ecx, %k12461; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2462; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2463; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm8, %zmm72464; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2465; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm82466; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]2467; AVX512DQ-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2468; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72469; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2470; AVX512DQ-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2471; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm92472; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm9 {%k1}2473; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2474; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm9, %zmm72475; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2476; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm92477; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2478; AVX512DQ-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2479; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72480; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2481; AVX512DQ-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2482; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm102483; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2484; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2485; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm10, %zmm72486; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2487; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm102488; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2489; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72490; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2491; AVX512DQ-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2492; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm112493; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm11 {%k1}2494; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2495; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm11, %zmm72496; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2497; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm112498; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]2499; AVX512DQ-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2500; AVX512DQ-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72501; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2502; AVX512DQ-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]2503; AVX512DQ-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm32504; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm3 {%k1}2505; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2506; AVX512DQ-FCP-NEXT: vpermi2d %zmm1, %zmm3, %zmm22507; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2508; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm2, %zmm12509; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 320(%rax)2510; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, 256(%rax)2511; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)2512; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, 128(%rax)2513; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, 64(%rax)2514; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, (%rax)2515; AVX512DQ-FCP-NEXT: vzeroupper2516; AVX512DQ-FCP-NEXT: retq2517;2518; AVX512BW-LABEL: store_i32_stride6_vf16:2519; AVX512BW: # %bb.0:2520; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2521; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm22522; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm32523; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm42524; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm52525; AVX512BW-NEXT: vmovdqa64 (%r8), %zmm12526; AVX512BW-NEXT: vmovdqa64 (%r9), %zmm02527; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2528; AVX512BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2529; AVX512BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm62530; AVX512BW-NEXT: vmovdqa (%rdx), %ymm72531; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,11,0,8,7,15,4,12]2532; AVX512BW-NEXT: vpermi2d (%rcx), %ymm7, %ymm82533; AVX512BW-NEXT: movb $36, %cl2534; AVX512BW-NEXT: kmovd %ecx, %k12535; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm6 {%k1} = zmm8[0,1,0,1,2,3,6,7]2536; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2537; AVX512BW-NEXT: vpermi2d %zmm1, %zmm6, %zmm72538; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2539; AVX512BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm62540; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2541; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72542; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2543; AVX512BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2544; AVX512BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm82545; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2546; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2547; AVX512BW-NEXT: vpermi2d %zmm1, %zmm8, %zmm72548; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2549; AVX512BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm82550; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2551; AVX512BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2552; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72553; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2554; AVX512BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2555; AVX512BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm92556; AVX512BW-NEXT: movb $-110, %cl2557; AVX512BW-NEXT: kmovd %ecx, %k22558; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm9 {%k2}2559; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2560; AVX512BW-NEXT: vpermi2d %zmm1, %zmm9, %zmm72561; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2562; AVX512BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm92563; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2564; AVX512BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2565; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72566; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2567; AVX512BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2568; AVX512BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm102569; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2570; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2571; AVX512BW-NEXT: vpermi2d %zmm1, %zmm10, %zmm72572; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2573; AVX512BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm102574; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2575; AVX512BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2576; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72577; AVX512BW-NEXT: vmovdqa (%rdi), %ymm112578; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]2579; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm7 {%k1} = zmm11[2,3,2,3,2,3,2,3]2580; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2581; AVX512BW-NEXT: vpermi2d %zmm1, %zmm7, %zmm112582; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2583; AVX512BW-NEXT: vpermi2d %zmm0, %zmm11, %zmm72584; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2585; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2586; AVX512BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm112587; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm2 = zmm2[2],zmm3[2],zmm2[3],zmm3[3],zmm2[6],zmm3[6],zmm2[7],zmm3[7],zmm2[10],zmm3[10],zmm2[11],zmm3[11],zmm2[14],zmm3[14],zmm2[15],zmm3[15]2588; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm2[6,7,6,7,6,7,6,7]2589; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2590; AVX512BW-NEXT: vpermi2d %zmm1, %zmm11, %zmm22591; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2592; AVX512BW-NEXT: vpermi2d %zmm0, %zmm2, %zmm12593; AVX512BW-NEXT: vmovdqa64 %zmm10, (%rax)2594; AVX512BW-NEXT: vmovdqa64 %zmm9, 192(%rax)2595; AVX512BW-NEXT: vmovdqa64 %zmm1, 320(%rax)2596; AVX512BW-NEXT: vmovdqa64 %zmm8, 256(%rax)2597; AVX512BW-NEXT: vmovdqa64 %zmm7, 128(%rax)2598; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%rax)2599; AVX512BW-NEXT: vzeroupper2600; AVX512BW-NEXT: retq2601;2602; AVX512BW-FCP-LABEL: store_i32_stride6_vf16:2603; AVX512BW-FCP: # %bb.0:2604; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2605; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm32606; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm52607; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm22608; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm42609; AVX512BW-FCP-NEXT: vmovdqa64 (%r8), %zmm12610; AVX512BW-FCP-NEXT: vmovdqa64 (%r9), %zmm02611; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2612; AVX512BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2613; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm62614; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2615; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2616; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72617; AVX512BW-FCP-NEXT: movb $-110, %cl2618; AVX512BW-FCP-NEXT: kmovd %ecx, %k22619; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm7 {%k2}2620; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2621; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm7, %zmm82622; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2623; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm62624; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,3,19,0,0,7,23,4,20,0,0,0,0]2625; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72626; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2627; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2628; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm82629; AVX512BW-FCP-NEXT: movb $36, %cl2630; AVX512BW-FCP-NEXT: kmovd %ecx, %k12631; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2632; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2633; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm8, %zmm72634; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2635; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm82636; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]2637; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2638; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72639; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2640; AVX512BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2641; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm92642; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm9 {%k1}2643; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2644; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm9, %zmm72645; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2646; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm92647; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2648; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2649; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72650; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2651; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2652; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm102653; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2654; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2655; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm10, %zmm72656; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2657; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm102658; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2659; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72660; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2661; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2662; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm112663; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm11 {%k1}2664; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2665; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm11, %zmm72666; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2667; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm112668; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]2669; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2670; AVX512BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72671; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2672; AVX512BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]2673; AVX512BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm32674; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm3 {%k1}2675; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2676; AVX512BW-FCP-NEXT: vpermi2d %zmm1, %zmm3, %zmm22677; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2678; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm2, %zmm12679; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 320(%rax)2680; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, 256(%rax)2681; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)2682; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, 128(%rax)2683; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, 64(%rax)2684; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, (%rax)2685; AVX512BW-FCP-NEXT: vzeroupper2686; AVX512BW-FCP-NEXT: retq2687;2688; AVX512DQ-BW-LABEL: store_i32_stride6_vf16:2689; AVX512DQ-BW: # %bb.0:2690; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax2691; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm22692; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm32693; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm42694; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm52695; AVX512DQ-BW-NEXT: vmovdqa64 (%r8), %zmm12696; AVX512DQ-BW-NEXT: vmovdqa64 (%r9), %zmm02697; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2698; AVX512DQ-BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2699; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm62700; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %ymm72701; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm8 = [3,11,0,8,7,15,4,12]2702; AVX512DQ-BW-NEXT: vpermi2d (%rcx), %ymm7, %ymm82703; AVX512DQ-BW-NEXT: movb $36, %cl2704; AVX512DQ-BW-NEXT: kmovd %ecx, %k12705; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm6 {%k1} = zmm8[0,1,0,1,2,3,6,7]2706; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2707; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm6, %zmm72708; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2709; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm62710; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2711; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72712; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2713; AVX512DQ-BW-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2714; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm82715; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2716; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2717; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm8, %zmm72718; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2719; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm82720; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2721; AVX512DQ-BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2722; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72723; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2724; AVX512DQ-BW-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2725; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm92726; AVX512DQ-BW-NEXT: movb $-110, %cl2727; AVX512DQ-BW-NEXT: kmovd %ecx, %k22728; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm9 {%k2}2729; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2730; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm9, %zmm72731; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2732; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm92733; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2734; AVX512DQ-BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2735; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72736; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2737; AVX512DQ-BW-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2738; AVX512DQ-BW-NEXT: vpermi2d %zmm3, %zmm2, %zmm102739; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2740; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2741; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm10, %zmm72742; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2743; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm7, %zmm102744; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2745; AVX512DQ-BW-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2746; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm72747; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm112748; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]2749; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm7 {%k1} = zmm11[2,3,2,3,2,3,2,3]2750; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2751; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm7, %zmm112752; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2753; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm11, %zmm72754; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2755; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2756; AVX512DQ-BW-NEXT: vpermi2d %zmm5, %zmm4, %zmm112757; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm2 = zmm2[2],zmm3[2],zmm2[3],zmm3[3],zmm2[6],zmm3[6],zmm2[7],zmm3[7],zmm2[10],zmm3[10],zmm2[11],zmm3[11],zmm2[14],zmm3[14],zmm2[15],zmm3[15]2758; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm11 {%k1} = zmm2[6,7,6,7,6,7,6,7]2759; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2760; AVX512DQ-BW-NEXT: vpermi2d %zmm1, %zmm11, %zmm22761; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2762; AVX512DQ-BW-NEXT: vpermi2d %zmm0, %zmm2, %zmm12763; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, (%rax)2764; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, 192(%rax)2765; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, 320(%rax)2766; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, 256(%rax)2767; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, 128(%rax)2768; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, 64(%rax)2769; AVX512DQ-BW-NEXT: vzeroupper2770; AVX512DQ-BW-NEXT: retq2771;2772; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf16:2773; AVX512DQ-BW-FCP: # %bb.0:2774; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax2775; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm32776; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm52777; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm22778; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm42779; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r8), %zmm12780; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r9), %zmm02781; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]2782; AVX512DQ-BW-FCP-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]2783; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm62784; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]2785; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2786; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72787; AVX512DQ-BW-FCP-NEXT: movb $-110, %cl2788; AVX512DQ-BW-FCP-NEXT: kmovd %ecx, %k22789; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm7 {%k2}2790; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]2791; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm7, %zmm82792; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]2793; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm8, %zmm62794; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,3,19,0,0,7,23,4,20,0,0,0,0]2795; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72796; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]2797; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]2798; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm82799; AVX512DQ-BW-FCP-NEXT: movb $36, %cl2800; AVX512DQ-BW-FCP-NEXT: kmovd %ecx, %k12801; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm8 {%k1}2802; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]2803; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm8, %zmm72804; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]2805; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm82806; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]2807; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2808; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72809; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm9 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]2810; AVX512DQ-BW-FCP-NEXT: # zmm9 = mem[0,1,2,3,0,1,2,3]2811; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm92812; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm9 {%k1}2813; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]2814; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm9, %zmm72815; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]2816; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm92817; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]2818; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]2819; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72820; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]2821; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]2822; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm102823; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm10 {%k2}2824; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]2825; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm10, %zmm72826; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]2827; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm102828; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,0,0,16,11,27,0,0,15,31,12,28,0,0,12,28]2829; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm72830; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]2831; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]2832; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm112833; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm11 {%k1}2834; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]2835; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm11, %zmm72836; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]2837; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm7, %zmm112838; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm7 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]2839; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]2840; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm5, %zmm3, %zmm72841; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm3 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]2842; AVX512DQ-BW-FCP-NEXT: # zmm3 = mem[0,1,2,3,0,1,2,3]2843; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm4, %zmm2, %zmm32844; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm3 {%k1}2845; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]2846; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm1, %zmm3, %zmm22847; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]2848; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm2, %zmm12849; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 320(%rax)2850; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, 256(%rax)2851; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)2852; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, 128(%rax)2853; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, 64(%rax)2854; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, (%rax)2855; AVX512DQ-BW-FCP-NEXT: vzeroupper2856; AVX512DQ-BW-FCP-NEXT: retq2857 %in.vec0 = load <16 x i32>, ptr %in.vecptr0, align 642858 %in.vec1 = load <16 x i32>, ptr %in.vecptr1, align 642859 %in.vec2 = load <16 x i32>, ptr %in.vecptr2, align 642860 %in.vec3 = load <16 x i32>, ptr %in.vecptr3, align 642861 %in.vec4 = load <16 x i32>, ptr %in.vecptr4, align 642862 %in.vec5 = load <16 x i32>, ptr %in.vecptr5, align 642863 %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>2864 %2 = shufflevector <16 x i32> %in.vec2, <16 x i32> %in.vec3, <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>2865 %3 = shufflevector <16 x i32> %in.vec4, <16 x i32> %in.vec5, <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>2866 %4 = shufflevector <32 x i32> %1, <32 x i32> %2, <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>2867 %5 = shufflevector <32 x i32> %3, <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>2868 %6 = shufflevector <64 x i32> %4, <64 x i32> %5, <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>2869 %interleaved.vec = shufflevector <96 x i32> %6, <96 x i32> poison, <96 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95>2870 store <96 x i32> %interleaved.vec, ptr %out.vec, align 642871 ret void2872}2873 2874define void @store_i32_stride6_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {2875; SSE-LABEL: store_i32_stride6_vf32:2876; SSE: # %bb.0:2877; SSE-NEXT: subq $456, %rsp # imm = 0x1C82878; SSE-NEXT: movaps (%rdi), %xmm92879; SSE-NEXT: movaps 16(%rdi), %xmm102880; SSE-NEXT: movaps (%rsi), %xmm42881; SSE-NEXT: movaps 16(%rsi), %xmm02882; SSE-NEXT: movaps (%rdx), %xmm112883; SSE-NEXT: movaps 16(%rdx), %xmm122884; SSE-NEXT: movaps (%rcx), %xmm52885; SSE-NEXT: movaps 16(%rcx), %xmm12886; SSE-NEXT: movaps (%r8), %xmm62887; SSE-NEXT: movaps 16(%r8), %xmm22888; SSE-NEXT: movaps (%r9), %xmm72889; SSE-NEXT: movaps 16(%r9), %xmm32890; SSE-NEXT: movaps %xmm11, %xmm132891; SSE-NEXT: unpcklps {{.*#+}} xmm13 = xmm13[0],xmm5[0],xmm13[1],xmm5[1]2892; SSE-NEXT: movaps %xmm9, %xmm82893; SSE-NEXT: unpcklps {{.*#+}} xmm8 = xmm8[0],xmm4[0],xmm8[1],xmm4[1]2894; SSE-NEXT: movaps %xmm7, %xmm142895; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm6[0]2896; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,0],xmm8[2,3]2897; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2898; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm13[0]2899; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2900; SSE-NEXT: movaps %xmm6, %xmm82901; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[1,1],xmm7[1,1]2902; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[2,3],xmm8[0,2]2903; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2904; SSE-NEXT: movaps %xmm5, %xmm82905; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]2906; SSE-NEXT: unpckhps {{.*#+}} xmm9 = xmm9[2],xmm4[2],xmm9[3],xmm4[3]2907; SSE-NEXT: movaps %xmm6, %xmm42908; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm7[1]2909; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm9[2,3]2910; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2911; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,1],xmm8[2,0]2912; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2913; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[3,3],xmm7[3,3]2914; SSE-NEXT: unpckhps {{.*#+}} xmm11 = xmm11[2],xmm5[2],xmm11[3],xmm5[3]2915; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,3],xmm6[0,2]2916; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2917; SSE-NEXT: movaps %xmm12, %xmm52918; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]2919; SSE-NEXT: movaps %xmm10, %xmm42920; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]2921; SSE-NEXT: movaps %xmm3, %xmm62922; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm2[0]2923; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm4[2,3]2924; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2925; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]2926; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2927; SSE-NEXT: movaps %xmm2, %xmm42928; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]2929; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]2930; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2931; SSE-NEXT: movaps %xmm1, %xmm42932; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm12[1]2933; SSE-NEXT: unpckhps {{.*#+}} xmm10 = xmm10[2],xmm0[2],xmm10[3],xmm0[3]2934; SSE-NEXT: movaps %xmm2, %xmm02935; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]2936; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm10[2,3]2937; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2938; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,1],xmm4[2,0]2939; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2940; SSE-NEXT: movaps 32(%rdi), %xmm52941; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]2942; SSE-NEXT: movaps 32(%rdx), %xmm62943; SSE-NEXT: unpckhps {{.*#+}} xmm12 = xmm12[2],xmm1[2],xmm12[3],xmm1[3]2944; SSE-NEXT: movaps 32(%rcx), %xmm02945; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[2,3],xmm2[0,2]2946; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2947; SSE-NEXT: movaps %xmm6, %xmm72948; SSE-NEXT: unpcklps {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]2949; SSE-NEXT: movaps 32(%rsi), %xmm12950; SSE-NEXT: movaps %xmm5, %xmm42951; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]2952; SSE-NEXT: movaps 32(%r8), %xmm22953; SSE-NEXT: movaps 32(%r9), %xmm32954; SSE-NEXT: movaps %xmm3, %xmm82955; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]2956; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]2957; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2958; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]2959; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2960; SSE-NEXT: movaps %xmm2, %xmm42961; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]2962; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[2,3],xmm4[0,2]2963; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2964; SSE-NEXT: unpckhps {{.*#+}} xmm5 = xmm5[2],xmm1[2],xmm5[3],xmm1[3]2965; SSE-NEXT: movaps %xmm0, %xmm12966; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]2967; SSE-NEXT: movaps %xmm2, %xmm42968; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]2969; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm5[2,3]2970; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2971; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2,0]2972; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2973; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]2974; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]2975; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]2976; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2977; SSE-NEXT: movaps 48(%rdx), %xmm62978; SSE-NEXT: movaps 48(%rcx), %xmm02979; SSE-NEXT: movaps %xmm6, %xmm52980; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]2981; SSE-NEXT: movaps 48(%rdi), %xmm72982; SSE-NEXT: movaps 48(%rsi), %xmm12983; SSE-NEXT: movaps %xmm7, %xmm42984; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]2985; SSE-NEXT: movaps 48(%r8), %xmm22986; SSE-NEXT: movaps 48(%r9), %xmm32987; SSE-NEXT: movaps %xmm3, %xmm82988; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]2989; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]2990; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2991; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]2992; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2993; SSE-NEXT: movaps %xmm2, %xmm42994; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]2995; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]2996; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2997; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]2998; SSE-NEXT: movaps %xmm0, %xmm12999; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]3000; SSE-NEXT: movaps %xmm2, %xmm43001; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]3002; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]3003; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3004; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]3005; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3006; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]3007; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]3008; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]3009; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3010; SSE-NEXT: movaps 64(%rdx), %xmm63011; SSE-NEXT: movaps 64(%rcx), %xmm03012; SSE-NEXT: movaps %xmm6, %xmm53013; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]3014; SSE-NEXT: movaps 64(%rdi), %xmm73015; SSE-NEXT: movaps 64(%rsi), %xmm13016; SSE-NEXT: movaps %xmm7, %xmm43017; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]3018; SSE-NEXT: movaps 64(%r8), %xmm23019; SSE-NEXT: movaps 64(%r9), %xmm33020; SSE-NEXT: movaps %xmm3, %xmm83021; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]3022; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]3023; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3024; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]3025; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3026; SSE-NEXT: movaps %xmm2, %xmm43027; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]3028; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]3029; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3030; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]3031; SSE-NEXT: movaps %xmm0, %xmm13032; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]3033; SSE-NEXT: movaps %xmm2, %xmm43034; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]3035; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]3036; SSE-NEXT: movaps %xmm4, (%rsp) # 16-byte Spill3037; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]3038; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3039; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]3040; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]3041; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]3042; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3043; SSE-NEXT: movaps 80(%rdx), %xmm63044; SSE-NEXT: movaps 80(%rcx), %xmm03045; SSE-NEXT: movaps %xmm6, %xmm53046; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]3047; SSE-NEXT: movaps 80(%rdi), %xmm73048; SSE-NEXT: movaps 80(%rsi), %xmm13049; SSE-NEXT: movaps %xmm7, %xmm43050; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]3051; SSE-NEXT: movaps 80(%r8), %xmm23052; SSE-NEXT: movaps 80(%r9), %xmm33053; SSE-NEXT: movaps %xmm3, %xmm83054; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]3055; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]3056; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3057; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]3058; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3059; SSE-NEXT: movaps %xmm2, %xmm43060; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]3061; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]3062; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3063; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]3064; SSE-NEXT: movaps %xmm0, %xmm13065; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]3066; SSE-NEXT: movaps %xmm2, %xmm43067; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]3068; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]3069; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3070; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]3071; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3072; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]3073; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]3074; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]3075; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3076; SSE-NEXT: movaps 96(%rdx), %xmm93077; SSE-NEXT: movaps 96(%rcx), %xmm03078; SSE-NEXT: movaps %xmm9, %xmm143079; SSE-NEXT: unpcklps {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]3080; SSE-NEXT: movaps 96(%rdi), %xmm113081; SSE-NEXT: movaps 96(%rsi), %xmm13082; SSE-NEXT: movaps %xmm11, %xmm133083; SSE-NEXT: unpcklps {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]3084; SSE-NEXT: movaps 96(%r8), %xmm23085; SSE-NEXT: movaps 96(%r9), %xmm33086; SSE-NEXT: movaps %xmm3, %xmm153087; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm2[0]3088; SSE-NEXT: shufps {{.*#+}} xmm15 = xmm15[2,0],xmm13[2,3]3089; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm14[0]3090; SSE-NEXT: movaps %xmm2, %xmm43091; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]3092; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,3],xmm4[0,2]3093; SSE-NEXT: unpckhps {{.*#+}} xmm11 = xmm11[2],xmm1[2],xmm11[3],xmm1[3]3094; SSE-NEXT: movaps %xmm0, %xmm13095; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm9[1]3096; SSE-NEXT: movaps %xmm2, %xmm83097; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]3098; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,2],xmm11[2,3]3099; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[0,1],xmm1[2,0]3100; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]3101; SSE-NEXT: unpckhps {{.*#+}} xmm9 = xmm9[2],xmm0[2],xmm9[3],xmm0[3]3102; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,3],xmm2[0,2]3103; SSE-NEXT: movaps 112(%rdx), %xmm33104; SSE-NEXT: movaps 112(%rcx), %xmm123105; SSE-NEXT: movaps %xmm3, %xmm53106; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm12[0],xmm5[1],xmm12[1]3107; SSE-NEXT: movaps 112(%rdi), %xmm23108; SSE-NEXT: movaps 112(%rsi), %xmm103109; SSE-NEXT: movaps %xmm2, %xmm43110; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1]3111; SSE-NEXT: movaps 112(%r8), %xmm13112; SSE-NEXT: movaps 112(%r9), %xmm73113; SSE-NEXT: movaps %xmm7, %xmm63114; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm1[0]3115; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm4[2,3]3116; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]3117; SSE-NEXT: movaps %xmm1, %xmm03118; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1],xmm7[1,1]3119; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm0[0,2]3120; SSE-NEXT: unpckhps {{.*#+}} xmm2 = xmm2[2],xmm10[2],xmm2[3],xmm10[3]3121; SSE-NEXT: movaps %xmm12, %xmm03122; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]3123; SSE-NEXT: movaps %xmm1, %xmm103124; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm7[1]3125; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,2],xmm2[2,3]3126; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]3127; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3],xmm7[3,3]3128; SSE-NEXT: unpckhps {{.*#+}} xmm3 = xmm3[2],xmm12[2],xmm3[3],xmm12[3]3129; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,3],xmm1[0,2]3130; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax3131; SSE-NEXT: movaps %xmm3, 752(%rax)3132; SSE-NEXT: movaps %xmm10, 736(%rax)3133; SSE-NEXT: movaps %xmm2, 720(%rax)3134; SSE-NEXT: movaps %xmm5, 704(%rax)3135; SSE-NEXT: movaps %xmm6, 688(%rax)3136; SSE-NEXT: movaps %xmm4, 672(%rax)3137; SSE-NEXT: movaps %xmm9, 656(%rax)3138; SSE-NEXT: movaps %xmm8, 640(%rax)3139; SSE-NEXT: movaps %xmm11, 624(%rax)3140; SSE-NEXT: movaps %xmm14, 608(%rax)3141; SSE-NEXT: movaps %xmm15, 592(%rax)3142; SSE-NEXT: movaps %xmm13, 576(%rax)3143; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3144; SSE-NEXT: movaps %xmm0, 560(%rax)3145; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3146; SSE-NEXT: movaps %xmm0, 544(%rax)3147; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3148; SSE-NEXT: movaps %xmm0, 528(%rax)3149; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3150; SSE-NEXT: movaps %xmm0, 512(%rax)3151; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3152; SSE-NEXT: movaps %xmm0, 496(%rax)3153; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3154; SSE-NEXT: movaps %xmm0, 480(%rax)3155; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3156; SSE-NEXT: movaps %xmm0, 464(%rax)3157; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload3158; SSE-NEXT: movaps %xmm0, 448(%rax)3159; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3160; SSE-NEXT: movaps %xmm0, 432(%rax)3161; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3162; SSE-NEXT: movaps %xmm0, 416(%rax)3163; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3164; SSE-NEXT: movaps %xmm0, 400(%rax)3165; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3166; SSE-NEXT: movaps %xmm0, 384(%rax)3167; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3168; SSE-NEXT: movaps %xmm0, 368(%rax)3169; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3170; SSE-NEXT: movaps %xmm0, 352(%rax)3171; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3172; SSE-NEXT: movaps %xmm0, 336(%rax)3173; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3174; SSE-NEXT: movaps %xmm0, 320(%rax)3175; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3176; SSE-NEXT: movaps %xmm0, 304(%rax)3177; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3178; SSE-NEXT: movaps %xmm0, 288(%rax)3179; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3180; SSE-NEXT: movaps %xmm0, 272(%rax)3181; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3182; SSE-NEXT: movaps %xmm0, 256(%rax)3183; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3184; SSE-NEXT: movaps %xmm0, 240(%rax)3185; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3186; SSE-NEXT: movaps %xmm0, 224(%rax)3187; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3188; SSE-NEXT: movaps %xmm0, 208(%rax)3189; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3190; SSE-NEXT: movaps %xmm0, 192(%rax)3191; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3192; SSE-NEXT: movaps %xmm0, 176(%rax)3193; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3194; SSE-NEXT: movaps %xmm0, 160(%rax)3195; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3196; SSE-NEXT: movaps %xmm0, 144(%rax)3197; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3198; SSE-NEXT: movaps %xmm0, 128(%rax)3199; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3200; SSE-NEXT: movaps %xmm0, 112(%rax)3201; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3202; SSE-NEXT: movaps %xmm0, 96(%rax)3203; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3204; SSE-NEXT: movaps %xmm0, 80(%rax)3205; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3206; SSE-NEXT: movaps %xmm0, 64(%rax)3207; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3208; SSE-NEXT: movaps %xmm0, 48(%rax)3209; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3210; SSE-NEXT: movaps %xmm0, 32(%rax)3211; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3212; SSE-NEXT: movaps %xmm0, 16(%rax)3213; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3214; SSE-NEXT: movaps %xmm0, (%rax)3215; SSE-NEXT: addq $456, %rsp # imm = 0x1C83216; SSE-NEXT: retq3217;3218; AVX-LABEL: store_i32_stride6_vf32:3219; AVX: # %bb.0:3220; AVX-NEXT: subq $712, %rsp # imm = 0x2C83221; AVX-NEXT: vmovaps (%rdi), %ymm73222; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3223; AVX-NEXT: vmovaps (%rsi), %ymm103224; AVX-NEXT: vmovups %ymm10, (%rsp) # 32-byte Spill3225; AVX-NEXT: vmovaps (%rdx), %ymm83226; AVX-NEXT: vmovaps (%rcx), %ymm43227; AVX-NEXT: vmovaps (%rcx), %xmm03228; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3229; AVX-NEXT: vmovaps 32(%rcx), %xmm23230; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3231; AVX-NEXT: vmovaps (%rdx), %xmm143232; AVX-NEXT: vmovaps 32(%rdx), %xmm63233; AVX-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3234; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm14[1,2],xmm0[1,2]3235; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]3236; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm03237; AVX-NEXT: vmovaps (%rsi), %xmm53238; AVX-NEXT: vmovaps (%rdi), %xmm33239; AVX-NEXT: vunpckhps {{.*#+}} xmm9 = xmm3[2],xmm5[2],xmm3[3],xmm5[3]3240; AVX-NEXT: vinsertf128 $1, %xmm9, %ymm0, %ymm13241; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]3242; AVX-NEXT: vbroadcastss 4(%r8), %xmm13243; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]3244; AVX-NEXT: vbroadcastss 4(%r9), %ymm13245; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]3246; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3247; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm7[0],ymm10[0],ymm7[1],ymm10[1],ymm7[4],ymm10[4],ymm7[5],ymm10[5]3248; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]3249; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm8[0],ymm4[2],ymm8[2]3250; AVX-NEXT: vextractf128 $1, %ymm1, %xmm13251; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[0,1,2,0]3252; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]3253; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]3254; AVX-NEXT: vbroadcastss 16(%r9), %ymm13255; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]3256; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3257; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm6[1,2],xmm2[1,2]3258; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]3259; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm03260; AVX-NEXT: vmovaps 32(%rsi), %xmm13261; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3262; AVX-NEXT: vmovaps 32(%rdi), %xmm23263; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3264; AVX-NEXT: vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]3265; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3266; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm13267; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]3268; AVX-NEXT: vbroadcastss 36(%r8), %xmm13269; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]3270; AVX-NEXT: vbroadcastss 36(%r9), %ymm13271; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]3272; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3273; AVX-NEXT: vmovaps 32(%rdi), %ymm13274; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3275; AVX-NEXT: vmovaps 32(%rsi), %ymm03276; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3277; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]3278; AVX-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm0[2,3,2,3]3279; AVX-NEXT: vmovaps 32(%rdx), %ymm23280; AVX-NEXT: vmovaps 32(%rcx), %ymm13281; AVX-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]3282; AVX-NEXT: vextractf128 $1, %ymm7, %xmm73283; AVX-NEXT: vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]3284; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]3285; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],mem[4,5],ymm6[6,7]3286; AVX-NEXT: vbroadcastss 48(%r9), %ymm73287; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]3288; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3289; AVX-NEXT: vmovaps 64(%rcx), %xmm03290; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3291; AVX-NEXT: vmovaps 64(%rdx), %xmm63292; AVX-NEXT: vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3293; AVX-NEXT: vshufps {{.*#+}} xmm6 = xmm6[1,2],xmm0[1,2]3294; AVX-NEXT: vshufps {{.*#+}} xmm6 = xmm6[0,2,1,3]3295; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm6, %ymm63296; AVX-NEXT: vmovaps 64(%rsi), %xmm03297; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3298; AVX-NEXT: vmovaps 64(%rdi), %xmm73299; AVX-NEXT: vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3300; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm7[2],xmm0[2],xmm7[3],xmm0[3]3301; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3302; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm73303; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]3304; AVX-NEXT: vbroadcastss 68(%r8), %xmm73305; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]3306; AVX-NEXT: vbroadcastss 68(%r9), %ymm73307; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2],ymm7[3],ymm6[4,5,6,7]3308; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3309; AVX-NEXT: vmovaps 64(%rdi), %ymm03310; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3311; AVX-NEXT: vmovaps 64(%rsi), %ymm63312; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3313; AVX-NEXT: vunpcklps {{.*#+}} ymm6 = ymm0[0],ymm6[0],ymm0[1],ymm6[1],ymm0[4],ymm6[4],ymm0[5],ymm6[5]3314; AVX-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm6[2,3,2,3]3315; AVX-NEXT: vmovaps 64(%rdx), %ymm73316; AVX-NEXT: vmovaps 64(%rcx), %ymm63317; AVX-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm6[0],ymm7[0],ymm6[2],ymm7[2]3318; AVX-NEXT: vextractf128 $1, %ymm11, %xmm113319; AVX-NEXT: vshufps {{.*#+}} xmm11 = xmm11[0,1,2,0]3320; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]3321; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],mem[4,5],ymm10[6,7]3322; AVX-NEXT: vbroadcastss 80(%r9), %ymm113323; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]3324; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3325; AVX-NEXT: vmovaps 96(%rcx), %xmm113326; AVX-NEXT: vmovaps 96(%rdx), %xmm123327; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm12[1,2],xmm11[1,2]3328; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm10[0,2,1,3]3329; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm10, %ymm103330; AVX-NEXT: vmovaps 96(%rsi), %xmm03331; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3332; AVX-NEXT: vmovaps 96(%rdi), %xmm133333; AVX-NEXT: vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3334; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm13[2],xmm0[2],xmm13[3],xmm0[3]3335; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3336; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm133337; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm13[4,5],ymm10[6,7]3338; AVX-NEXT: vbroadcastss 100(%r8), %xmm133339; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3],ymm10[4,5,6,7]3340; AVX-NEXT: vbroadcastss 100(%r9), %ymm133341; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm10[0,1,2],ymm13[3],ymm10[4,5,6,7]3342; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3343; AVX-NEXT: vmovaps 96(%rdi), %ymm03344; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3345; AVX-NEXT: vmovaps 96(%rsi), %ymm103346; AVX-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3347; AVX-NEXT: vunpcklps {{.*#+}} ymm10 = ymm0[0],ymm10[0],ymm0[1],ymm10[1],ymm0[4],ymm10[4],ymm0[5],ymm10[5]3348; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm10[2,3,2,3]3349; AVX-NEXT: vmovaps 96(%rdx), %ymm133350; AVX-NEXT: vmovaps 96(%rcx), %ymm103351; AVX-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm10[0],ymm13[0],ymm10[2],ymm13[2]3352; AVX-NEXT: vextractf128 $1, %ymm15, %xmm153353; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,1,2,0]3354; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]3355; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]3356; AVX-NEXT: vbroadcastss 112(%r9), %ymm153357; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]3358; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3359; AVX-NEXT: vbroadcastss (%rcx), %xmm03360; AVX-NEXT: vbroadcastss (%rdx), %xmm153361; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]3362; AVX-NEXT: vunpcklps {{.*#+}} xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1]3363; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm53364; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6,7]3365; AVX-NEXT: vinsertf128 $1, (%r8), %ymm3, %ymm33366; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3],ymm3[4,5],ymm0[6,7]3367; AVX-NEXT: vbroadcastss (%r9), %ymm33368; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm3[5],ymm0[6,7]3369; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3370; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm0 # 16-byte Folded Reload3371; AVX-NEXT: # xmm0 = xmm14[2],mem[2],xmm14[3],mem[3]3372; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]3373; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm9, %ymm03374; AVX-NEXT: vpermilps {{.*#+}} xmm3 = mem[2,1,3,3]3375; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm3, %ymm33376; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5],ymm3[6,7]3377; AVX-NEXT: vmovaps (%r9), %xmm33378; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm3[0,2,2,3]3379; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm5, %ymm33380; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4,5,6],ymm3[7]3381; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3382; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3383; AVX-NEXT: vunpckhps (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload3384; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]3385; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm8[1,2],ymm4[1,2],ymm8[5,6],ymm4[5,6]3386; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,2,3]3387; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[0,2,1,3,4,6,5,7]3388; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm0[4,5],ymm3[6,7]3389; AVX-NEXT: vbroadcastss 20(%r8), %xmm53390; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3],ymm3[4,5,6,7]3391; AVX-NEXT: vbroadcastss 20(%r9), %ymm53392; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3],ymm3[4,5,6,7]3393; AVX-NEXT: vmovups %ymm3, (%rsp) # 32-byte Spill3394; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm4[3,0],ymm8[3,0],ymm4[7,4],ymm8[7,4]3395; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[2,0,2,3,6,4,6,7]3396; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm3[2,3]3397; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm3 = mem[0,1,0,1]3398; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[2,1,3,3,6,5,7,7]3399; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5],ymm3[6,7]3400; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm3 = mem[0,1,0,1]3401; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]3402; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm0[0],ymm3[1],ymm0[2,3,4,5,6],ymm3[7]3403; AVX-NEXT: vbroadcastss 32(%rcx), %xmm03404; AVX-NEXT: vbroadcastss 32(%rdx), %xmm33405; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]3406; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3407; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload3408; AVX-NEXT: # xmm3 = xmm3[0],mem[0],xmm3[1],mem[1]3409; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm43410; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3],ymm4[4,5,6,7]3411; AVX-NEXT: vinsertf128 $1, 32(%r8), %ymm3, %ymm33412; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3],ymm3[4,5],ymm0[6,7]3413; AVX-NEXT: vbroadcastss 32(%r9), %ymm33414; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm0[0,1,2,3,4],ymm3[5],ymm0[6,7]3415; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload3416; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload3417; AVX-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]3418; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]3419; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3420; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm03421; AVX-NEXT: vpermilps {{.*#+}} xmm4 = mem[2,1,3,3]3422; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm4, %ymm43423; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5],ymm4[6,7]3424; AVX-NEXT: vmovaps 32(%r9), %xmm43425; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm4[0,2,2,3]3426; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm5, %ymm43427; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm0[0],ymm4[1],ymm0[2,3,4,5,6],ymm4[7]3428; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3429; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3430; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]3431; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm2[1,2],ymm1[1,2],ymm2[5,6],ymm1[5,6]3432; AVX-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,2,3]3433; AVX-NEXT: vshufps {{.*#+}} ymm5 = ymm5[0,2,1,3,4,6,5,7]3434; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5],ymm5[6,7]3435; AVX-NEXT: vbroadcastss 52(%r8), %xmm83436; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm8[2,3],ymm5[4,5,6,7]3437; AVX-NEXT: vbroadcastss 52(%r9), %ymm83438; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm8[3],ymm5[4,5,6,7]3439; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[3,0],ymm2[3,0],ymm1[7,4],ymm2[7,4]3440; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]3441; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]3442; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]3443; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]3444; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]3445; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]3446; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]3447; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]3448; AVX-NEXT: vbroadcastss 64(%rcx), %xmm13449; AVX-NEXT: vbroadcastss 64(%rdx), %xmm23450; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]3451; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3452; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload3453; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]3454; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm83455; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm8[0,1],ymm1[2,3],ymm8[4,5,6,7]3456; AVX-NEXT: vinsertf128 $1, 64(%r8), %ymm2, %ymm23457; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5],ymm1[6,7]3458; AVX-NEXT: vbroadcastss 64(%r9), %ymm23459; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5],ymm1[6,7]3460; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3461; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload3462; AVX-NEXT: # xmm2 = xmm2[2],mem[2],xmm2[3],mem[3]3463; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]3464; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload3465; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm8, %ymm23466; AVX-NEXT: vpermilps {{.*#+}} xmm8 = mem[2,1,3,3]3467; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm8, %ymm83468; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm8[0,1],ymm2[2,3,4,5],ymm8[6,7]3469; AVX-NEXT: vmovaps 64(%r9), %xmm83470; AVX-NEXT: vshufps {{.*#+}} xmm9 = xmm8[0,2,2,3]3471; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm9, %ymm83472; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm2[0],ymm8[1],ymm2[2,3,4,5,6],ymm8[7]3473; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3474; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload3475; AVX-NEXT: # ymm2 = ymm2[2],mem[2],ymm2[3],mem[3],ymm2[6],mem[6],ymm2[7],mem[7]3476; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm7[1,2],ymm6[1,2],ymm7[5,6],ymm6[5,6]3477; AVX-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm9[2,3,2,3]3478; AVX-NEXT: vshufps {{.*#+}} ymm9 = ymm9[0,2,1,3,4,6,5,7]3479; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm2[4,5],ymm9[6,7]3480; AVX-NEXT: vbroadcastss 84(%r8), %xmm153481; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1],ymm15[2,3],ymm9[4,5,6,7]3482; AVX-NEXT: vbroadcastss 84(%r9), %ymm153483; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm15[3],ymm9[4,5,6,7]3484; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm6[3,0],ymm7[3,0],ymm6[7,4],ymm7[7,4]3485; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm6[2,0,2,3,6,4,6,7]3486; AVX-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm6[2,3]3487; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm6 = mem[0,1,0,1]3488; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm6[2,1,3,3,6,5,7,7]3489; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3,4,5],ymm6[6,7]3490; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm6 = mem[0,1,0,1]3491; AVX-NEXT: vshufps {{.*#+}} ymm6 = ymm6[0,2,2,3,4,6,6,7]3492; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm2[0],ymm6[1],ymm2[2,3,4,5,6],ymm6[7]3493; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload3494; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm2 # 16-byte Folded Reload3495; AVX-NEXT: # xmm2 = xmm2[0],mem[0],xmm2[1],mem[1]3496; AVX-NEXT: vshufps {{.*#+}} xmm7 = xmm11[0,0,0,0]3497; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm12[0,0,0,0]3498; AVX-NEXT: vunpcklps {{.*#+}} xmm7 = xmm15[0],xmm7[0],xmm15[1],xmm7[1]3499; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm153500; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm15[0,1],ymm7[2,3],ymm15[4,5,6,7]3501; AVX-NEXT: vinsertf128 $1, 96(%r8), %ymm2, %ymm23502; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm7[2,3],ymm2[4,5],ymm7[6,7]3503; AVX-NEXT: vbroadcastss 96(%r9), %ymm73504; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]3505; AVX-NEXT: vunpckhps {{.*#+}} xmm2 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]3506; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]3507; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3508; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm11, %ymm23509; AVX-NEXT: vpermilps {{.*#+}} xmm11 = mem[2,1,3,3]3510; AVX-NEXT: vinsertf128 $1, %xmm11, %ymm11, %ymm113511; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm11[0,1],ymm2[2,3,4,5],ymm11[6,7]3512; AVX-NEXT: vmovaps 96(%r9), %xmm113513; AVX-NEXT: vshufps {{.*#+}} xmm12 = xmm11[0,2,2,3]3514; AVX-NEXT: vinsertf128 $1, %xmm11, %ymm12, %ymm113515; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0],ymm11[1],ymm2[2,3,4,5,6],ymm11[7]3516; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3517; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload3518; AVX-NEXT: # ymm11 = ymm11[2],mem[2],ymm11[3],mem[3],ymm11[6],mem[6],ymm11[7],mem[7]3519; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm13[1,2],ymm10[1,2],ymm13[5,6],ymm10[5,6]3520; AVX-NEXT: vperm2f128 {{.*#+}} ymm12 = ymm12[2,3,2,3]3521; AVX-NEXT: vshufps {{.*#+}} ymm12 = ymm12[0,2,1,3,4,6,5,7]3522; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm11[4,5],ymm12[6,7]3523; AVX-NEXT: vbroadcastss 116(%r8), %xmm153524; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm15[2,3],ymm12[4,5,6,7]3525; AVX-NEXT: vbroadcastss 116(%r9), %ymm153526; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0,1,2],ymm15[3],ymm12[4,5,6,7]3527; AVX-NEXT: vshufps {{.*#+}} ymm10 = ymm10[3,0],ymm13[3,0],ymm10[7,4],ymm13[7,4]3528; AVX-NEXT: vshufps {{.*#+}} ymm10 = ymm10[2,0,2,3,6,4,6,7]3529; AVX-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm11[2,3],ymm10[2,3]3530; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm11 = mem[0,1,0,1]3531; AVX-NEXT: vshufps {{.*#+}} ymm11 = ymm11[2,1,3,3,6,5,7,7]3532; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3,4,5],ymm11[6,7]3533; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm11 = mem[0,1,0,1]3534; AVX-NEXT: vshufps {{.*#+}} ymm11 = ymm11[0,2,2,3,4,6,6,7]3535; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0],ymm11[1],ymm10[2,3,4,5,6],ymm11[7]3536; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax3537; AVX-NEXT: vmovaps %ymm10, 736(%rax)3538; AVX-NEXT: vmovaps %ymm12, 704(%rax)3539; AVX-NEXT: vmovaps %ymm2, 640(%rax)3540; AVX-NEXT: vmovaps %ymm7, 576(%rax)3541; AVX-NEXT: vmovaps %ymm6, 544(%rax)3542; AVX-NEXT: vmovaps %ymm9, 512(%rax)3543; AVX-NEXT: vmovaps %ymm8, 448(%rax)3544; AVX-NEXT: vmovaps %ymm1, 384(%rax)3545; AVX-NEXT: vmovaps %ymm0, 352(%rax)3546; AVX-NEXT: vmovaps %ymm5, 320(%rax)3547; AVX-NEXT: vmovaps %ymm4, 256(%rax)3548; AVX-NEXT: vmovaps %ymm3, 192(%rax)3549; AVX-NEXT: vmovaps %ymm14, 160(%rax)3550; AVX-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload3551; AVX-NEXT: vmovaps %ymm0, 128(%rax)3552; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3553; AVX-NEXT: vmovaps %ymm0, 64(%rax)3554; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3555; AVX-NEXT: vmovaps %ymm0, (%rax)3556; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3557; AVX-NEXT: vmovaps %ymm0, 672(%rax)3558; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3559; AVX-NEXT: vmovaps %ymm0, 608(%rax)3560; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3561; AVX-NEXT: vmovaps %ymm0, 480(%rax)3562; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3563; AVX-NEXT: vmovaps %ymm0, 416(%rax)3564; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3565; AVX-NEXT: vmovaps %ymm0, 288(%rax)3566; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3567; AVX-NEXT: vmovaps %ymm0, 224(%rax)3568; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3569; AVX-NEXT: vmovaps %ymm0, 96(%rax)3570; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3571; AVX-NEXT: vmovaps %ymm0, 32(%rax)3572; AVX-NEXT: addq $712, %rsp # imm = 0x2C83573; AVX-NEXT: vzeroupper3574; AVX-NEXT: retq3575;3576; AVX2-LABEL: store_i32_stride6_vf32:3577; AVX2: # %bb.0:3578; AVX2-NEXT: subq $904, %rsp # imm = 0x3883579; AVX2-NEXT: vmovdqa (%rsi), %xmm03580; AVX2-NEXT: vmovdqa 32(%rsi), %xmm23581; AVX2-NEXT: vmovdqa (%rdi), %xmm13582; AVX2-NEXT: vmovdqa 32(%rdi), %xmm33583; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm4 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]3584; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3585; AVX2-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43586; AVX2-NEXT: vmovdqa (%rcx), %xmm53587; AVX2-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3588; AVX2-NEXT: vmovdqa 32(%rcx), %xmm83589; AVX2-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3590; AVX2-NEXT: vmovdqa 64(%rcx), %xmm73591; AVX2-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3592; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]3593; AVX2-NEXT: vmovdqa (%rdx), %xmm63594; AVX2-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3595; AVX2-NEXT: vmovdqa 32(%rdx), %xmm93596; AVX2-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3597; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[1,2,2,3]3598; AVX2-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]3599; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,1,2,1]3600; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]3601; AVX2-NEXT: vmovdqa (%r8), %xmm113602; AVX2-NEXT: vmovdqa 32(%r8), %xmm123603; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm11[0],zero,xmm11[1],zero3604; AVX2-NEXT: vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3605; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]3606; AVX2-NEXT: vpbroadcastd 4(%r9), %ymm53607; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]3608; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3609; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm10 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]3610; AVX2-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3611; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm8[1,2,2,3]3612; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm9[1,2,2,3]3613; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]3614; AVX2-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm53615; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]3616; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]3617; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm12[0],zero,xmm12[1],zero3618; AVX2-NEXT: vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3619; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]3620; AVX2-NEXT: vpbroadcastd 36(%r9), %ymm53621; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]3622; AVX2-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3623; AVX2-NEXT: vmovdqa 64(%rdx), %xmm53624; AVX2-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3625; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]3626; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]3627; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]3628; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm4[0,1,2,1]3629; AVX2-NEXT: vmovdqa 64(%rsi), %xmm43630; AVX2-NEXT: vmovdqa 64(%rdi), %xmm53631; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]3632; AVX2-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3633; AVX2-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm73634; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]3635; AVX2-NEXT: vmovdqa 64(%r8), %xmm153636; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm7 = xmm15[0],zero,xmm15[1],zero3637; AVX2-NEXT: vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3638; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]3639; AVX2-NEXT: vpbroadcastd 68(%r9), %ymm73640; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2],ymm7[3],ymm6[4,5,6,7]3641; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3642; AVX2-NEXT: vmovdqa 96(%rcx), %xmm63643; AVX2-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3644; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[1,2,2,3]3645; AVX2-NEXT: vmovdqa 96(%rdx), %xmm73646; AVX2-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3647; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,2,2,3]3648; AVX2-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]3649; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm6[0,1,2,1]3650; AVX2-NEXT: vmovdqa 96(%rsi), %xmm143651; AVX2-NEXT: vmovdqa 96(%rdi), %xmm73652; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm6 = xmm7[2],xmm14[2],xmm7[3],xmm14[3]3653; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3654; AVX2-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm93655; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]3656; AVX2-NEXT: vmovdqa 96(%r8), %xmm63657; AVX2-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3658; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm9 = xmm6[0],zero,xmm6[1],zero3659; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]3660; AVX2-NEXT: vpbroadcastd 100(%r9), %ymm93661; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1,2],ymm9[3],ymm8[4,5,6,7]3662; AVX2-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3663; AVX2-NEXT: vpbroadcastd (%rcx), %xmm83664; AVX2-NEXT: vpbroadcastd (%rdx), %xmm93665; AVX2-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]3666; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]3667; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]3668; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm8[2,3],ymm0[4,5,6,7]3669; AVX2-NEXT: vpbroadcastq %xmm11, %ymm13670; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]3671; AVX2-NEXT: vmovdqa (%r9), %xmm13672; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3673; AVX2-NEXT: vpbroadcastd %xmm1, %ymm13674; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]3675; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3676; AVX2-NEXT: vmovdqa (%rdx), %ymm03677; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3678; AVX2-NEXT: vmovdqa (%rcx), %ymm63679; AVX2-NEXT: vpshufd {{.*#+}} ymm8 = ymm6[0,1,2,2,4,5,6,6]3680; AVX2-NEXT: vpshufd {{.*#+}} ymm9 = ymm0[1,1,2,3,5,5,6,7]3681; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2],ymm8[3],ymm9[4],ymm8[5],ymm9[6],ymm8[7]3682; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm8[2,1,2,3]3683; AVX2-NEXT: vmovdqa (%rdi), %ymm93684; AVX2-NEXT: vmovdqa (%rsi), %ymm83685; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm9[2],ymm8[2],ymm9[3],ymm8[3],ymm9[6],ymm8[6],ymm9[7],ymm8[7]3686; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3687; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm0[4,5],ymm10[6,7]3688; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm11 = mem[0],zero,mem[1],zero3689; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]3690; AVX2-NEXT: vpbroadcastd 20(%r9), %ymm113691; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5,6,7]3692; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3693; AVX2-NEXT: vpbroadcastd 32(%rcx), %xmm103694; AVX2-NEXT: vpbroadcastd 32(%rdx), %xmm113695; AVX2-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]3696; AVX2-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]3697; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,2,1]3698; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm10[2,3],ymm2[4,5,6,7]3699; AVX2-NEXT: vpbroadcastq %xmm12, %ymm33700; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]3701; AVX2-NEXT: vmovdqa 32(%r9), %xmm03702; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3703; AVX2-NEXT: vpbroadcastd %xmm0, %ymm33704; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]3705; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3706; AVX2-NEXT: vmovdqa 32(%rdx), %ymm33707; AVX2-NEXT: vmovdqa 32(%rcx), %ymm23708; AVX2-NEXT: vpshufd {{.*#+}} ymm10 = ymm2[0,1,2,2,4,5,6,6]3709; AVX2-NEXT: vpshufd {{.*#+}} ymm11 = ymm3[1,1,2,3,5,5,6,7]3710; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0],ymm10[1],ymm11[2],ymm10[3],ymm11[4],ymm10[5],ymm11[6],ymm10[7]3711; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm10[2,1,2,3]3712; AVX2-NEXT: vmovdqa 32(%rdi), %ymm113713; AVX2-NEXT: vmovdqa 32(%rsi), %ymm103714; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]3715; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3716; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]3717; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm13 = mem[0],zero,mem[1],zero3718; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6,7]3719; AVX2-NEXT: vpbroadcastd 52(%r9), %ymm133720; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5,6,7]3721; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3722; AVX2-NEXT: vpbroadcastd 64(%rcx), %xmm123723; AVX2-NEXT: vpbroadcastd 64(%rdx), %xmm133724; AVX2-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]3725; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]3726; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]3727; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm12[2,3],ymm4[4,5,6,7]3728; AVX2-NEXT: vpbroadcastq %xmm15, %ymm53729; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]3730; AVX2-NEXT: vmovdqa 64(%r9), %xmm03731; AVX2-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill3732; AVX2-NEXT: vpbroadcastd %xmm0, %ymm53733; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]3734; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3735; AVX2-NEXT: vmovdqa 64(%rdx), %ymm53736; AVX2-NEXT: vmovdqa 64(%rcx), %ymm43737; AVX2-NEXT: vpshufd {{.*#+}} ymm12 = ymm4[0,1,2,2,4,5,6,6]3738; AVX2-NEXT: vpshufd {{.*#+}} ymm13 = ymm5[1,1,2,3,5,5,6,7]3739; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0],ymm12[1],ymm13[2],ymm12[3],ymm13[4],ymm12[5],ymm13[6],ymm12[7]3740; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm12[2,1,2,3]3741; AVX2-NEXT: vmovdqa 64(%rdi), %ymm133742; AVX2-NEXT: vmovdqa 64(%rsi), %ymm123743; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]3744; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3745; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5],ymm0[6,7]3746; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero3747; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]3748; AVX2-NEXT: vpbroadcastd 84(%r9), %ymm153749; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3],ymm0[4,5,6,7]3750; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3751; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload3752; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3753; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]3754; AVX2-NEXT: vpunpckldq {{.*#+}} xmm7 = xmm7[0],xmm14[0],xmm7[1],xmm14[1]3755; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,1,2,1]3756; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3],ymm7[4,5,6,7]3757; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 16-byte Folded Reload3758; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5],ymm0[6,7]3759; AVX2-NEXT: vmovdqa 96(%r9), %xmm73760; AVX2-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3761; AVX2-NEXT: vpbroadcastd %xmm7, %ymm73762; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]3763; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3764; AVX2-NEXT: vmovdqa 96(%rdx), %ymm03765; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3766; AVX2-NEXT: vmovdqa 96(%rcx), %ymm73767; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm7[0,1,2,2,4,5,6,6]3768; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm0[1,1,2,3,5,5,6,7]3769; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]3770; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]3771; AVX2-NEXT: vmovdqa 96(%rdi), %ymm13772; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3773; AVX2-NEXT: vmovdqa 96(%rsi), %ymm03774; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3775; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]3776; AVX2-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3777; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]3778; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero3779; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]3780; AVX2-NEXT: vpbroadcastd 116(%r9), %ymm153781; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]3782; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3783; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload3784; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload3785; AVX2-NEXT: # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]3786; AVX2-NEXT: vshufps {{.*#+}} xmm14 = xmm14[2,3,2,3]3787; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload3788; AVX2-NEXT: vinsertf128 $1, %xmm14, %ymm15, %ymm143789; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3790; AVX2-NEXT: # xmm15 = mem[2,2,3,3]3791; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]3792; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5],ymm15[6,7]3793; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload3794; AVX2-NEXT: # xmm15 = mem[2,2,3,3]3795; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]3796; AVX2-NEXT: vblendps {{.*#+}} ymm15 = ymm14[0],ymm15[1],ymm14[2,3,4,5,6],ymm15[7]3797; AVX2-NEXT: vpunpckldq {{.*#+}} ymm8 = ymm9[0],ymm8[0],ymm9[1],ymm8[1],ymm9[4],ymm8[4],ymm9[5],ymm8[5]3798; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3799; AVX2-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm0[0],ymm6[0],ymm0[1],ymm6[1],ymm0[4],ymm6[4],ymm0[5],ymm6[5]3800; AVX2-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,2,2,2]3801; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm8[2,1,2,3]3802; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]3803; AVX2-NEXT: vmovdqa (%r8), %ymm93804; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]3805; AVX2-NEXT: vpbroadcastd 16(%r9), %ymm143806; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm14[5],ymm8[6,7]3807; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm0[2],ymm6[2],ymm0[3],ymm6[3],ymm0[6],ymm6[6],ymm0[7],ymm6[7]3808; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]3809; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload3810; AVX2-NEXT: # ymm1 = mem[2,3],ymm1[2,3]3811; AVX2-NEXT: vpshufd {{.*#+}} ymm6 = ymm9[2,1,3,3,6,5,7,7]3812; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,1,2,3]3813; AVX2-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1],ymm1[2,3,4,5],ymm6[6,7]3814; AVX2-NEXT: vpshufd {{.*#+}} ymm6 = mem[0,2,2,3,4,6,6,7]3815; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,1,2,3]3816; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0],ymm6[1],ymm1[2,3,4,5,6],ymm6[7]3817; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload3818; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload3819; AVX2-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]3820; AVX2-NEXT: vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]3821; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload3822; AVX2-NEXT: vinsertf128 $1, %xmm1, %ymm9, %ymm13823; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload3824; AVX2-NEXT: # xmm9 = mem[2,2,3,3]3825; AVX2-NEXT: vpermpd {{.*#+}} ymm9 = ymm9[0,1,2,1]3826; AVX2-NEXT: vblendps {{.*#+}} ymm1 = ymm9[0,1],ymm1[2,3,4,5],ymm9[6,7]3827; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload3828; AVX2-NEXT: # xmm9 = mem[2,2,3,3]3829; AVX2-NEXT: vpermpd {{.*#+}} ymm9 = ymm9[0,1,2,1]3830; AVX2-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1],ymm1[2,3,4,5,6],ymm9[7]3831; AVX2-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]3832; AVX2-NEXT: vpunpckldq {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]3833; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,2,2,2]3834; AVX2-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]3835; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1],ymm10[2,3],ymm9[4,5,6,7]3836; AVX2-NEXT: vmovdqa 32(%r8), %ymm103837; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5],ymm9[6,7]3838; AVX2-NEXT: vpbroadcastd 48(%r9), %ymm113839; AVX2-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm11[5],ymm9[6,7]3840; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]3841; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]3842; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload3843; AVX2-NEXT: # ymm2 = mem[2,3],ymm2[2,3]3844; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = ymm10[2,1,3,3,6,5,7,7]3845; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]3846; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5],ymm3[6,7]3847; AVX2-NEXT: vpshufd {{.*#+}} ymm3 = mem[0,2,2,3,4,6,6,7]3848; AVX2-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]3849; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]3850; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload3851; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload3852; AVX2-NEXT: # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]3853; AVX2-NEXT: vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]3854; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload3855; AVX2-NEXT: vinsertf128 $1, %xmm3, %ymm10, %ymm33856; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload3857; AVX2-NEXT: # xmm10 = mem[2,2,3,3]3858; AVX2-NEXT: vpermpd {{.*#+}} ymm10 = ymm10[0,1,2,1]3859; AVX2-NEXT: vblendps {{.*#+}} ymm3 = ymm10[0,1],ymm3[2,3,4,5],ymm10[6,7]3860; AVX2-NEXT: vpermilps $250, (%rsp), %xmm10 # 16-byte Folded Reload3861; AVX2-NEXT: # xmm10 = mem[2,2,3,3]3862; AVX2-NEXT: vpermpd {{.*#+}} ymm10 = ymm10[0,1,2,1]3863; AVX2-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0],ymm10[1],ymm3[2,3,4,5,6],ymm10[7]3864; AVX2-NEXT: vpunpckldq {{.*#+}} ymm10 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]3865; AVX2-NEXT: vpunpckldq {{.*#+}} ymm11 = ymm5[0],ymm4[0],ymm5[1],ymm4[1],ymm5[4],ymm4[4],ymm5[5],ymm4[5]3866; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,2,2,2]3867; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]3868; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]3869; AVX2-NEXT: vmovdqa 64(%r8), %ymm113870; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]3871; AVX2-NEXT: vpbroadcastd 80(%r9), %ymm123872; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5],ymm10[6,7]3873; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm4 = ymm5[2],ymm4[2],ymm5[3],ymm4[3],ymm5[6],ymm4[6],ymm5[7],ymm4[7]3874; AVX2-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]3875; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload3876; AVX2-NEXT: # ymm4 = mem[2,3],ymm4[2,3]3877; AVX2-NEXT: vpshufd {{.*#+}} ymm5 = ymm11[2,1,3,3,6,5,7,7]3878; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,1,2,3]3879; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3,4,5],ymm5[6,7]3880; AVX2-NEXT: vpshufd {{.*#+}} ymm5 = mem[0,2,2,3,4,6,6,7]3881; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,1,2,3]3882; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4,5,6],ymm5[7]3883; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload3884; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload3885; AVX2-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]3886; AVX2-NEXT: vshufps {{.*#+}} xmm5 = xmm5[2,3,2,3]3887; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3888; AVX2-NEXT: vinsertf128 $1, %xmm5, %ymm11, %ymm53889; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3890; AVX2-NEXT: # xmm11 = mem[2,2,3,3]3891; AVX2-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]3892; AVX2-NEXT: vblendps {{.*#+}} ymm5 = ymm11[0,1],ymm5[2,3,4,5],ymm11[6,7]3893; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload3894; AVX2-NEXT: # xmm11 = mem[2,2,3,3]3895; AVX2-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]3896; AVX2-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0],ymm11[1],ymm5[2,3,4,5,6],ymm11[7]3897; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3898; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload3899; AVX2-NEXT: # ymm11 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]3900; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3901; AVX2-NEXT: vpunpckldq {{.*#+}} ymm12 = ymm0[0],ymm7[0],ymm0[1],ymm7[1],ymm0[4],ymm7[4],ymm0[5],ymm7[5]3902; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm12[2,2,2,2]3903; AVX2-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,1,2,3]3904; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]3905; AVX2-NEXT: vmovdqa 96(%r8), %ymm123906; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]3907; AVX2-NEXT: vpbroadcastd 112(%r9), %ymm133908; AVX2-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]3909; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm7[2],ymm0[3],ymm7[3],ymm0[6],ymm7[6],ymm0[7],ymm7[7]3910; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]3911; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3912; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]3913; AVX2-NEXT: vpshufd {{.*#+}} ymm7 = ymm12[2,1,3,3,6,5,7,7]3914; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm7[2,1,2,3]3915; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3,4,5],ymm7[6,7]3916; AVX2-NEXT: vpshufd {{.*#+}} ymm7 = mem[0,2,2,3,4,6,6,7]3917; AVX2-NEXT: vpermq {{.*#+}} ymm7 = ymm7[2,1,2,3]3918; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2,3,4,5,6],ymm7[7]3919; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax3920; AVX2-NEXT: vmovdqa %ymm0, 736(%rax)3921; AVX2-NEXT: vmovdqa %ymm11, 672(%rax)3922; AVX2-NEXT: vmovaps %ymm5, 640(%rax)3923; AVX2-NEXT: vmovdqa %ymm4, 544(%rax)3924; AVX2-NEXT: vmovdqa %ymm10, 480(%rax)3925; AVX2-NEXT: vmovaps %ymm3, 448(%rax)3926; AVX2-NEXT: vmovdqa %ymm2, 352(%rax)3927; AVX2-NEXT: vmovdqa %ymm9, 288(%rax)3928; AVX2-NEXT: vmovaps %ymm1, 256(%rax)3929; AVX2-NEXT: vmovdqa %ymm6, 160(%rax)3930; AVX2-NEXT: vmovdqa %ymm8, 96(%rax)3931; AVX2-NEXT: vmovaps %ymm15, 64(%rax)3932; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3933; AVX2-NEXT: vmovaps %ymm0, 704(%rax)3934; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3935; AVX2-NEXT: vmovaps %ymm0, 576(%rax)3936; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3937; AVX2-NEXT: vmovaps %ymm0, 512(%rax)3938; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3939; AVX2-NEXT: vmovaps %ymm0, 384(%rax)3940; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3941; AVX2-NEXT: vmovaps %ymm0, 320(%rax)3942; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3943; AVX2-NEXT: vmovaps %ymm0, 192(%rax)3944; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3945; AVX2-NEXT: vmovaps %ymm0, 128(%rax)3946; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3947; AVX2-NEXT: vmovaps %ymm0, (%rax)3948; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3949; AVX2-NEXT: vmovaps %ymm0, 608(%rax)3950; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3951; AVX2-NEXT: vmovaps %ymm0, 416(%rax)3952; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3953; AVX2-NEXT: vmovaps %ymm0, 224(%rax)3954; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3955; AVX2-NEXT: vmovaps %ymm0, 32(%rax)3956; AVX2-NEXT: addq $904, %rsp # imm = 0x3883957; AVX2-NEXT: vzeroupper3958; AVX2-NEXT: retq3959;3960; AVX2-FP-LABEL: store_i32_stride6_vf32:3961; AVX2-FP: # %bb.0:3962; AVX2-FP-NEXT: subq $904, %rsp # imm = 0x3883963; AVX2-FP-NEXT: vmovdqa (%rsi), %xmm03964; AVX2-FP-NEXT: vmovdqa 32(%rsi), %xmm23965; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm13966; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm33967; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm4 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]3968; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3969; AVX2-FP-NEXT: vinserti128 $1, %xmm4, %ymm0, %ymm43970; AVX2-FP-NEXT: vmovdqa (%rcx), %xmm53971; AVX2-FP-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3972; AVX2-FP-NEXT: vmovdqa 32(%rcx), %xmm83973; AVX2-FP-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3974; AVX2-FP-NEXT: vmovdqa 64(%rcx), %xmm73975; AVX2-FP-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3976; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]3977; AVX2-FP-NEXT: vmovdqa (%rdx), %xmm63978; AVX2-FP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3979; AVX2-FP-NEXT: vmovdqa 32(%rdx), %xmm93980; AVX2-FP-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3981; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[1,2,2,3]3982; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]3983; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,1,2,1]3984; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]3985; AVX2-FP-NEXT: vmovdqa (%r8), %xmm113986; AVX2-FP-NEXT: vmovdqa 32(%r8), %xmm123987; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm11[0],zero,xmm11[1],zero3988; AVX2-FP-NEXT: vmovdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill3989; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]3990; AVX2-FP-NEXT: vpbroadcastd 4(%r9), %ymm53991; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]3992; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3993; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm10 = xmm3[2],xmm2[2],xmm3[3],xmm2[3]3994; AVX2-FP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3995; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm8[1,2,2,3]3996; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm9[1,2,2,3]3997; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]3998; AVX2-FP-NEXT: vinserti128 $1, %xmm10, %ymm0, %ymm53999; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]4000; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]4001; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm12[0],zero,xmm12[1],zero4002; AVX2-FP-NEXT: vmovdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4003; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]4004; AVX2-FP-NEXT: vpbroadcastd 36(%r9), %ymm54005; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]4006; AVX2-FP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4007; AVX2-FP-NEXT: vmovdqa 64(%rdx), %xmm54008; AVX2-FP-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4009; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]4010; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]4011; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]4012; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm4[0,1,2,1]4013; AVX2-FP-NEXT: vmovdqa 64(%rsi), %xmm44014; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm54015; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm7 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]4016; AVX2-FP-NEXT: vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4017; AVX2-FP-NEXT: vinserti128 $1, %xmm7, %ymm0, %ymm74018; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]4019; AVX2-FP-NEXT: vmovdqa 64(%r8), %xmm154020; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm7 = xmm15[0],zero,xmm15[1],zero4021; AVX2-FP-NEXT: vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4022; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]4023; AVX2-FP-NEXT: vpbroadcastd 68(%r9), %ymm74024; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2],ymm7[3],ymm6[4,5,6,7]4025; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4026; AVX2-FP-NEXT: vmovdqa 96(%rcx), %xmm64027; AVX2-FP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4028; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[1,2,2,3]4029; AVX2-FP-NEXT: vmovdqa 96(%rdx), %xmm74030; AVX2-FP-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4031; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm7 = xmm7[1,2,2,3]4032; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]4033; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm6[0,1,2,1]4034; AVX2-FP-NEXT: vmovdqa 96(%rsi), %xmm144035; AVX2-FP-NEXT: vmovdqa 96(%rdi), %xmm74036; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm6 = xmm7[2],xmm14[2],xmm7[3],xmm14[3]4037; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4038; AVX2-FP-NEXT: vinserti128 $1, %xmm6, %ymm0, %ymm94039; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]4040; AVX2-FP-NEXT: vmovdqa 96(%r8), %xmm64041; AVX2-FP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4042; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm9 = xmm6[0],zero,xmm6[1],zero4043; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]4044; AVX2-FP-NEXT: vpbroadcastd 100(%r9), %ymm94045; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm8[0,1,2],ymm9[3],ymm8[4,5,6,7]4046; AVX2-FP-NEXT: vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4047; AVX2-FP-NEXT: vpbroadcastd (%rcx), %xmm84048; AVX2-FP-NEXT: vpbroadcastd (%rdx), %xmm94049; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]4050; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]4051; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]4052; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm8[2,3],ymm0[4,5,6,7]4053; AVX2-FP-NEXT: vpbroadcastq %xmm11, %ymm14054; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]4055; AVX2-FP-NEXT: vmovdqa (%r9), %xmm14056; AVX2-FP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4057; AVX2-FP-NEXT: vpbroadcastd %xmm1, %ymm14058; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]4059; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4060; AVX2-FP-NEXT: vmovdqa (%rdx), %ymm04061; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4062; AVX2-FP-NEXT: vmovdqa (%rcx), %ymm64063; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm8 = ymm6[0,1,2,2,4,5,6,6]4064; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm9 = ymm0[1,1,2,3,5,5,6,7]4065; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm9[0],ymm8[1],ymm9[2],ymm8[3],ymm9[4],ymm8[5],ymm9[6],ymm8[7]4066; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm8[2,1,2,3]4067; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm94068; AVX2-FP-NEXT: vmovdqa (%rsi), %ymm84069; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm9[2],ymm8[2],ymm9[3],ymm8[3],ymm9[6],ymm8[6],ymm9[7],ymm8[7]4070; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4071; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm0[4,5],ymm10[6,7]4072; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm11 = mem[0],zero,mem[1],zero4073; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]4074; AVX2-FP-NEXT: vpbroadcastd 20(%r9), %ymm114075; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5,6,7]4076; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4077; AVX2-FP-NEXT: vpbroadcastd 32(%rcx), %xmm104078; AVX2-FP-NEXT: vpbroadcastd 32(%rdx), %xmm114079; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]4080; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]4081; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,2,1]4082; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm10[2,3],ymm2[4,5,6,7]4083; AVX2-FP-NEXT: vpbroadcastq %xmm12, %ymm34084; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]4085; AVX2-FP-NEXT: vmovdqa 32(%r9), %xmm04086; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4087; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm34088; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]4089; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4090; AVX2-FP-NEXT: vmovdqa 32(%rdx), %ymm34091; AVX2-FP-NEXT: vmovdqa 32(%rcx), %ymm24092; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm10 = ymm2[0,1,2,2,4,5,6,6]4093; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm11 = ymm3[1,1,2,3,5,5,6,7]4094; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm11[0],ymm10[1],ymm11[2],ymm10[3],ymm11[4],ymm10[5],ymm11[6],ymm10[7]4095; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm10[2,1,2,3]4096; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm114097; AVX2-FP-NEXT: vmovdqa 32(%rsi), %ymm104098; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]4099; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4100; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]4101; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm13 = mem[0],zero,mem[1],zero4102; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6,7]4103; AVX2-FP-NEXT: vpbroadcastd 52(%r9), %ymm134104; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5,6,7]4105; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4106; AVX2-FP-NEXT: vpbroadcastd 64(%rcx), %xmm124107; AVX2-FP-NEXT: vpbroadcastd 64(%rdx), %xmm134108; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]4109; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]4110; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]4111; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm12[2,3],ymm4[4,5,6,7]4112; AVX2-FP-NEXT: vpbroadcastq %xmm15, %ymm54113; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]4114; AVX2-FP-NEXT: vmovdqa 64(%r9), %xmm04115; AVX2-FP-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill4116; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm54117; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]4118; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4119; AVX2-FP-NEXT: vmovdqa 64(%rdx), %ymm54120; AVX2-FP-NEXT: vmovdqa 64(%rcx), %ymm44121; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm12 = ymm4[0,1,2,2,4,5,6,6]4122; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm13 = ymm5[1,1,2,3,5,5,6,7]4123; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0],ymm12[1],ymm13[2],ymm12[3],ymm13[4],ymm12[5],ymm13[6],ymm12[7]4124; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm12[2,1,2,3]4125; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm134126; AVX2-FP-NEXT: vmovdqa 64(%rsi), %ymm124127; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]4128; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4129; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5],ymm0[6,7]4130; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero4131; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]4132; AVX2-FP-NEXT: vpbroadcastd 84(%r9), %ymm154133; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3],ymm0[4,5,6,7]4134; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4135; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload4136; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload4137; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]4138; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm7 = xmm7[0],xmm14[0],xmm7[1],xmm14[1]4139; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[0,1,2,1]4140; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3],ymm7[4,5,6,7]4141; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 16-byte Folded Reload4142; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm7[4,5],ymm0[6,7]4143; AVX2-FP-NEXT: vmovdqa 96(%r9), %xmm74144; AVX2-FP-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4145; AVX2-FP-NEXT: vpbroadcastd %xmm7, %ymm74146; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm7[5],ymm0[6,7]4147; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4148; AVX2-FP-NEXT: vmovdqa 96(%rdx), %ymm04149; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4150; AVX2-FP-NEXT: vmovdqa 96(%rcx), %ymm74151; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm7[0,1,2,2,4,5,6,6]4152; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm0[1,1,2,3,5,5,6,7]4153; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]4154; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]4155; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm14156; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4157; AVX2-FP-NEXT: vmovdqa 96(%rsi), %ymm04158; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4159; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm1[2],ymm0[2],ymm1[3],ymm0[3],ymm1[6],ymm0[6],ymm1[7],ymm0[7]4160; AVX2-FP-NEXT: vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4161; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]4162; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero4163; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]4164; AVX2-FP-NEXT: vpbroadcastd 116(%r9), %ymm154165; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]4166; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4167; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload4168; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm14 # 16-byte Folded Reload4169; AVX2-FP-NEXT: # xmm14 = xmm14[2],mem[2],xmm14[3],mem[3]4170; AVX2-FP-NEXT: vshufps {{.*#+}} xmm14 = xmm14[2,3,2,3]4171; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload4172; AVX2-FP-NEXT: vinsertf128 $1, %xmm14, %ymm15, %ymm144173; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload4174; AVX2-FP-NEXT: # xmm15 = mem[2,2,3,3]4175; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]4176; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5],ymm15[6,7]4177; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload4178; AVX2-FP-NEXT: # xmm15 = mem[2,2,3,3]4179; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]4180; AVX2-FP-NEXT: vblendps {{.*#+}} ymm15 = ymm14[0],ymm15[1],ymm14[2,3,4,5,6],ymm15[7]4181; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm8 = ymm9[0],ymm8[0],ymm9[1],ymm8[1],ymm9[4],ymm8[4],ymm9[5],ymm8[5]4182; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4183; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm0[0],ymm6[0],ymm0[1],ymm6[1],ymm0[4],ymm6[4],ymm0[5],ymm6[5]4184; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,2,2,2]4185; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[2,1,2,3]4186; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]4187; AVX2-FP-NEXT: vmovdqa (%r8), %ymm94188; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]4189; AVX2-FP-NEXT: vpbroadcastd 16(%r9), %ymm144190; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4],ymm14[5],ymm8[6,7]4191; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm0[2],ymm6[2],ymm0[3],ymm6[3],ymm0[6],ymm6[6],ymm0[7],ymm6[7]4192; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,3,2,3,6,7,6,7]4193; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload4194; AVX2-FP-NEXT: # ymm1 = mem[2,3],ymm1[2,3]4195; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm6 = ymm9[2,1,3,3,6,5,7,7]4196; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,1,2,3]4197; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0,1],ymm1[2,3,4,5],ymm6[6,7]4198; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm6 = mem[0,2,2,3,4,6,6,7]4199; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,1,2,3]4200; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm1[0],ymm6[1],ymm1[2,3,4,5,6],ymm6[7]4201; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload4202; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload4203; AVX2-FP-NEXT: # xmm1 = xmm1[2],mem[2],xmm1[3],mem[3]4204; AVX2-FP-NEXT: vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]4205; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload4206; AVX2-FP-NEXT: vinsertf128 $1, %xmm1, %ymm9, %ymm14207; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload4208; AVX2-FP-NEXT: # xmm9 = mem[2,2,3,3]4209; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm9 = ymm9[0,1,2,1]4210; AVX2-FP-NEXT: vblendps {{.*#+}} ymm1 = ymm9[0,1],ymm1[2,3,4,5],ymm9[6,7]4211; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload4212; AVX2-FP-NEXT: # xmm9 = mem[2,2,3,3]4213; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm9 = ymm9[0,1,2,1]4214; AVX2-FP-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1],ymm1[2,3,4,5,6],ymm9[7]4215; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]4216; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm10 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]4217; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,2,2,2]4218; AVX2-FP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,1,2,3]4219; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1],ymm10[2,3],ymm9[4,5,6,7]4220; AVX2-FP-NEXT: vmovdqa 32(%r8), %ymm104221; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5],ymm9[6,7]4222; AVX2-FP-NEXT: vpbroadcastd 48(%r9), %ymm114223; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4],ymm11[5],ymm9[6,7]4224; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]4225; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]4226; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4227; AVX2-FP-NEXT: # ymm2 = mem[2,3],ymm2[2,3]4228; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm3 = ymm10[2,1,3,3,6,5,7,7]4229; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]4230; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5],ymm3[6,7]4231; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm3 = mem[0,2,2,3,4,6,6,7]4232; AVX2-FP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]4233; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]4234; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload4235; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload4236; AVX2-FP-NEXT: # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]4237; AVX2-FP-NEXT: vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]4238; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4239; AVX2-FP-NEXT: vinsertf128 $1, %xmm3, %ymm10, %ymm34240; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload4241; AVX2-FP-NEXT: # xmm10 = mem[2,2,3,3]4242; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm10 = ymm10[0,1,2,1]4243; AVX2-FP-NEXT: vblendps {{.*#+}} ymm3 = ymm10[0,1],ymm3[2,3,4,5],ymm10[6,7]4244; AVX2-FP-NEXT: vpermilps $250, (%rsp), %xmm10 # 16-byte Folded Reload4245; AVX2-FP-NEXT: # xmm10 = mem[2,2,3,3]4246; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm10 = ymm10[0,1,2,1]4247; AVX2-FP-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0],ymm10[1],ymm3[2,3,4,5,6],ymm10[7]4248; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm10 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]4249; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm11 = ymm5[0],ymm4[0],ymm5[1],ymm4[1],ymm5[4],ymm4[4],ymm5[5],ymm4[5]4250; AVX2-FP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,2,2,2]4251; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]4252; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]4253; AVX2-FP-NEXT: vmovdqa 64(%r8), %ymm114254; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]4255; AVX2-FP-NEXT: vpbroadcastd 80(%r9), %ymm124256; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm12[5],ymm10[6,7]4257; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm4 = ymm5[2],ymm4[2],ymm5[3],ymm4[3],ymm5[6],ymm4[6],ymm5[7],ymm4[7]4258; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]4259; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload4260; AVX2-FP-NEXT: # ymm4 = mem[2,3],ymm4[2,3]4261; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm5 = ymm11[2,1,3,3,6,5,7,7]4262; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,1,2,3]4263; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3,4,5],ymm5[6,7]4264; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm5 = mem[0,2,2,3,4,6,6,7]4265; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,1,2,3]4266; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4,5,6],ymm5[7]4267; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4268; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5, %xmm5 # 16-byte Folded Reload4269; AVX2-FP-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]4270; AVX2-FP-NEXT: vshufps {{.*#+}} xmm5 = xmm5[2,3,2,3]4271; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload4272; AVX2-FP-NEXT: vinsertf128 $1, %xmm5, %ymm11, %ymm54273; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload4274; AVX2-FP-NEXT: # xmm11 = mem[2,2,3,3]4275; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]4276; AVX2-FP-NEXT: vblendps {{.*#+}} ymm5 = ymm11[0,1],ymm5[2,3,4,5],ymm11[6,7]4277; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload4278; AVX2-FP-NEXT: # xmm11 = mem[2,2,3,3]4279; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]4280; AVX2-FP-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0],ymm11[1],ymm5[2,3,4,5,6],ymm11[7]4281; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4282; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload4283; AVX2-FP-NEXT: # ymm11 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]4284; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4285; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm12 = ymm0[0],ymm7[0],ymm0[1],ymm7[1],ymm0[4],ymm7[4],ymm0[5],ymm7[5]4286; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm12[2,2,2,2]4287; AVX2-FP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,1,2,3]4288; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]4289; AVX2-FP-NEXT: vmovdqa 96(%r8), %ymm124290; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]4291; AVX2-FP-NEXT: vpbroadcastd 112(%r9), %ymm134292; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]4293; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm7[2],ymm0[3],ymm7[3],ymm0[6],ymm7[6],ymm0[7],ymm7[7]4294; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]4295; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload4296; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]4297; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm7 = ymm12[2,1,3,3,6,5,7,7]4298; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[2,1,2,3]4299; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3,4,5],ymm7[6,7]4300; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm7 = mem[0,2,2,3,4,6,6,7]4301; AVX2-FP-NEXT: vpermq {{.*#+}} ymm7 = ymm7[2,1,2,3]4302; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2,3,4,5,6],ymm7[7]4303; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax4304; AVX2-FP-NEXT: vmovdqa %ymm0, 736(%rax)4305; AVX2-FP-NEXT: vmovdqa %ymm11, 672(%rax)4306; AVX2-FP-NEXT: vmovaps %ymm5, 640(%rax)4307; AVX2-FP-NEXT: vmovdqa %ymm4, 544(%rax)4308; AVX2-FP-NEXT: vmovdqa %ymm10, 480(%rax)4309; AVX2-FP-NEXT: vmovaps %ymm3, 448(%rax)4310; AVX2-FP-NEXT: vmovdqa %ymm2, 352(%rax)4311; AVX2-FP-NEXT: vmovdqa %ymm9, 288(%rax)4312; AVX2-FP-NEXT: vmovaps %ymm1, 256(%rax)4313; AVX2-FP-NEXT: vmovdqa %ymm6, 160(%rax)4314; AVX2-FP-NEXT: vmovdqa %ymm8, 96(%rax)4315; AVX2-FP-NEXT: vmovaps %ymm15, 64(%rax)4316; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4317; AVX2-FP-NEXT: vmovaps %ymm0, 704(%rax)4318; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4319; AVX2-FP-NEXT: vmovaps %ymm0, 576(%rax)4320; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4321; AVX2-FP-NEXT: vmovaps %ymm0, 512(%rax)4322; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4323; AVX2-FP-NEXT: vmovaps %ymm0, 384(%rax)4324; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4325; AVX2-FP-NEXT: vmovaps %ymm0, 320(%rax)4326; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4327; AVX2-FP-NEXT: vmovaps %ymm0, 192(%rax)4328; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4329; AVX2-FP-NEXT: vmovaps %ymm0, 128(%rax)4330; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4331; AVX2-FP-NEXT: vmovaps %ymm0, (%rax)4332; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4333; AVX2-FP-NEXT: vmovaps %ymm0, 608(%rax)4334; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4335; AVX2-FP-NEXT: vmovaps %ymm0, 416(%rax)4336; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4337; AVX2-FP-NEXT: vmovaps %ymm0, 224(%rax)4338; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4339; AVX2-FP-NEXT: vmovaps %ymm0, 32(%rax)4340; AVX2-FP-NEXT: addq $904, %rsp # imm = 0x3884341; AVX2-FP-NEXT: vzeroupper4342; AVX2-FP-NEXT: retq4343;4344; AVX2-FCP-LABEL: store_i32_stride6_vf32:4345; AVX2-FCP: # %bb.0:4346; AVX2-FCP-NEXT: subq $872, %rsp # imm = 0x3684347; AVX2-FCP-NEXT: vmovdqa (%rsi), %xmm24348; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %xmm44349; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm74350; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm14351; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm7[2],xmm2[2],xmm7[3],xmm2[3]4352; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4353; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm04354; AVX2-FCP-NEXT: vmovdqa (%rcx), %xmm34355; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4356; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %xmm94357; AVX2-FCP-NEXT: vmovdqa %xmm9, (%rsp) # 16-byte Spill4358; AVX2-FCP-NEXT: vmovdqa 64(%rcx), %xmm64359; AVX2-FCP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4360; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]4361; AVX2-FCP-NEXT: vmovdqa (%rdx), %xmm54362; AVX2-FCP-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4363; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %xmm104364; AVX2-FCP-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4365; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[1,2,2,3]4366; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]4367; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]4368; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5],ymm3[6,7]4369; AVX2-FCP-NEXT: vmovdqa (%r8), %xmm84370; AVX2-FCP-NEXT: vmovdqa 32(%r8), %xmm134371; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm8[0],zero,xmm8[1],zero4372; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]4373; AVX2-FCP-NEXT: vpbroadcastd 4(%r9), %ymm34374; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]4375; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4376; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm5 = xmm1[2],xmm4[2],xmm1[3],xmm4[3]4377; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4378; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm9[1,2,2,3]4379; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm10[1,2,2,3]4380; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]4381; AVX2-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm34382; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]4383; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]4384; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm13[0],zero,xmm13[1],zero4385; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]4386; AVX2-FCP-NEXT: vpbroadcastd 36(%r9), %ymm34387; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]4388; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4389; AVX2-FCP-NEXT: vmovdqa 64(%rdx), %xmm34390; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4391; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm6[1,2,2,3]4392; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]4393; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]4394; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]4395; AVX2-FCP-NEXT: vmovdqa 64(%rsi), %xmm64396; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm94397; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm3 = xmm9[2],xmm6[2],xmm9[3],xmm6[3]4398; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4399; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm0, %ymm34400; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]4401; AVX2-FCP-NEXT: vmovdqa 64(%r8), %xmm144402; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm3 = xmm14[0],zero,xmm14[1],zero4403; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3],ymm0[4,5,6,7]4404; AVX2-FCP-NEXT: vpbroadcastd 68(%r9), %ymm34405; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3],ymm0[4,5,6,7]4406; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4407; AVX2-FCP-NEXT: vmovdqa 96(%rcx), %xmm154408; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm15[1,2,2,3]4409; AVX2-FCP-NEXT: vmovdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4410; AVX2-FCP-NEXT: vmovdqa 96(%rdx), %xmm34411; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4412; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]4413; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]4414; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm10 = ymm0[0,1,2,1]4415; AVX2-FCP-NEXT: vmovdqa 96(%rsi), %xmm34416; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %xmm04417; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm5 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]4418; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4419; AVX2-FCP-NEXT: vinserti128 $1, %xmm5, %ymm0, %ymm114420; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]4421; AVX2-FCP-NEXT: vmovdqa 96(%r8), %xmm114422; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm12 = xmm11[0],zero,xmm11[1],zero4423; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm12[2,3],ymm10[4,5,6,7]4424; AVX2-FCP-NEXT: vpbroadcastd 100(%r9), %ymm124425; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm10[0,1,2],ymm12[3],ymm10[4,5,6,7]4426; AVX2-FCP-NEXT: vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4427; AVX2-FCP-NEXT: vpbroadcastd (%rcx), %xmm104428; AVX2-FCP-NEXT: vpbroadcastd (%rdx), %xmm124429; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]4430; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm2 = xmm7[0],xmm2[0],xmm7[1],xmm2[1]4431; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[0,1,2,1]4432; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm10[2,3],ymm2[4,5,6,7]4433; AVX2-FCP-NEXT: vpbroadcastq %xmm8, %ymm74434; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5],ymm2[6,7]4435; AVX2-FCP-NEXT: vpbroadcastd (%r9), %ymm74436; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm7[5],ymm2[6,7]4437; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4438; AVX2-FCP-NEXT: vmovdqa (%rdx), %ymm74439; AVX2-FCP-NEXT: vmovdqa (%rcx), %ymm54440; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm8 = ymm5[0,1,2,2,4,5,6,6]4441; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm10 = ymm7[1,1,2,3,5,5,6,7]4442; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm10[0],ymm8[1],ymm10[2],ymm8[3],ymm10[4],ymm8[5],ymm10[6],ymm8[7]4443; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[2,1,2,3]4444; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm24445; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4446; AVX2-FCP-NEXT: vmovdqa (%rsi), %ymm104447; AVX2-FCP-NEXT: vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4448; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm2[2],ymm10[2],ymm2[3],ymm10[3],ymm2[6],ymm10[6],ymm2[7],ymm10[7]4449; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4450; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm2[4,5],ymm8[6,7]4451; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm12 = mem[0],zero,mem[1],zero4452; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm12[2,3],ymm8[4,5,6,7]4453; AVX2-FCP-NEXT: vpbroadcastd 20(%r9), %ymm124454; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm8[0,1,2],ymm12[3],ymm8[4,5,6,7]4455; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4456; AVX2-FCP-NEXT: vpbroadcastd 32(%rcx), %xmm84457; AVX2-FCP-NEXT: vpbroadcastd 32(%rdx), %xmm124458; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm12[0],xmm8[0],xmm12[1],xmm8[1]4459; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm1[0],xmm4[0],xmm1[1],xmm4[1]4460; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]4461; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm8[2,3],ymm1[4,5,6,7]4462; AVX2-FCP-NEXT: vpbroadcastq %xmm13, %ymm44463; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5],ymm1[6,7]4464; AVX2-FCP-NEXT: vpbroadcastd 32(%r9), %ymm44465; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm4[5],ymm1[6,7]4466; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4467; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %ymm104468; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %ymm84469; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm8[0,1,2,2,4,5,6,6]4470; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm10[1,1,2,3,5,5,6,7]4471; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0],ymm1[1],ymm4[2],ymm1[3],ymm4[4],ymm1[5],ymm4[6],ymm1[7]4472; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]4473; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm24474; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4475; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %ymm44476; AVX2-FCP-NEXT: vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4477; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm2[2],ymm4[2],ymm2[3],ymm4[3],ymm2[6],ymm4[6],ymm2[7],ymm4[7]4478; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4479; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]4480; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero4481; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm4[2,3],ymm1[4,5,6,7]4482; AVX2-FCP-NEXT: vpbroadcastd 52(%r9), %ymm44483; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm4[3],ymm1[4,5,6,7]4484; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4485; AVX2-FCP-NEXT: vpbroadcastd 64(%rcx), %xmm14486; AVX2-FCP-NEXT: vpbroadcastd 64(%rdx), %xmm44487; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]4488; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm9[0],xmm6[0],xmm9[1],xmm6[1]4489; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]4490; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5,6,7]4491; AVX2-FCP-NEXT: vpbroadcastq %xmm14, %ymm44492; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5],ymm1[6,7]4493; AVX2-FCP-NEXT: vpbroadcastd 64(%r9), %ymm44494; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm4[5],ymm1[6,7]4495; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4496; AVX2-FCP-NEXT: vmovdqa 64(%rdx), %ymm64497; AVX2-FCP-NEXT: vmovdqa 64(%rcx), %ymm44498; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm4[0,1,2,2,4,5,6,6]4499; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm9 = ymm6[1,1,2,3,5,5,6,7]4500; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm9[0],ymm1[1],ymm9[2],ymm1[3],ymm9[4],ymm1[5],ymm9[6],ymm1[7]4501; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]4502; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm24503; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4504; AVX2-FCP-NEXT: vmovdqa 64(%rsi), %ymm124505; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm2[2],ymm12[2],ymm2[3],ymm12[3],ymm2[6],ymm12[6],ymm2[7],ymm12[7]4506; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4507; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]4508; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm9 = mem[0],zero,mem[1],zero4509; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3],ymm1[4,5,6,7]4510; AVX2-FCP-NEXT: vpbroadcastd 84(%r9), %ymm94511; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3],ymm1[4,5,6,7]4512; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4513; AVX2-FCP-NEXT: vpbroadcastd %xmm15, %xmm14514; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload4515; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm9[0],xmm1[0],xmm9[1],xmm1[1]4516; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]4517; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[0,1,2,1]4518; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]4519; AVX2-FCP-NEXT: vpbroadcastq %xmm11, %ymm14520; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]4521; AVX2-FCP-NEXT: vpbroadcastd 96(%r9), %ymm14522; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]4523; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4524; AVX2-FCP-NEXT: vmovdqa 96(%rdx), %ymm34525; AVX2-FCP-NEXT: vmovdqa 96(%rcx), %ymm24526; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm2[0,1,2,2,4,5,6,6]4527; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm9 = ymm3[1,1,2,3,5,5,6,7]4528; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm9[0],ymm0[1],ymm9[2],ymm0[3],ymm9[4],ymm0[5],ymm9[6],ymm0[7]4529; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]4530; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm14531; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4532; AVX2-FCP-NEXT: vmovdqa 96(%rsi), %ymm94533; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm9[2],ymm1[3],ymm9[3],ymm1[6],ymm9[6],ymm1[7],ymm9[7]4534; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4535; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]4536; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm13 = mem[0],zero,mem[1],zero4537; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm13[2,3],ymm0[4,5,6,7]4538; AVX2-FCP-NEXT: vpbroadcastd 116(%r9), %ymm134539; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm13[3],ymm0[4,5,6,7]4540; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4541; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4542; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload4543; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]4544; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]4545; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload4546; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm134547; AVX2-FCP-NEXT: vmovdqa (%r8), %ymm04548; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [2,2,3,3,2,2,3,3]4549; AVX2-FCP-NEXT: # ymm1 = mem[0,1,0,1]4550; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm144551; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5],ymm14[6,7]4552; AVX2-FCP-NEXT: vmovdqa (%r9), %ymm144553; AVX2-FCP-NEXT: vpermd %ymm14, %ymm1, %ymm114554; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm13[0],ymm11[1],ymm13[2,3,4,5,6],ymm11[7]4555; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4556; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload4557; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload4558; AVX2-FCP-NEXT: # ymm11 = ymm11[0],mem[0],ymm11[1],mem[1],ymm11[4],mem[4],ymm11[5],mem[5]4559; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm13 = ymm7[0],ymm5[0],ymm7[1],ymm5[1],ymm7[4],ymm5[4],ymm7[5],ymm5[5]4560; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,2,2,2]4561; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,1,2,3]4562; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1],ymm13[2,3],ymm11[4,5,6,7]4563; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]4564; AVX2-FCP-NEXT: vpbroadcastd 16(%r9), %ymm134565; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4],ymm13[5],ymm11[6,7]4566; AVX2-FCP-NEXT: vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4567; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]4568; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,2,3,6,7,6,7]4569; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4570; AVX2-FCP-NEXT: # ymm5 = mem[2,3],ymm5[2,3]4571; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm7 = [6,5,3,3,6,5,7,7]4572; AVX2-FCP-NEXT: vpermd %ymm0, %ymm7, %ymm04573; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3,4,5],ymm0[6,7]4574; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm15 = [4,6,2,3,4,6,6,7]4575; AVX2-FCP-NEXT: vpermd %ymm14, %ymm15, %ymm54576; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4,5,6],ymm5[7]4577; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload4578; AVX2-FCP-NEXT: vpunpckhdq (%rsp), %xmm5, %xmm5 # 16-byte Folded Reload4579; AVX2-FCP-NEXT: # xmm5 = xmm5[2],mem[2],xmm5[3],mem[3]4580; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm5[2,3,2,3]4581; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload4582; AVX2-FCP-NEXT: vinserti128 $1, %xmm5, %ymm11, %ymm54583; AVX2-FCP-NEXT: vmovdqa 32(%r8), %ymm114584; AVX2-FCP-NEXT: vpermd %ymm11, %ymm1, %ymm134585; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm13[0,1],ymm5[2,3,4,5],ymm13[6,7]4586; AVX2-FCP-NEXT: vmovdqa 32(%r9), %ymm144587; AVX2-FCP-NEXT: vpermd %ymm14, %ymm1, %ymm134588; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0],ymm13[1],ymm5[2,3,4,5,6],ymm13[7]4589; AVX2-FCP-NEXT: vmovdqu %ymm5, (%rsp) # 32-byte Spill4590; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload4591; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4592; AVX2-FCP-NEXT: # ymm5 = ymm5[0],mem[0],ymm5[1],mem[1],ymm5[4],mem[4],ymm5[5],mem[5]4593; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm13 = ymm10[0],ymm8[0],ymm10[1],ymm8[1],ymm10[4],ymm8[4],ymm10[5],ymm8[5]4594; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,2,2,2]4595; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[2,1,2,3]4596; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1],ymm13[2,3],ymm5[4,5,6,7]4597; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm11[4,5],ymm5[6,7]4598; AVX2-FCP-NEXT: vpbroadcastd 48(%r9), %ymm134599; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm13 = ymm5[0,1,2,3,4],ymm13[5],ymm5[6,7]4600; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm5 = ymm10[2],ymm8[2],ymm10[3],ymm8[3],ymm10[6],ymm8[6],ymm10[7],ymm8[7]4601; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm5 = ymm5[2,3,2,3,6,7,6,7]4602; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload4603; AVX2-FCP-NEXT: # ymm5 = mem[2,3],ymm5[2,3]4604; AVX2-FCP-NEXT: vpermd %ymm11, %ymm7, %ymm84605; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm8[0,1],ymm5[2,3,4,5],ymm8[6,7]4606; AVX2-FCP-NEXT: vpermd %ymm14, %ymm15, %ymm84607; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm5[0],ymm8[1],ymm5[2,3,4,5,6],ymm8[7]4608; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload4609; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm8 # 16-byte Folded Reload4610; AVX2-FCP-NEXT: # xmm8 = xmm8[2],mem[2],xmm8[3],mem[3]4611; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm8 = xmm8[2,3,2,3]4612; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4613; AVX2-FCP-NEXT: vinserti128 $1, %xmm8, %ymm10, %ymm84614; AVX2-FCP-NEXT: vmovdqa 64(%r8), %ymm104615; AVX2-FCP-NEXT: vpermd %ymm10, %ymm1, %ymm114616; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm11[0,1],ymm8[2,3,4,5],ymm11[6,7]4617; AVX2-FCP-NEXT: vmovdqa 64(%r9), %ymm114618; AVX2-FCP-NEXT: vpermd %ymm11, %ymm1, %ymm144619; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0],ymm14[1],ymm8[2,3,4,5,6],ymm14[7]4620; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload4621; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm12 = ymm14[0],ymm12[0],ymm14[1],ymm12[1],ymm14[4],ymm12[4],ymm14[5],ymm12[5]4622; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm14 = ymm6[0],ymm4[0],ymm6[1],ymm4[1],ymm6[4],ymm4[4],ymm6[5],ymm4[5]4623; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,2,2,2]4624; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm12 = ymm12[2,1,2,3]4625; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm14[2,3],ymm12[4,5,6,7]4626; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm10[4,5],ymm12[6,7]4627; AVX2-FCP-NEXT: vpbroadcastd 80(%r9), %ymm144628; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm14[5],ymm12[6,7]4629; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm4 = ymm6[2],ymm4[2],ymm6[3],ymm4[3],ymm6[6],ymm4[6],ymm6[7],ymm4[7]4630; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm4[2,3,2,3,6,7,6,7]4631; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload4632; AVX2-FCP-NEXT: # ymm4 = mem[2,3],ymm4[2,3]4633; AVX2-FCP-NEXT: vpermd %ymm10, %ymm7, %ymm64634; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm6[0,1],ymm4[2,3,4,5],ymm6[6,7]4635; AVX2-FCP-NEXT: vpermd %ymm11, %ymm15, %ymm64636; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0],ymm6[1],ymm4[2,3,4,5,6],ymm6[7]4637; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload4638; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm6, %xmm6 # 16-byte Folded Reload4639; AVX2-FCP-NEXT: # xmm6 = xmm6[2],mem[2],xmm6[3],mem[3]4640; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm6[2,3,2,3]4641; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload4642; AVX2-FCP-NEXT: vinserti128 $1, %xmm6, %ymm10, %ymm64643; AVX2-FCP-NEXT: vmovdqa 96(%r8), %ymm104644; AVX2-FCP-NEXT: vpermd %ymm10, %ymm1, %ymm114645; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm11[0,1],ymm6[2,3,4,5],ymm11[6,7]4646; AVX2-FCP-NEXT: vmovdqa 96(%r9), %ymm114647; AVX2-FCP-NEXT: vpermd %ymm11, %ymm1, %ymm14648; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm6[0],ymm1[1],ymm6[2,3,4,5,6],ymm1[7]4649; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload4650; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm6 = ymm6[0],ymm9[0],ymm6[1],ymm9[1],ymm6[4],ymm9[4],ymm6[5],ymm9[5]4651; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm9 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]4652; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm9 = ymm9[2,2,2,2]4653; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[2,1,2,3]4654; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3],ymm6[4,5,6,7]4655; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm10[4,5],ymm6[6,7]4656; AVX2-FCP-NEXT: vpbroadcastd 112(%r9), %ymm94657; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm9[5],ymm6[6,7]4658; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm2 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]4659; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm2 = ymm2[2,3,2,3,6,7,6,7]4660; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload4661; AVX2-FCP-NEXT: # ymm2 = mem[2,3],ymm2[2,3]4662; AVX2-FCP-NEXT: vpermd %ymm10, %ymm7, %ymm34663; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5],ymm3[6,7]4664; AVX2-FCP-NEXT: vpermd %ymm11, %ymm15, %ymm34665; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]4666; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4667; AVX2-FCP-NEXT: vmovdqa %ymm2, 736(%rax)4668; AVX2-FCP-NEXT: vmovdqa %ymm6, 672(%rax)4669; AVX2-FCP-NEXT: vmovdqa %ymm1, 640(%rax)4670; AVX2-FCP-NEXT: vmovdqa %ymm4, 544(%rax)4671; AVX2-FCP-NEXT: vmovdqa %ymm12, 480(%rax)4672; AVX2-FCP-NEXT: vmovdqa %ymm8, 448(%rax)4673; AVX2-FCP-NEXT: vmovdqa %ymm5, 352(%rax)4674; AVX2-FCP-NEXT: vmovdqa %ymm13, 288(%rax)4675; AVX2-FCP-NEXT: vmovups (%rsp), %ymm1 # 32-byte Reload4676; AVX2-FCP-NEXT: vmovaps %ymm1, 256(%rax)4677; AVX2-FCP-NEXT: vmovdqa %ymm0, 160(%rax)4678; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4679; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%rax)4680; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4681; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%rax)4682; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4683; AVX2-FCP-NEXT: vmovaps %ymm0, 704(%rax)4684; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4685; AVX2-FCP-NEXT: vmovaps %ymm0, 576(%rax)4686; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4687; AVX2-FCP-NEXT: vmovaps %ymm0, 512(%rax)4688; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4689; AVX2-FCP-NEXT: vmovaps %ymm0, 384(%rax)4690; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4691; AVX2-FCP-NEXT: vmovaps %ymm0, 320(%rax)4692; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4693; AVX2-FCP-NEXT: vmovaps %ymm0, 192(%rax)4694; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4695; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%rax)4696; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4697; AVX2-FCP-NEXT: vmovaps %ymm0, (%rax)4698; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4699; AVX2-FCP-NEXT: vmovaps %ymm0, 608(%rax)4700; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4701; AVX2-FCP-NEXT: vmovaps %ymm0, 416(%rax)4702; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4703; AVX2-FCP-NEXT: vmovaps %ymm0, 224(%rax)4704; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload4705; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%rax)4706; AVX2-FCP-NEXT: addq $872, %rsp # imm = 0x3684707; AVX2-FCP-NEXT: vzeroupper4708; AVX2-FCP-NEXT: retq4709;4710; AVX512-LABEL: store_i32_stride6_vf32:4711; AVX512: # %bb.0:4712; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax4713; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm54714; AVX512-NEXT: vmovdqa64 (%rdi), %zmm174715; AVX512-NEXT: vmovdqa64 (%rsi), %zmm184716; AVX512-NEXT: vmovdqa64 64(%rsi), %zmm74717; AVX512-NEXT: vmovdqa64 (%rdx), %zmm14718; AVX512-NEXT: vmovdqa64 64(%rdx), %zmm04719; AVX512-NEXT: vmovdqa64 (%rcx), %zmm64720; AVX512-NEXT: vmovdqa64 64(%rcx), %zmm104721; AVX512-NEXT: vmovdqa64 (%r8), %zmm34722; AVX512-NEXT: vmovdqa64 64(%r8), %zmm84723; AVX512-NEXT: vmovdqa64 (%r9), %zmm44724; AVX512-NEXT: vmovdqa64 64(%r9), %zmm94725; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]4726; AVX512-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]4727; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]4728; AVX512-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]4729; AVX512-NEXT: vmovdqa64 %zmm5, %zmm114730; AVX512-NEXT: vpermt2d %zmm7, %zmm12, %zmm114731; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]4732; AVX512-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]4733; AVX512-NEXT: vmovdqa64 %zmm5, %zmm134734; AVX512-NEXT: vpermt2d %zmm7, %zmm14, %zmm134735; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]4736; AVX512-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4737; AVX512-NEXT: vmovdqa64 %zmm5, %zmm154738; AVX512-NEXT: vpermt2d %zmm7, %zmm16, %zmm154739; AVX512-NEXT: vpermi2d %zmm18, %zmm17, %zmm124740; AVX512-NEXT: vpermi2d %zmm18, %zmm17, %zmm144741; AVX512-NEXT: vpermi2d %zmm18, %zmm17, %zmm164742; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm19 = zmm17[2],zmm18[2],zmm17[3],zmm18[3],zmm17[6],zmm18[6],zmm17[7],zmm18[7],zmm17[10],zmm18[10],zmm17[11],zmm18[11],zmm17[14],zmm18[14],zmm17[15],zmm18[15]4743; AVX512-NEXT: vpermt2d %zmm18, %zmm2, %zmm174744; AVX512-NEXT: vmovdqa64 (%rdx), %ymm184745; AVX512-NEXT: vmovdqa64 64(%rdx), %ymm204746; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm21 = [3,11,0,8,7,15,4,12]4747; AVX512-NEXT: vpermt2d (%rcx), %ymm21, %ymm184748; AVX512-NEXT: movb $36, %dl4749; AVX512-NEXT: kmovw %edx, %k14750; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm18[0,1,0,1,2,3,6,7]4751; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm18 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]4752; AVX512-NEXT: vpermt2d %zmm3, %zmm18, %zmm174753; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]4754; AVX512-NEXT: vpermt2d %zmm4, %zmm22, %zmm174755; AVX512-NEXT: vpermi2d %zmm7, %zmm5, %zmm24756; AVX512-NEXT: vpermt2d 64(%rcx), %ymm21, %ymm204757; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm2 {%k1} = zmm20[0,1,0,1,2,3,6,7]4758; AVX512-NEXT: vpermt2d %zmm8, %zmm18, %zmm24759; AVX512-NEXT: vpermt2d %zmm9, %zmm22, %zmm24760; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm18 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]4761; AVX512-NEXT: vmovdqa64 %zmm0, %zmm204762; AVX512-NEXT: vpermt2d %zmm10, %zmm18, %zmm204763; AVX512-NEXT: vmovdqa64 %zmm20, %zmm11 {%k1}4764; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]4765; AVX512-NEXT: vpermt2d %zmm8, %zmm20, %zmm114766; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm21 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]4767; AVX512-NEXT: vpermt2d %zmm9, %zmm21, %zmm114768; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]4769; AVX512-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]4770; AVX512-NEXT: vmovdqa64 %zmm0, %zmm234771; AVX512-NEXT: vpermt2d %zmm10, %zmm22, %zmm234772; AVX512-NEXT: movb $-110, %cl4773; AVX512-NEXT: kmovw %ecx, %k24774; AVX512-NEXT: vmovdqa64 %zmm23, %zmm13 {%k2}4775; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]4776; AVX512-NEXT: vpermt2d %zmm8, %zmm23, %zmm134777; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm24 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]4778; AVX512-NEXT: vpermt2d %zmm9, %zmm24, %zmm134779; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm25 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]4780; AVX512-NEXT: # zmm25 = mem[0,1,2,3,0,1,2,3]4781; AVX512-NEXT: vmovdqa64 %zmm0, %zmm264782; AVX512-NEXT: vpermt2d %zmm10, %zmm25, %zmm264783; AVX512-NEXT: vmovdqa64 %zmm26, %zmm15 {%k2}4784; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm26 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]4785; AVX512-NEXT: vpermt2d %zmm8, %zmm26, %zmm154786; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm27 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]4787; AVX512-NEXT: vpermt2d %zmm9, %zmm27, %zmm154788; AVX512-NEXT: vpermi2d %zmm6, %zmm1, %zmm184789; AVX512-NEXT: vmovdqa64 %zmm18, %zmm12 {%k1}4790; AVX512-NEXT: vpermt2d %zmm3, %zmm20, %zmm124791; AVX512-NEXT: vpermt2d %zmm4, %zmm21, %zmm124792; AVX512-NEXT: vpermi2d %zmm6, %zmm1, %zmm224793; AVX512-NEXT: vmovdqa64 %zmm22, %zmm14 {%k2}4794; AVX512-NEXT: vpermt2d %zmm3, %zmm23, %zmm144795; AVX512-NEXT: vpermt2d %zmm4, %zmm24, %zmm144796; AVX512-NEXT: vpermi2d %zmm6, %zmm1, %zmm254797; AVX512-NEXT: vmovdqa64 %zmm25, %zmm16 {%k2}4798; AVX512-NEXT: vpermt2d %zmm3, %zmm26, %zmm164799; AVX512-NEXT: vpermt2d %zmm4, %zmm27, %zmm164800; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]4801; AVX512-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]4802; AVX512-NEXT: vmovdqa64 %zmm0, %zmm204803; AVX512-NEXT: vpermt2d %zmm10, %zmm18, %zmm204804; AVX512-NEXT: vmovdqa64 (%rdi), %ymm214805; AVX512-NEXT: vmovdqa64 64(%rdi), %ymm224806; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm22 = ymm22[2],mem[2],ymm22[3],mem[3],ymm22[6],mem[6],ymm22[7],mem[7]4807; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm20 {%k1} = zmm22[2,3,2,3,2,3,2,3]4808; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]4809; AVX512-NEXT: vpermt2d %zmm8, %zmm22, %zmm204810; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]4811; AVX512-NEXT: vpermt2d %zmm9, %zmm23, %zmm204812; AVX512-NEXT: vpermi2d %zmm6, %zmm1, %zmm184813; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm21 = ymm21[2],mem[2],ymm21[3],mem[3],ymm21[6],mem[6],ymm21[7],mem[7]4814; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm21[2,3,2,3,2,3,2,3]4815; AVX512-NEXT: vpermt2d %zmm3, %zmm22, %zmm184816; AVX512-NEXT: vpermt2d %zmm4, %zmm23, %zmm184817; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]4818; AVX512-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]4819; AVX512-NEXT: vpermt2d %zmm10, %zmm21, %zmm04820; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm5 = zmm5[2],zmm7[2],zmm5[3],zmm7[3],zmm5[6],zmm7[6],zmm5[7],zmm7[7],zmm5[10],zmm7[10],zmm5[11],zmm7[11],zmm5[14],zmm7[14],zmm5[15],zmm7[15]4821; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm5[6,7,6,7,6,7,6,7]4822; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]4823; AVX512-NEXT: vpermt2d %zmm8, %zmm5, %zmm04824; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]4825; AVX512-NEXT: vpermt2d %zmm9, %zmm7, %zmm04826; AVX512-NEXT: vpermt2d %zmm6, %zmm21, %zmm14827; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm19[6,7,6,7,6,7,6,7]4828; AVX512-NEXT: vpermt2d %zmm3, %zmm5, %zmm14829; AVX512-NEXT: vpermt2d %zmm4, %zmm7, %zmm14830; AVX512-NEXT: vmovdqa64 %zmm16, (%rax)4831; AVX512-NEXT: vmovdqa64 %zmm14, 192(%rax)4832; AVX512-NEXT: vmovdqa64 %zmm1, 320(%rax)4833; AVX512-NEXT: vmovdqa64 %zmm12, 256(%rax)4834; AVX512-NEXT: vmovdqa64 %zmm15, 384(%rax)4835; AVX512-NEXT: vmovdqa64 %zmm13, 576(%rax)4836; AVX512-NEXT: vmovdqa64 %zmm0, 704(%rax)4837; AVX512-NEXT: vmovdqa64 %zmm11, 640(%rax)4838; AVX512-NEXT: vmovdqa64 %zmm18, 128(%rax)4839; AVX512-NEXT: vmovdqa64 %zmm2, 448(%rax)4840; AVX512-NEXT: vmovdqa64 %zmm20, 512(%rax)4841; AVX512-NEXT: vmovdqa64 %zmm17, 64(%rax)4842; AVX512-NEXT: vzeroupper4843; AVX512-NEXT: retq4844;4845; AVX512-FCP-LABEL: store_i32_stride6_vf32:4846; AVX512-FCP: # %bb.0:4847; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm14848; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm04849; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm114850; AVX512-FCP-NEXT: vmovdqa64 64(%rsi), %zmm134851; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm44852; AVX512-FCP-NEXT: vmovdqa64 64(%rdx), %zmm74853; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm184854; AVX512-FCP-NEXT: vmovdqa64 64(%rcx), %zmm244855; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm26 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]4856; AVX512-FCP-NEXT: # zmm26 = mem[0,1,2,3,0,1,2,3]4857; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm144858; AVX512-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm144859; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]4860; AVX512-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]4861; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm24862; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm24863; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm12 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]4864; AVX512-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]4865; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm204866; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm204867; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]4868; AVX512-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]4869; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm34870; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm5, %zmm34871; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]4872; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm224873; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm17, %zmm224874; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]4875; AVX512-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]4876; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm64877; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm8, %zmm64878; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]4879; AVX512-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]4880; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm234881; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm21, %zmm234882; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]4883; AVX512-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]4884; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm94885; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm10, %zmm94886; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]4887; AVX512-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]4888; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm154889; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm16, %zmm154890; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm254891; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm74892; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm26 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]4893; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm254894; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]4895; AVX512-FCP-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]4896; AVX512-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm54897; AVX512-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm174898; AVX512-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm214899; AVX512-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm164900; AVX512-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm44901; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm264902; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm24, %zmm264903; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm184904; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm04905; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]4906; AVX512-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]4907; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm184908; AVX512-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm124909; AVX512-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm84910; AVX512-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm104911; AVX512-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm244912; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm14913; AVX512-FCP-NEXT: movb $-110, %al4914; AVX512-FCP-NEXT: kmovw %eax, %k24915; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm2 {%k2}4916; AVX512-FCP-NEXT: vmovdqa64 (%r8), %zmm114917; AVX512-FCP-NEXT: movb $36, %al4918; AVX512-FCP-NEXT: kmovw %eax, %k14919; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}4920; AVX512-FCP-NEXT: vmovdqa64 64(%r8), %zmm134921; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm6 {%k1}4922; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]4923; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm24924; AVX512-FCP-NEXT: vmovdqa64 %zmm23, %zmm9 {%k2}4925; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm19 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]4926; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm34927; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm15 {%k1}4928; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]4929; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm20, %zmm64930; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm18 {%k1}4931; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]4932; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm22, %zmm94933; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm0 {%k2}4934; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]4935; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm154936; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm04937; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]4938; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm184939; AVX512-FCP-NEXT: vmovdqa64 %zmm12, %zmm5 {%k1}4940; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm54941; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm8 {%k1}4942; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm20, %zmm84943; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm10 {%k2}4944; AVX512-FCP-NEXT: vmovdqa64 (%r9), %zmm124945; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm22, %zmm104946; AVX512-FCP-NEXT: vmovdqa64 64(%r9), %zmm134947; AVX512-FCP-NEXT: vmovdqa64 %zmm24, %zmm16 {%k1}4948; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]4949; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm24950; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm7, %zmm164951; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]4952; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm34953; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm1 {%k1}4954; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]4955; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm4, %zmm64956; AVX512-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm14957; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]4958; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm11, %zmm94959; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]4960; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm154961; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm04962; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]4963; AVX512-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm184964; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm7, %zmm54965; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm4, %zmm84966; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm11, %zmm104967; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm14, %zmm164968; AVX512-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm14969; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax4970; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)4971; AVX512-FCP-NEXT: vmovdqa64 %zmm16, 128(%rax)4972; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)4973; AVX512-FCP-NEXT: vmovdqa64 %zmm8, 256(%rax)4974; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)4975; AVX512-FCP-NEXT: vmovdqa64 %zmm0, 384(%rax)4976; AVX512-FCP-NEXT: vmovdqa64 %zmm18, 448(%rax)4977; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 512(%rax)4978; AVX512-FCP-NEXT: vmovdqa64 %zmm9, 576(%rax)4979; AVX512-FCP-NEXT: vmovdqa64 %zmm6, 640(%rax)4980; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 704(%rax)4981; AVX512-FCP-NEXT: vmovdqa64 %zmm2, (%rax)4982; AVX512-FCP-NEXT: vzeroupper4983; AVX512-FCP-NEXT: retq4984;4985; AVX512DQ-LABEL: store_i32_stride6_vf32:4986; AVX512DQ: # %bb.0:4987; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax4988; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm54989; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm174990; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm184991; AVX512DQ-NEXT: vmovdqa64 64(%rsi), %zmm74992; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm14993; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %zmm04994; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm64995; AVX512DQ-NEXT: vmovdqa64 64(%rcx), %zmm104996; AVX512DQ-NEXT: vmovdqa64 (%r8), %zmm34997; AVX512DQ-NEXT: vmovdqa64 64(%r8), %zmm84998; AVX512DQ-NEXT: vmovdqa64 (%r9), %zmm44999; AVX512DQ-NEXT: vmovdqa64 64(%r9), %zmm95000; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5001; AVX512DQ-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]5002; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5003; AVX512DQ-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]5004; AVX512DQ-NEXT: vmovdqa64 %zmm5, %zmm115005; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm12, %zmm115006; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5007; AVX512DQ-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]5008; AVX512DQ-NEXT: vmovdqa64 %zmm5, %zmm135009; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm14, %zmm135010; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5011; AVX512DQ-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5012; AVX512DQ-NEXT: vmovdqa64 %zmm5, %zmm155013; AVX512DQ-NEXT: vpermt2d %zmm7, %zmm16, %zmm155014; AVX512DQ-NEXT: vpermi2d %zmm18, %zmm17, %zmm125015; AVX512DQ-NEXT: vpermi2d %zmm18, %zmm17, %zmm145016; AVX512DQ-NEXT: vpermi2d %zmm18, %zmm17, %zmm165017; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm19 = zmm17[2],zmm18[2],zmm17[3],zmm18[3],zmm17[6],zmm18[6],zmm17[7],zmm18[7],zmm17[10],zmm18[10],zmm17[11],zmm18[11],zmm17[14],zmm18[14],zmm17[15],zmm18[15]5018; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm2, %zmm175019; AVX512DQ-NEXT: vmovdqa64 (%rdx), %ymm185020; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %ymm205021; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm21 = [3,11,0,8,7,15,4,12]5022; AVX512DQ-NEXT: vpermt2d (%rcx), %ymm21, %ymm185023; AVX512DQ-NEXT: movb $36, %dl5024; AVX512DQ-NEXT: kmovw %edx, %k15025; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm18[0,1,0,1,2,3,6,7]5026; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm18 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5027; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm18, %zmm175028; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5029; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm22, %zmm175030; AVX512DQ-NEXT: vpermi2d %zmm7, %zmm5, %zmm25031; AVX512DQ-NEXT: vpermt2d 64(%rcx), %ymm21, %ymm205032; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm2 {%k1} = zmm20[0,1,0,1,2,3,6,7]5033; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm18, %zmm25034; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm22, %zmm25035; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm18 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5036; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm205037; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm18, %zmm205038; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm11 {%k1}5039; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5040; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm20, %zmm115041; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm21 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5042; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm21, %zmm115043; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5044; AVX512DQ-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]5045; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm235046; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm22, %zmm235047; AVX512DQ-NEXT: movb $-110, %cl5048; AVX512DQ-NEXT: kmovw %ecx, %k25049; AVX512DQ-NEXT: vmovdqa64 %zmm23, %zmm13 {%k2}5050; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5051; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm23, %zmm135052; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm24 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5053; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm24, %zmm135054; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm25 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5055; AVX512DQ-NEXT: # zmm25 = mem[0,1,2,3,0,1,2,3]5056; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm265057; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm25, %zmm265058; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm15 {%k2}5059; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm26 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5060; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm26, %zmm155061; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm27 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5062; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm27, %zmm155063; AVX512DQ-NEXT: vpermi2d %zmm6, %zmm1, %zmm185064; AVX512DQ-NEXT: vmovdqa64 %zmm18, %zmm12 {%k1}5065; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm20, %zmm125066; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm21, %zmm125067; AVX512DQ-NEXT: vpermi2d %zmm6, %zmm1, %zmm225068; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm14 {%k2}5069; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm23, %zmm145070; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm24, %zmm145071; AVX512DQ-NEXT: vpermi2d %zmm6, %zmm1, %zmm255072; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm16 {%k2}5073; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm26, %zmm165074; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm27, %zmm165075; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5076; AVX512DQ-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]5077; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm205078; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm18, %zmm205079; AVX512DQ-NEXT: vmovdqa64 (%rdi), %ymm215080; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %ymm225081; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm22 = ymm22[2],mem[2],ymm22[3],mem[3],ymm22[6],mem[6],ymm22[7],mem[7]5082; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm20 {%k1} = zmm22[2,3,2,3,2,3,2,3]5083; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5084; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm22, %zmm205085; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5086; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm23, %zmm205087; AVX512DQ-NEXT: vpermi2d %zmm6, %zmm1, %zmm185088; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm21 = ymm21[2],mem[2],ymm21[3],mem[3],ymm21[6],mem[6],ymm21[7],mem[7]5089; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm21[2,3,2,3,2,3,2,3]5090; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm22, %zmm185091; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm23, %zmm185092; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5093; AVX512DQ-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5094; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm21, %zmm05095; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm5 = zmm5[2],zmm7[2],zmm5[3],zmm7[3],zmm5[6],zmm7[6],zmm5[7],zmm7[7],zmm5[10],zmm7[10],zmm5[11],zmm7[11],zmm5[14],zmm7[14],zmm5[15],zmm7[15]5096; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm5[6,7,6,7,6,7,6,7]5097; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5098; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm5, %zmm05099; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5100; AVX512DQ-NEXT: vpermt2d %zmm9, %zmm7, %zmm05101; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm21, %zmm15102; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm19[6,7,6,7,6,7,6,7]5103; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm5, %zmm15104; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm7, %zmm15105; AVX512DQ-NEXT: vmovdqa64 %zmm16, (%rax)5106; AVX512DQ-NEXT: vmovdqa64 %zmm14, 192(%rax)5107; AVX512DQ-NEXT: vmovdqa64 %zmm1, 320(%rax)5108; AVX512DQ-NEXT: vmovdqa64 %zmm12, 256(%rax)5109; AVX512DQ-NEXT: vmovdqa64 %zmm15, 384(%rax)5110; AVX512DQ-NEXT: vmovdqa64 %zmm13, 576(%rax)5111; AVX512DQ-NEXT: vmovdqa64 %zmm0, 704(%rax)5112; AVX512DQ-NEXT: vmovdqa64 %zmm11, 640(%rax)5113; AVX512DQ-NEXT: vmovdqa64 %zmm18, 128(%rax)5114; AVX512DQ-NEXT: vmovdqa64 %zmm2, 448(%rax)5115; AVX512DQ-NEXT: vmovdqa64 %zmm20, 512(%rax)5116; AVX512DQ-NEXT: vmovdqa64 %zmm17, 64(%rax)5117; AVX512DQ-NEXT: vzeroupper5118; AVX512DQ-NEXT: retq5119;5120; AVX512DQ-FCP-LABEL: store_i32_stride6_vf32:5121; AVX512DQ-FCP: # %bb.0:5122; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm15123; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm05124; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm115125; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rsi), %zmm135126; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm45127; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdx), %zmm75128; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm185129; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rcx), %zmm245130; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm26 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5131; AVX512DQ-FCP-NEXT: # zmm26 = mem[0,1,2,3,0,1,2,3]5132; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm145133; AVX512DQ-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm145134; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5135; AVX512DQ-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5136; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm25137; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm25138; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm12 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]5139; AVX512DQ-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5140; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm205141; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm205142; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5143; AVX512DQ-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]5144; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm35145; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm5, %zmm35146; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5147; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm225148; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm17, %zmm225149; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5150; AVX512DQ-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]5151; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm65152; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm8, %zmm65153; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5154; AVX512DQ-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5155; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm235156; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm21, %zmm235157; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5158; AVX512DQ-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]5159; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm95160; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm10, %zmm95161; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5162; AVX512DQ-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5163; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm155164; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm16, %zmm155165; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm255166; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm75167; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm26 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]5168; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm255169; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]5170; AVX512DQ-FCP-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5171; AVX512DQ-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm55172; AVX512DQ-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm175173; AVX512DQ-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm215174; AVX512DQ-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm165175; AVX512DQ-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm45176; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm265177; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm24, %zmm265178; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm185179; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm05180; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5181; AVX512DQ-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5182; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm185183; AVX512DQ-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm125184; AVX512DQ-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm85185; AVX512DQ-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm105186; AVX512DQ-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm245187; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm15188; AVX512DQ-FCP-NEXT: movb $-110, %al5189; AVX512DQ-FCP-NEXT: kmovw %eax, %k25190; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm2 {%k2}5191; AVX512DQ-FCP-NEXT: vmovdqa64 (%r8), %zmm115192; AVX512DQ-FCP-NEXT: movb $36, %al5193; AVX512DQ-FCP-NEXT: kmovw %eax, %k15194; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}5195; AVX512DQ-FCP-NEXT: vmovdqa64 64(%r8), %zmm135196; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm6 {%k1}5197; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5198; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm25199; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, %zmm9 {%k2}5200; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm19 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5201; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm35202; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, %zmm15 {%k1}5203; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5204; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm20, %zmm65205; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm18 {%k1}5206; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5207; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm22, %zmm95208; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm0 {%k2}5209; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5210; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm155211; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm05212; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5213; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm185214; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, %zmm5 {%k1}5215; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm55216; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm8 {%k1}5217; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm20, %zmm85218; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm10 {%k2}5219; AVX512DQ-FCP-NEXT: vmovdqa64 (%r9), %zmm125220; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm22, %zmm105221; AVX512DQ-FCP-NEXT: vmovdqa64 64(%r9), %zmm135222; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, %zmm16 {%k1}5223; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5224; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm25225; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm7, %zmm165226; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5227; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm35228; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm1 {%k1}5229; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5230; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm4, %zmm65231; AVX512DQ-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm15232; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5233; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm11, %zmm95234; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5235; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm155236; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm05237; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5238; AVX512DQ-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm185239; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm7, %zmm55240; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm4, %zmm85241; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm11, %zmm105242; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm14, %zmm165243; AVX512DQ-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm15244; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax5245; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)5246; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, 128(%rax)5247; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)5248; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, 256(%rax)5249; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)5250; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, 384(%rax)5251; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, 448(%rax)5252; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 512(%rax)5253; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, 576(%rax)5254; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, 640(%rax)5255; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 704(%rax)5256; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, (%rax)5257; AVX512DQ-FCP-NEXT: vzeroupper5258; AVX512DQ-FCP-NEXT: retq5259;5260; AVX512BW-LABEL: store_i32_stride6_vf32:5261; AVX512BW: # %bb.0:5262; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax5263; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm55264; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm175265; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm185266; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm75267; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm15268; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm05269; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm65270; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm105271; AVX512BW-NEXT: vmovdqa64 (%r8), %zmm35272; AVX512BW-NEXT: vmovdqa64 64(%r8), %zmm85273; AVX512BW-NEXT: vmovdqa64 (%r9), %zmm45274; AVX512BW-NEXT: vmovdqa64 64(%r9), %zmm95275; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5276; AVX512BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]5277; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5278; AVX512BW-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]5279; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm115280; AVX512BW-NEXT: vpermt2d %zmm7, %zmm12, %zmm115281; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5282; AVX512BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]5283; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm135284; AVX512BW-NEXT: vpermt2d %zmm7, %zmm14, %zmm135285; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5286; AVX512BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5287; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm155288; AVX512BW-NEXT: vpermt2d %zmm7, %zmm16, %zmm155289; AVX512BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm125290; AVX512BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm145291; AVX512BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm165292; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm19 = zmm17[2],zmm18[2],zmm17[3],zmm18[3],zmm17[6],zmm18[6],zmm17[7],zmm18[7],zmm17[10],zmm18[10],zmm17[11],zmm18[11],zmm17[14],zmm18[14],zmm17[15],zmm18[15]5293; AVX512BW-NEXT: vpermt2d %zmm18, %zmm2, %zmm175294; AVX512BW-NEXT: vmovdqa64 (%rdx), %ymm185295; AVX512BW-NEXT: vmovdqa64 64(%rdx), %ymm205296; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm21 = [3,11,0,8,7,15,4,12]5297; AVX512BW-NEXT: vpermt2d (%rcx), %ymm21, %ymm185298; AVX512BW-NEXT: movb $36, %dl5299; AVX512BW-NEXT: kmovd %edx, %k15300; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm18[0,1,0,1,2,3,6,7]5301; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm18 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5302; AVX512BW-NEXT: vpermt2d %zmm3, %zmm18, %zmm175303; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5304; AVX512BW-NEXT: vpermt2d %zmm4, %zmm22, %zmm175305; AVX512BW-NEXT: vpermi2d %zmm7, %zmm5, %zmm25306; AVX512BW-NEXT: vpermt2d 64(%rcx), %ymm21, %ymm205307; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm2 {%k1} = zmm20[0,1,0,1,2,3,6,7]5308; AVX512BW-NEXT: vpermt2d %zmm8, %zmm18, %zmm25309; AVX512BW-NEXT: vpermt2d %zmm9, %zmm22, %zmm25310; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm18 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5311; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm205312; AVX512BW-NEXT: vpermt2d %zmm10, %zmm18, %zmm205313; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm11 {%k1}5314; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5315; AVX512BW-NEXT: vpermt2d %zmm8, %zmm20, %zmm115316; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm21 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5317; AVX512BW-NEXT: vpermt2d %zmm9, %zmm21, %zmm115318; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5319; AVX512BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]5320; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm235321; AVX512BW-NEXT: vpermt2d %zmm10, %zmm22, %zmm235322; AVX512BW-NEXT: movb $-110, %cl5323; AVX512BW-NEXT: kmovd %ecx, %k25324; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm13 {%k2}5325; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5326; AVX512BW-NEXT: vpermt2d %zmm8, %zmm23, %zmm135327; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm24 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5328; AVX512BW-NEXT: vpermt2d %zmm9, %zmm24, %zmm135329; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm25 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5330; AVX512BW-NEXT: # zmm25 = mem[0,1,2,3,0,1,2,3]5331; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm265332; AVX512BW-NEXT: vpermt2d %zmm10, %zmm25, %zmm265333; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm15 {%k2}5334; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm26 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5335; AVX512BW-NEXT: vpermt2d %zmm8, %zmm26, %zmm155336; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm27 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5337; AVX512BW-NEXT: vpermt2d %zmm9, %zmm27, %zmm155338; AVX512BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm185339; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm12 {%k1}5340; AVX512BW-NEXT: vpermt2d %zmm3, %zmm20, %zmm125341; AVX512BW-NEXT: vpermt2d %zmm4, %zmm21, %zmm125342; AVX512BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm225343; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm14 {%k2}5344; AVX512BW-NEXT: vpermt2d %zmm3, %zmm23, %zmm145345; AVX512BW-NEXT: vpermt2d %zmm4, %zmm24, %zmm145346; AVX512BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm255347; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm16 {%k2}5348; AVX512BW-NEXT: vpermt2d %zmm3, %zmm26, %zmm165349; AVX512BW-NEXT: vpermt2d %zmm4, %zmm27, %zmm165350; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5351; AVX512BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]5352; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm205353; AVX512BW-NEXT: vpermt2d %zmm10, %zmm18, %zmm205354; AVX512BW-NEXT: vmovdqa64 (%rdi), %ymm215355; AVX512BW-NEXT: vmovdqa64 64(%rdi), %ymm225356; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm22 = ymm22[2],mem[2],ymm22[3],mem[3],ymm22[6],mem[6],ymm22[7],mem[7]5357; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm20 {%k1} = zmm22[2,3,2,3,2,3,2,3]5358; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5359; AVX512BW-NEXT: vpermt2d %zmm8, %zmm22, %zmm205360; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5361; AVX512BW-NEXT: vpermt2d %zmm9, %zmm23, %zmm205362; AVX512BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm185363; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm21 = ymm21[2],mem[2],ymm21[3],mem[3],ymm21[6],mem[6],ymm21[7],mem[7]5364; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm21[2,3,2,3,2,3,2,3]5365; AVX512BW-NEXT: vpermt2d %zmm3, %zmm22, %zmm185366; AVX512BW-NEXT: vpermt2d %zmm4, %zmm23, %zmm185367; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5368; AVX512BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5369; AVX512BW-NEXT: vpermt2d %zmm10, %zmm21, %zmm05370; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm5 = zmm5[2],zmm7[2],zmm5[3],zmm7[3],zmm5[6],zmm7[6],zmm5[7],zmm7[7],zmm5[10],zmm7[10],zmm5[11],zmm7[11],zmm5[14],zmm7[14],zmm5[15],zmm7[15]5371; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm5[6,7,6,7,6,7,6,7]5372; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5373; AVX512BW-NEXT: vpermt2d %zmm8, %zmm5, %zmm05374; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5375; AVX512BW-NEXT: vpermt2d %zmm9, %zmm7, %zmm05376; AVX512BW-NEXT: vpermt2d %zmm6, %zmm21, %zmm15377; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm19[6,7,6,7,6,7,6,7]5378; AVX512BW-NEXT: vpermt2d %zmm3, %zmm5, %zmm15379; AVX512BW-NEXT: vpermt2d %zmm4, %zmm7, %zmm15380; AVX512BW-NEXT: vmovdqa64 %zmm16, (%rax)5381; AVX512BW-NEXT: vmovdqa64 %zmm14, 192(%rax)5382; AVX512BW-NEXT: vmovdqa64 %zmm1, 320(%rax)5383; AVX512BW-NEXT: vmovdqa64 %zmm12, 256(%rax)5384; AVX512BW-NEXT: vmovdqa64 %zmm15, 384(%rax)5385; AVX512BW-NEXT: vmovdqa64 %zmm13, 576(%rax)5386; AVX512BW-NEXT: vmovdqa64 %zmm0, 704(%rax)5387; AVX512BW-NEXT: vmovdqa64 %zmm11, 640(%rax)5388; AVX512BW-NEXT: vmovdqa64 %zmm18, 128(%rax)5389; AVX512BW-NEXT: vmovdqa64 %zmm2, 448(%rax)5390; AVX512BW-NEXT: vmovdqa64 %zmm20, 512(%rax)5391; AVX512BW-NEXT: vmovdqa64 %zmm17, 64(%rax)5392; AVX512BW-NEXT: vzeroupper5393; AVX512BW-NEXT: retq5394;5395; AVX512BW-FCP-LABEL: store_i32_stride6_vf32:5396; AVX512BW-FCP: # %bb.0:5397; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm15398; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm05399; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm115400; AVX512BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm135401; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm45402; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm75403; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm185404; AVX512BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm245405; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm26 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5406; AVX512BW-FCP-NEXT: # zmm26 = mem[0,1,2,3,0,1,2,3]5407; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm145408; AVX512BW-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm145409; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5410; AVX512BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5411; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm25412; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm25413; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm12 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]5414; AVX512BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5415; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm205416; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm205417; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5418; AVX512BW-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]5419; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm35420; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm5, %zmm35421; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5422; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm225423; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm17, %zmm225424; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5425; AVX512BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]5426; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm65427; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm8, %zmm65428; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5429; AVX512BW-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5430; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm235431; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm21, %zmm235432; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5433; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]5434; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm95435; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm10, %zmm95436; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5437; AVX512BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5438; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm155439; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm16, %zmm155440; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm255441; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm75442; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm26 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]5443; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm255444; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]5445; AVX512BW-FCP-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5446; AVX512BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm55447; AVX512BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm175448; AVX512BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm215449; AVX512BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm165450; AVX512BW-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm45451; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm265452; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm24, %zmm265453; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm185454; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm05455; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5456; AVX512BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5457; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm185458; AVX512BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm125459; AVX512BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm85460; AVX512BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm105461; AVX512BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm245462; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm15463; AVX512BW-FCP-NEXT: movb $-110, %al5464; AVX512BW-FCP-NEXT: kmovd %eax, %k25465; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm2 {%k2}5466; AVX512BW-FCP-NEXT: vmovdqa64 (%r8), %zmm115467; AVX512BW-FCP-NEXT: movb $36, %al5468; AVX512BW-FCP-NEXT: kmovd %eax, %k15469; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}5470; AVX512BW-FCP-NEXT: vmovdqa64 64(%r8), %zmm135471; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm6 {%k1}5472; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5473; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm25474; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm9 {%k2}5475; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm19 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5476; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm35477; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm15 {%k1}5478; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5479; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm20, %zmm65480; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm18 {%k1}5481; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5482; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm22, %zmm95483; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm0 {%k2}5484; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5485; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm155486; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm05487; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5488; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm185489; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm5 {%k1}5490; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm55491; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm8 {%k1}5492; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm20, %zmm85493; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm10 {%k2}5494; AVX512BW-FCP-NEXT: vmovdqa64 (%r9), %zmm125495; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm22, %zmm105496; AVX512BW-FCP-NEXT: vmovdqa64 64(%r9), %zmm135497; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm16 {%k1}5498; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5499; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm25500; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm7, %zmm165501; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5502; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm35503; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm1 {%k1}5504; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5505; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm4, %zmm65506; AVX512BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm15507; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5508; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm11, %zmm95509; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5510; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm155511; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm05512; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5513; AVX512BW-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm185514; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm7, %zmm55515; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm4, %zmm85516; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm11, %zmm105517; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm14, %zmm165518; AVX512BW-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm15519; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax5520; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)5521; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, 128(%rax)5522; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)5523; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, 256(%rax)5524; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)5525; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 384(%rax)5526; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, 448(%rax)5527; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 512(%rax)5528; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, 576(%rax)5529; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, 640(%rax)5530; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 704(%rax)5531; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, (%rax)5532; AVX512BW-FCP-NEXT: vzeroupper5533; AVX512BW-FCP-NEXT: retq5534;5535; AVX512DQ-BW-LABEL: store_i32_stride6_vf32:5536; AVX512DQ-BW: # %bb.0:5537; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax5538; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm55539; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm175540; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm185541; AVX512DQ-BW-NEXT: vmovdqa64 64(%rsi), %zmm75542; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm15543; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %zmm05544; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm65545; AVX512DQ-BW-NEXT: vmovdqa64 64(%rcx), %zmm105546; AVX512DQ-BW-NEXT: vmovdqa64 (%r8), %zmm35547; AVX512DQ-BW-NEXT: vmovdqa64 64(%r8), %zmm85548; AVX512DQ-BW-NEXT: vmovdqa64 (%r9), %zmm45549; AVX512DQ-BW-NEXT: vmovdqa64 64(%r9), %zmm95550; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5551; AVX512DQ-BW-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]5552; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5553; AVX512DQ-BW-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]5554; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, %zmm115555; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm12, %zmm115556; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm14 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5557; AVX512DQ-BW-NEXT: # zmm14 = mem[0,1,2,3,0,1,2,3]5558; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, %zmm135559; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm14, %zmm135560; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5561; AVX512DQ-BW-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5562; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, %zmm155563; AVX512DQ-BW-NEXT: vpermt2d %zmm7, %zmm16, %zmm155564; AVX512DQ-BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm125565; AVX512DQ-BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm145566; AVX512DQ-BW-NEXT: vpermi2d %zmm18, %zmm17, %zmm165567; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm19 = zmm17[2],zmm18[2],zmm17[3],zmm18[3],zmm17[6],zmm18[6],zmm17[7],zmm18[7],zmm17[10],zmm18[10],zmm17[11],zmm18[11],zmm17[14],zmm18[14],zmm17[15],zmm18[15]5568; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm2, %zmm175569; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %ymm185570; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %ymm205571; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm21 = [3,11,0,8,7,15,4,12]5572; AVX512DQ-BW-NEXT: vpermt2d (%rcx), %ymm21, %ymm185573; AVX512DQ-BW-NEXT: movb $36, %dl5574; AVX512DQ-BW-NEXT: kmovd %edx, %k15575; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm18[0,1,0,1,2,3,6,7]5576; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm18 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5577; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm18, %zmm175578; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5579; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm22, %zmm175580; AVX512DQ-BW-NEXT: vpermi2d %zmm7, %zmm5, %zmm25581; AVX512DQ-BW-NEXT: vpermt2d 64(%rcx), %ymm21, %ymm205582; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm2 {%k1} = zmm20[0,1,0,1,2,3,6,7]5583; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm18, %zmm25584; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm22, %zmm25585; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm18 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5586; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm205587; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm18, %zmm205588; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm11 {%k1}5589; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5590; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm20, %zmm115591; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm21 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5592; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm21, %zmm115593; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm22 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5594; AVX512DQ-BW-NEXT: # zmm22 = mem[0,1,2,3,0,1,2,3]5595; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm235596; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm22, %zmm235597; AVX512DQ-BW-NEXT: movb $-110, %cl5598; AVX512DQ-BW-NEXT: kmovd %ecx, %k25599; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, %zmm13 {%k2}5600; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5601; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm23, %zmm135602; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm24 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5603; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm24, %zmm135604; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm25 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5605; AVX512DQ-BW-NEXT: # zmm25 = mem[0,1,2,3,0,1,2,3]5606; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm265607; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm25, %zmm265608; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm15 {%k2}5609; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm26 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5610; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm26, %zmm155611; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm27 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5612; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm27, %zmm155613; AVX512DQ-BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm185614; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, %zmm12 {%k1}5615; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm20, %zmm125616; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm21, %zmm125617; AVX512DQ-BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm225618; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm14 {%k2}5619; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm23, %zmm145620; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm24, %zmm145621; AVX512DQ-BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm255622; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm16 {%k2}5623; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm26, %zmm165624; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm27, %zmm165625; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm18 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5626; AVX512DQ-BW-NEXT: # zmm18 = mem[0,1,2,3,0,1,2,3]5627; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm205628; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm18, %zmm205629; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %ymm215630; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %ymm225631; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm22 = ymm22[2],mem[2],ymm22[3],mem[3],ymm22[6],mem[6],ymm22[7],mem[7]5632; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm20 {%k1} = zmm22[2,3,2,3,2,3,2,3]5633; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5634; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm22, %zmm205635; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm23 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5636; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm23, %zmm205637; AVX512DQ-BW-NEXT: vpermi2d %zmm6, %zmm1, %zmm185638; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm21 = ymm21[2],mem[2],ymm21[3],mem[3],ymm21[6],mem[6],ymm21[7],mem[7]5639; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm21[2,3,2,3,2,3,2,3]5640; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm22, %zmm185641; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm23, %zmm185642; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5643; AVX512DQ-BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5644; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm21, %zmm05645; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm5 = zmm5[2],zmm7[2],zmm5[3],zmm7[3],zmm5[6],zmm7[6],zmm5[7],zmm7[7],zmm5[10],zmm7[10],zmm5[11],zmm7[11],zmm5[14],zmm7[14],zmm5[15],zmm7[15]5646; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm0 {%k1} = zmm5[6,7,6,7,6,7,6,7]5647; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm5 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5648; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm5, %zmm05649; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5650; AVX512DQ-BW-NEXT: vpermt2d %zmm9, %zmm7, %zmm05651; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm21, %zmm15652; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm19[6,7,6,7,6,7,6,7]5653; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm5, %zmm15654; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm7, %zmm15655; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, (%rax)5656; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, 192(%rax)5657; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, 320(%rax)5658; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, 256(%rax)5659; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 384(%rax)5660; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, 576(%rax)5661; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 704(%rax)5662; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 640(%rax)5663; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 128(%rax)5664; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, 448(%rax)5665; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, 512(%rax)5666; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 64(%rax)5667; AVX512DQ-BW-NEXT: vzeroupper5668; AVX512DQ-BW-NEXT: retq5669;5670; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf32:5671; AVX512DQ-BW-FCP: # %bb.0:5672; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm15673; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm05674; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm115675; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm135676; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm45677; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm75678; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm185679; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm245680; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm26 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]5681; AVX512DQ-BW-FCP-NEXT: # zmm26 = mem[0,1,2,3,0,1,2,3]5682; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm145683; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm145684; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]5685; AVX512DQ-BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5686; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm25687; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm25688; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm12 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]5689; AVX512DQ-BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5690; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm205691; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm12, %zmm205692; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]5693; AVX512DQ-BW-FCP-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]5694; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm35695; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm5, %zmm35696; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]5697; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm225698; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm17, %zmm225699; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm8 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]5700; AVX512DQ-BW-FCP-NEXT: # zmm8 = mem[0,1,2,3,0,1,2,3]5701; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm65702; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm8, %zmm65703; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]5704; AVX512DQ-BW-FCP-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]5705; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm235706; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm21, %zmm235707; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]5708; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]5709; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm95710; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm10, %zmm95711; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm16 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]5712; AVX512DQ-BW-FCP-NEXT: # zmm16 = mem[0,1,2,3,0,1,2,3]5713; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm155714; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm16, %zmm155715; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm255716; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm75717; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm26 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]5718; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm26, %zmm255719; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm24 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]5720; AVX512DQ-BW-FCP-NEXT: # zmm24 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]5721; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm55722; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm175723; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm215724; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm18, %zmm4, %zmm165725; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm18, %zmm26, %zmm45726; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm265727; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm24, %zmm265728; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm185729; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm05730; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm19 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]5731; AVX512DQ-BW-FCP-NEXT: # zmm19 = mem[0,1,2,3,0,1,2,3]5732; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm185733; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm125734; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm85735; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm105736; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm11, %zmm1, %zmm245737; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm15738; AVX512DQ-BW-FCP-NEXT: movb $-110, %al5739; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k25740; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm2 {%k2}5741; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r8), %zmm115742; AVX512DQ-BW-FCP-NEXT: movb $36, %al5743; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k15744; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm3 {%k1}5745; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%r8), %zmm135746; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm6 {%k1}5747; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]5748; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm25749; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm9 {%k2}5750; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm19 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]5751; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm19, %zmm35752; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm15 {%k1}5753; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm20 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]5754; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm20, %zmm65755; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm18 {%k1}5756; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm22 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]5757; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm22, %zmm95758; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm0 {%k2}5759; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]5760; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm155761; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm05762; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]5763; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm185764; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm5 {%k1}5765; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm19, %zmm55766; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm8 {%k1}5767; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm20, %zmm85768; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm10 {%k2}5769; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r9), %zmm125770; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm22, %zmm105771; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%r9), %zmm135772; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm16 {%k1}5773; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]5774; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm25775; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm7, %zmm165776; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]5777; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm7, %zmm35778; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm1 {%k1}5779; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]5780; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm4, %zmm65781; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm11, %zmm14, %zmm15782; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]5783; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm11, %zmm95784; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm14 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]5785; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm14, %zmm155786; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm05787; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]5788; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm13, %zmm17, %zmm185789; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm7, %zmm55790; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm4, %zmm85791; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm11, %zmm105792; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm14, %zmm165793; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm12, %zmm17, %zmm15794; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax5795; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 64(%rax)5796; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, 128(%rax)5797; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%rax)5798; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, 256(%rax)5799; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)5800; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 384(%rax)5801; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, 448(%rax)5802; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 512(%rax)5803; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, 576(%rax)5804; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, 640(%rax)5805; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 704(%rax)5806; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, (%rax)5807; AVX512DQ-BW-FCP-NEXT: vzeroupper5808; AVX512DQ-BW-FCP-NEXT: retq5809 %in.vec0 = load <32 x i32>, ptr %in.vecptr0, align 645810 %in.vec1 = load <32 x i32>, ptr %in.vecptr1, align 645811 %in.vec2 = load <32 x i32>, ptr %in.vecptr2, align 645812 %in.vec3 = load <32 x i32>, ptr %in.vecptr3, align 645813 %in.vec4 = load <32 x i32>, ptr %in.vecptr4, align 645814 %in.vec5 = load <32 x i32>, ptr %in.vecptr5, align 645815 %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>5816 %2 = shufflevector <32 x i32> %in.vec2, <32 x i32> %in.vec3, <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>5817 %3 = shufflevector <32 x i32> %in.vec4, <32 x i32> %in.vec5, <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>5818 %4 = shufflevector <64 x i32> %1, <64 x i32> %2, <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>5819 %5 = shufflevector <64 x i32> %3, <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>5820 %6 = shufflevector <128 x i32> %4, <128 x i32> %5, <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>5821 %interleaved.vec = shufflevector <192 x i32> %6, <192 x i32> poison, <192 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191>5822 store <192 x i32> %interleaved.vec, ptr %out.vec, align 645823 ret void5824}5825 5826define void @store_i32_stride6_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %out.vec) nounwind {5827; SSE-LABEL: store_i32_stride6_vf64:5828; SSE: # %bb.0:5829; SSE-NEXT: subq $1224, %rsp # imm = 0x4C85830; SSE-NEXT: movaps (%rdi), %xmm95831; SSE-NEXT: movaps 16(%rdi), %xmm105832; SSE-NEXT: movaps (%rsi), %xmm25833; SSE-NEXT: movaps 16(%rsi), %xmm05834; SSE-NEXT: movaps (%rdx), %xmm115835; SSE-NEXT: movaps 16(%rdx), %xmm125836; SSE-NEXT: movaps (%rcx), %xmm45837; SSE-NEXT: movaps 16(%rcx), %xmm15838; SSE-NEXT: movaps (%r8), %xmm65839; SSE-NEXT: movaps 16(%r8), %xmm35840; SSE-NEXT: movaps (%r9), %xmm75841; SSE-NEXT: movaps 16(%r9), %xmm55842; SSE-NEXT: movaps %xmm11, %xmm135843; SSE-NEXT: unpcklps {{.*#+}} xmm13 = xmm13[0],xmm4[0],xmm13[1],xmm4[1]5844; SSE-NEXT: movaps %xmm9, %xmm85845; SSE-NEXT: unpcklps {{.*#+}} xmm8 = xmm8[0],xmm2[0],xmm8[1],xmm2[1]5846; SSE-NEXT: movaps %xmm7, %xmm145847; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm6[0]5848; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,0],xmm8[2,3]5849; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5850; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm13[0]5851; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5852; SSE-NEXT: movaps %xmm6, %xmm85853; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[1,1],xmm7[1,1]5854; SSE-NEXT: shufps {{.*#+}} xmm13 = xmm13[2,3],xmm8[0,2]5855; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5856; SSE-NEXT: movaps %xmm4, %xmm85857; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]5858; SSE-NEXT: unpckhps {{.*#+}} xmm9 = xmm9[2],xmm2[2],xmm9[3],xmm2[3]5859; SSE-NEXT: movaps %xmm6, %xmm25860; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm7[1]5861; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,2],xmm9[2,3]5862; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5863; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[0,1],xmm8[2,0]5864; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5865; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[3,3],xmm7[3,3]5866; SSE-NEXT: unpckhps {{.*#+}} xmm11 = xmm11[2],xmm4[2],xmm11[3],xmm4[3]5867; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[2,3],xmm6[0,2]5868; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5869; SSE-NEXT: movaps %xmm12, %xmm45870; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5871; SSE-NEXT: movaps %xmm10, %xmm25872; SSE-NEXT: unpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]5873; SSE-NEXT: movaps %xmm5, %xmm65874; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm3[0]5875; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm2[2,3]5876; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5877; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm4[0]5878; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5879; SSE-NEXT: movaps %xmm3, %xmm25880; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[1,1],xmm5[1,1]5881; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[2,3],xmm2[0,2]5882; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5883; SSE-NEXT: movaps %xmm1, %xmm25884; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm12[1]5885; SSE-NEXT: unpckhps {{.*#+}} xmm10 = xmm10[2],xmm0[2],xmm10[3],xmm0[3]5886; SSE-NEXT: movaps %xmm3, %xmm05887; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]5888; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[0,2],xmm10[2,3]5889; SSE-NEXT: movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5890; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,1],xmm2[2,0]5891; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5892; SSE-NEXT: movaps 32(%rdi), %xmm65893; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[3,3],xmm5[3,3]5894; SSE-NEXT: movaps 32(%rdx), %xmm55895; SSE-NEXT: unpckhps {{.*#+}} xmm12 = xmm12[2],xmm1[2],xmm12[3],xmm1[3]5896; SSE-NEXT: movaps 32(%rcx), %xmm05897; SSE-NEXT: shufps {{.*#+}} xmm12 = xmm12[2,3],xmm3[0,2]5898; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5899; SSE-NEXT: movaps %xmm5, %xmm75900; SSE-NEXT: unpcklps {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]5901; SSE-NEXT: movaps 32(%rsi), %xmm15902; SSE-NEXT: movaps %xmm6, %xmm45903; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5904; SSE-NEXT: movaps 32(%r8), %xmm25905; SSE-NEXT: movaps 32(%r9), %xmm35906; SSE-NEXT: movaps %xmm3, %xmm85907; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]5908; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]5909; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5910; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm7[0]5911; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5912; SSE-NEXT: movaps %xmm2, %xmm45913; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]5914; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[2,3],xmm4[0,2]5915; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5916; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm1[2],xmm6[3],xmm1[3]5917; SSE-NEXT: movaps %xmm0, %xmm15918; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm5[1]5919; SSE-NEXT: movaps %xmm2, %xmm45920; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]5921; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm6[2,3]5922; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5923; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[0,1],xmm1[2,0]5924; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5925; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]5926; SSE-NEXT: unpckhps {{.*#+}} xmm5 = xmm5[2],xmm0[2],xmm5[3],xmm0[3]5927; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm2[0,2]5928; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5929; SSE-NEXT: movaps 48(%rdx), %xmm65930; SSE-NEXT: movaps 48(%rcx), %xmm05931; SSE-NEXT: movaps %xmm6, %xmm55932; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]5933; SSE-NEXT: movaps 48(%rdi), %xmm75934; SSE-NEXT: movaps 48(%rsi), %xmm15935; SSE-NEXT: movaps %xmm7, %xmm45936; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5937; SSE-NEXT: movaps 48(%r8), %xmm25938; SSE-NEXT: movaps 48(%r9), %xmm35939; SSE-NEXT: movaps %xmm3, %xmm85940; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]5941; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]5942; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5943; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]5944; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5945; SSE-NEXT: movaps %xmm2, %xmm45946; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]5947; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]5948; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5949; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]5950; SSE-NEXT: movaps %xmm0, %xmm15951; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]5952; SSE-NEXT: movaps %xmm2, %xmm45953; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]5954; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]5955; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5956; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]5957; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5958; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]5959; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]5960; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]5961; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5962; SSE-NEXT: movaps 64(%rdx), %xmm65963; SSE-NEXT: movaps 64(%rcx), %xmm05964; SSE-NEXT: movaps %xmm6, %xmm55965; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]5966; SSE-NEXT: movaps 64(%rdi), %xmm75967; SSE-NEXT: movaps 64(%rsi), %xmm15968; SSE-NEXT: movaps %xmm7, %xmm45969; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]5970; SSE-NEXT: movaps 64(%r8), %xmm25971; SSE-NEXT: movaps 64(%r9), %xmm35972; SSE-NEXT: movaps %xmm3, %xmm85973; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]5974; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]5975; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5976; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]5977; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5978; SSE-NEXT: movaps %xmm2, %xmm45979; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]5980; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]5981; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5982; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]5983; SSE-NEXT: movaps %xmm0, %xmm15984; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]5985; SSE-NEXT: movaps %xmm2, %xmm45986; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]5987; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]5988; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5989; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]5990; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5991; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]5992; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]5993; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]5994; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5995; SSE-NEXT: movaps 80(%rdx), %xmm65996; SSE-NEXT: movaps 80(%rcx), %xmm05997; SSE-NEXT: movaps %xmm6, %xmm55998; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]5999; SSE-NEXT: movaps 80(%rdi), %xmm76000; SSE-NEXT: movaps 80(%rsi), %xmm16001; SSE-NEXT: movaps %xmm7, %xmm46002; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6003; SSE-NEXT: movaps 80(%r8), %xmm26004; SSE-NEXT: movaps 80(%r9), %xmm36005; SSE-NEXT: movaps %xmm3, %xmm86006; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6007; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6008; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6009; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6010; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6011; SSE-NEXT: movaps %xmm2, %xmm46012; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6013; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6014; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6015; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6016; SSE-NEXT: movaps %xmm0, %xmm16017; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6018; SSE-NEXT: movaps %xmm2, %xmm46019; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6020; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6021; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6022; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6023; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6024; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6025; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6026; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6027; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6028; SSE-NEXT: movaps 96(%rdx), %xmm66029; SSE-NEXT: movaps 96(%rcx), %xmm06030; SSE-NEXT: movaps %xmm6, %xmm56031; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6032; SSE-NEXT: movaps 96(%rdi), %xmm76033; SSE-NEXT: movaps 96(%rsi), %xmm16034; SSE-NEXT: movaps %xmm7, %xmm46035; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6036; SSE-NEXT: movaps 96(%r8), %xmm26037; SSE-NEXT: movaps 96(%r9), %xmm36038; SSE-NEXT: movaps %xmm3, %xmm86039; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6040; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6041; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6042; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6043; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6044; SSE-NEXT: movaps %xmm2, %xmm46045; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6046; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6047; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6048; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6049; SSE-NEXT: movaps %xmm0, %xmm16050; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6051; SSE-NEXT: movaps %xmm2, %xmm46052; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6053; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6054; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6055; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6056; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6057; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6058; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6059; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6060; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6061; SSE-NEXT: movaps 112(%rdx), %xmm66062; SSE-NEXT: movaps 112(%rcx), %xmm06063; SSE-NEXT: movaps %xmm6, %xmm56064; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6065; SSE-NEXT: movaps 112(%rdi), %xmm76066; SSE-NEXT: movaps 112(%rsi), %xmm16067; SSE-NEXT: movaps %xmm7, %xmm46068; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6069; SSE-NEXT: movaps 112(%r8), %xmm26070; SSE-NEXT: movaps 112(%r9), %xmm36071; SSE-NEXT: movaps %xmm3, %xmm86072; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6073; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6074; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6075; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6076; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6077; SSE-NEXT: movaps %xmm2, %xmm46078; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6079; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6080; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6081; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6082; SSE-NEXT: movaps %xmm0, %xmm16083; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6084; SSE-NEXT: movaps %xmm2, %xmm46085; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6086; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6087; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6088; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6089; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6090; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6091; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6092; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6093; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6094; SSE-NEXT: movaps 128(%rdx), %xmm66095; SSE-NEXT: movaps 128(%rcx), %xmm06096; SSE-NEXT: movaps %xmm6, %xmm56097; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6098; SSE-NEXT: movaps 128(%rdi), %xmm76099; SSE-NEXT: movaps 128(%rsi), %xmm16100; SSE-NEXT: movaps %xmm7, %xmm46101; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6102; SSE-NEXT: movaps 128(%r8), %xmm26103; SSE-NEXT: movaps 128(%r9), %xmm36104; SSE-NEXT: movaps %xmm3, %xmm86105; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6106; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6107; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6108; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6109; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6110; SSE-NEXT: movaps %xmm2, %xmm46111; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6112; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6113; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6114; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6115; SSE-NEXT: movaps %xmm0, %xmm16116; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6117; SSE-NEXT: movaps %xmm2, %xmm46118; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6119; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6120; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6121; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6122; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6123; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6124; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6125; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6126; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6127; SSE-NEXT: movaps 144(%rdx), %xmm66128; SSE-NEXT: movaps 144(%rcx), %xmm06129; SSE-NEXT: movaps %xmm6, %xmm56130; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6131; SSE-NEXT: movaps 144(%rdi), %xmm76132; SSE-NEXT: movaps 144(%rsi), %xmm16133; SSE-NEXT: movaps %xmm7, %xmm46134; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6135; SSE-NEXT: movaps 144(%r8), %xmm26136; SSE-NEXT: movaps 144(%r9), %xmm36137; SSE-NEXT: movaps %xmm3, %xmm86138; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6139; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6140; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6141; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6142; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6143; SSE-NEXT: movaps %xmm2, %xmm46144; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6145; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6146; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6147; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6148; SSE-NEXT: movaps %xmm0, %xmm16149; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6150; SSE-NEXT: movaps %xmm2, %xmm46151; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6152; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6153; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6154; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6155; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6156; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6157; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6158; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6159; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6160; SSE-NEXT: movaps 160(%rdx), %xmm66161; SSE-NEXT: movaps 160(%rcx), %xmm06162; SSE-NEXT: movaps %xmm6, %xmm56163; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6164; SSE-NEXT: movaps 160(%rdi), %xmm76165; SSE-NEXT: movaps 160(%rsi), %xmm16166; SSE-NEXT: movaps %xmm7, %xmm46167; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6168; SSE-NEXT: movaps 160(%r8), %xmm26169; SSE-NEXT: movaps 160(%r9), %xmm36170; SSE-NEXT: movaps %xmm3, %xmm86171; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6172; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6173; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6174; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6175; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6176; SSE-NEXT: movaps %xmm2, %xmm46177; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6178; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6179; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6180; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6181; SSE-NEXT: movaps %xmm0, %xmm16182; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6183; SSE-NEXT: movaps %xmm2, %xmm46184; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6185; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6186; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6187; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6188; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6189; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6190; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6191; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6192; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6193; SSE-NEXT: movaps 176(%rdx), %xmm66194; SSE-NEXT: movaps 176(%rcx), %xmm06195; SSE-NEXT: movaps %xmm6, %xmm56196; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6197; SSE-NEXT: movaps 176(%rdi), %xmm76198; SSE-NEXT: movaps 176(%rsi), %xmm16199; SSE-NEXT: movaps %xmm7, %xmm46200; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6201; SSE-NEXT: movaps 176(%r8), %xmm26202; SSE-NEXT: movaps 176(%r9), %xmm36203; SSE-NEXT: movaps %xmm3, %xmm86204; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6205; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6206; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6207; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6208; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6209; SSE-NEXT: movaps %xmm2, %xmm46210; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6211; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6212; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6213; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6214; SSE-NEXT: movaps %xmm0, %xmm16215; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6216; SSE-NEXT: movaps %xmm2, %xmm46217; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6218; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6219; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6220; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6221; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6222; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6223; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6224; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6225; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6226; SSE-NEXT: movaps 192(%rdx), %xmm66227; SSE-NEXT: movaps 192(%rcx), %xmm06228; SSE-NEXT: movaps %xmm6, %xmm56229; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6230; SSE-NEXT: movaps 192(%rdi), %xmm76231; SSE-NEXT: movaps 192(%rsi), %xmm16232; SSE-NEXT: movaps %xmm7, %xmm46233; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6234; SSE-NEXT: movaps 192(%r8), %xmm26235; SSE-NEXT: movaps 192(%r9), %xmm36236; SSE-NEXT: movaps %xmm3, %xmm86237; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6238; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6239; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6240; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6241; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6242; SSE-NEXT: movaps %xmm2, %xmm46243; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6244; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6245; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6246; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6247; SSE-NEXT: movaps %xmm0, %xmm16248; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6249; SSE-NEXT: movaps %xmm2, %xmm46250; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6251; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6252; SSE-NEXT: movaps %xmm4, (%rsp) # 16-byte Spill6253; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6254; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6255; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6256; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6257; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6258; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6259; SSE-NEXT: movaps 208(%rdx), %xmm66260; SSE-NEXT: movaps 208(%rcx), %xmm06261; SSE-NEXT: movaps %xmm6, %xmm56262; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]6263; SSE-NEXT: movaps 208(%rdi), %xmm76264; SSE-NEXT: movaps 208(%rsi), %xmm16265; SSE-NEXT: movaps %xmm7, %xmm46266; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]6267; SSE-NEXT: movaps 208(%r8), %xmm26268; SSE-NEXT: movaps 208(%r9), %xmm36269; SSE-NEXT: movaps %xmm3, %xmm86270; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm2[0]6271; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[2,0],xmm4[2,3]6272; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6273; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6274; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6275; SSE-NEXT: movaps %xmm2, %xmm46276; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6277; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm4[0,2]6278; SSE-NEXT: movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6279; SSE-NEXT: unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]6280; SSE-NEXT: movaps %xmm0, %xmm16281; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]6282; SSE-NEXT: movaps %xmm2, %xmm46283; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]6284; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[0,2],xmm7[2,3]6285; SSE-NEXT: movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6286; SSE-NEXT: shufps {{.*#+}} xmm7 = xmm7[0,1],xmm1[2,0]6287; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6288; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6289; SSE-NEXT: unpckhps {{.*#+}} xmm6 = xmm6[2],xmm0[2],xmm6[3],xmm0[3]6290; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,3],xmm2[0,2]6291; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6292; SSE-NEXT: movaps 224(%rdx), %xmm96293; SSE-NEXT: movaps 224(%rcx), %xmm06294; SSE-NEXT: movaps %xmm9, %xmm146295; SSE-NEXT: unpcklps {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]6296; SSE-NEXT: movaps 224(%rdi), %xmm116297; SSE-NEXT: movaps 224(%rsi), %xmm16298; SSE-NEXT: movaps %xmm11, %xmm136299; SSE-NEXT: unpcklps {{.*#+}} xmm13 = xmm13[0],xmm1[0],xmm13[1],xmm1[1]6300; SSE-NEXT: movaps 224(%r8), %xmm26301; SSE-NEXT: movaps 224(%r9), %xmm36302; SSE-NEXT: movaps %xmm3, %xmm156303; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm2[0]6304; SSE-NEXT: shufps {{.*#+}} xmm15 = xmm15[2,0],xmm13[2,3]6305; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm14[0]6306; SSE-NEXT: movaps %xmm2, %xmm46307; SSE-NEXT: shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]6308; SSE-NEXT: shufps {{.*#+}} xmm14 = xmm14[2,3],xmm4[0,2]6309; SSE-NEXT: unpckhps {{.*#+}} xmm11 = xmm11[2],xmm1[2],xmm11[3],xmm1[3]6310; SSE-NEXT: movaps %xmm0, %xmm16311; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm9[1]6312; SSE-NEXT: movaps %xmm2, %xmm86313; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]6314; SSE-NEXT: shufps {{.*#+}} xmm8 = xmm8[0,2],xmm11[2,3]6315; SSE-NEXT: shufps {{.*#+}} xmm11 = xmm11[0,1],xmm1[2,0]6316; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]6317; SSE-NEXT: unpckhps {{.*#+}} xmm9 = xmm9[2],xmm0[2],xmm9[3],xmm0[3]6318; SSE-NEXT: shufps {{.*#+}} xmm9 = xmm9[2,3],xmm2[0,2]6319; SSE-NEXT: movaps 240(%rdx), %xmm36320; SSE-NEXT: movaps 240(%rcx), %xmm126321; SSE-NEXT: movaps %xmm3, %xmm56322; SSE-NEXT: unpcklps {{.*#+}} xmm5 = xmm5[0],xmm12[0],xmm5[1],xmm12[1]6323; SSE-NEXT: movaps 240(%rdi), %xmm26324; SSE-NEXT: movaps 240(%rsi), %xmm106325; SSE-NEXT: movaps %xmm2, %xmm46326; SSE-NEXT: unpcklps {{.*#+}} xmm4 = xmm4[0],xmm10[0],xmm4[1],xmm10[1]6327; SSE-NEXT: movaps 240(%r8), %xmm16328; SSE-NEXT: movaps 240(%r9), %xmm76329; SSE-NEXT: movaps %xmm7, %xmm66330; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm1[0]6331; SSE-NEXT: shufps {{.*#+}} xmm6 = xmm6[2,0],xmm4[2,3]6332; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm5[0]6333; SSE-NEXT: movaps %xmm1, %xmm06334; SSE-NEXT: shufps {{.*#+}} xmm0 = xmm0[1,1],xmm7[1,1]6335; SSE-NEXT: shufps {{.*#+}} xmm5 = xmm5[2,3],xmm0[0,2]6336; SSE-NEXT: unpckhps {{.*#+}} xmm2 = xmm2[2],xmm10[2],xmm2[3],xmm10[3]6337; SSE-NEXT: movaps %xmm12, %xmm06338; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm3[1]6339; SSE-NEXT: movaps %xmm1, %xmm106340; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm7[1]6341; SSE-NEXT: shufps {{.*#+}} xmm10 = xmm10[0,2],xmm2[2,3]6342; SSE-NEXT: shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]6343; SSE-NEXT: shufps {{.*#+}} xmm1 = xmm1[3,3],xmm7[3,3]6344; SSE-NEXT: unpckhps {{.*#+}} xmm3 = xmm3[2],xmm12[2],xmm3[3],xmm12[3]6345; SSE-NEXT: shufps {{.*#+}} xmm3 = xmm3[2,3],xmm1[0,2]6346; SSE-NEXT: movq {{[0-9]+}}(%rsp), %rax6347; SSE-NEXT: movaps %xmm3, 1520(%rax)6348; SSE-NEXT: movaps %xmm10, 1504(%rax)6349; SSE-NEXT: movaps %xmm2, 1488(%rax)6350; SSE-NEXT: movaps %xmm5, 1472(%rax)6351; SSE-NEXT: movaps %xmm6, 1456(%rax)6352; SSE-NEXT: movaps %xmm4, 1440(%rax)6353; SSE-NEXT: movaps %xmm9, 1424(%rax)6354; SSE-NEXT: movaps %xmm8, 1408(%rax)6355; SSE-NEXT: movaps %xmm11, 1392(%rax)6356; SSE-NEXT: movaps %xmm14, 1376(%rax)6357; SSE-NEXT: movaps %xmm15, 1360(%rax)6358; SSE-NEXT: movaps %xmm13, 1344(%rax)6359; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6360; SSE-NEXT: movaps %xmm0, 1328(%rax)6361; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6362; SSE-NEXT: movaps %xmm0, 1312(%rax)6363; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6364; SSE-NEXT: movaps %xmm0, 1296(%rax)6365; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6366; SSE-NEXT: movaps %xmm0, 1280(%rax)6367; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6368; SSE-NEXT: movaps %xmm0, 1264(%rax)6369; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6370; SSE-NEXT: movaps %xmm0, 1248(%rax)6371; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6372; SSE-NEXT: movaps %xmm0, 1232(%rax)6373; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload6374; SSE-NEXT: movaps %xmm0, 1216(%rax)6375; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6376; SSE-NEXT: movaps %xmm0, 1200(%rax)6377; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6378; SSE-NEXT: movaps %xmm0, 1184(%rax)6379; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6380; SSE-NEXT: movaps %xmm0, 1168(%rax)6381; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6382; SSE-NEXT: movaps %xmm0, 1152(%rax)6383; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6384; SSE-NEXT: movaps %xmm0, 1136(%rax)6385; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6386; SSE-NEXT: movaps %xmm0, 1120(%rax)6387; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6388; SSE-NEXT: movaps %xmm0, 1104(%rax)6389; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6390; SSE-NEXT: movaps %xmm0, 1088(%rax)6391; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6392; SSE-NEXT: movaps %xmm0, 1072(%rax)6393; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6394; SSE-NEXT: movaps %xmm0, 1056(%rax)6395; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6396; SSE-NEXT: movaps %xmm0, 1040(%rax)6397; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6398; SSE-NEXT: movaps %xmm0, 1024(%rax)6399; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6400; SSE-NEXT: movaps %xmm0, 1008(%rax)6401; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6402; SSE-NEXT: movaps %xmm0, 992(%rax)6403; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6404; SSE-NEXT: movaps %xmm0, 976(%rax)6405; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6406; SSE-NEXT: movaps %xmm0, 960(%rax)6407; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6408; SSE-NEXT: movaps %xmm0, 944(%rax)6409; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6410; SSE-NEXT: movaps %xmm0, 928(%rax)6411; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6412; SSE-NEXT: movaps %xmm0, 912(%rax)6413; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6414; SSE-NEXT: movaps %xmm0, 896(%rax)6415; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6416; SSE-NEXT: movaps %xmm0, 880(%rax)6417; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6418; SSE-NEXT: movaps %xmm0, 864(%rax)6419; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6420; SSE-NEXT: movaps %xmm0, 848(%rax)6421; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6422; SSE-NEXT: movaps %xmm0, 832(%rax)6423; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6424; SSE-NEXT: movaps %xmm0, 816(%rax)6425; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6426; SSE-NEXT: movaps %xmm0, 800(%rax)6427; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6428; SSE-NEXT: movaps %xmm0, 784(%rax)6429; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6430; SSE-NEXT: movaps %xmm0, 768(%rax)6431; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6432; SSE-NEXT: movaps %xmm0, 752(%rax)6433; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6434; SSE-NEXT: movaps %xmm0, 736(%rax)6435; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6436; SSE-NEXT: movaps %xmm0, 720(%rax)6437; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6438; SSE-NEXT: movaps %xmm0, 704(%rax)6439; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6440; SSE-NEXT: movaps %xmm0, 688(%rax)6441; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6442; SSE-NEXT: movaps %xmm0, 672(%rax)6443; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6444; SSE-NEXT: movaps %xmm0, 656(%rax)6445; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6446; SSE-NEXT: movaps %xmm0, 640(%rax)6447; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6448; SSE-NEXT: movaps %xmm0, 624(%rax)6449; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6450; SSE-NEXT: movaps %xmm0, 608(%rax)6451; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6452; SSE-NEXT: movaps %xmm0, 592(%rax)6453; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6454; SSE-NEXT: movaps %xmm0, 576(%rax)6455; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6456; SSE-NEXT: movaps %xmm0, 560(%rax)6457; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6458; SSE-NEXT: movaps %xmm0, 544(%rax)6459; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6460; SSE-NEXT: movaps %xmm0, 528(%rax)6461; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6462; SSE-NEXT: movaps %xmm0, 512(%rax)6463; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6464; SSE-NEXT: movaps %xmm0, 496(%rax)6465; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6466; SSE-NEXT: movaps %xmm0, 480(%rax)6467; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6468; SSE-NEXT: movaps %xmm0, 464(%rax)6469; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6470; SSE-NEXT: movaps %xmm0, 448(%rax)6471; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6472; SSE-NEXT: movaps %xmm0, 432(%rax)6473; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6474; SSE-NEXT: movaps %xmm0, 416(%rax)6475; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6476; SSE-NEXT: movaps %xmm0, 400(%rax)6477; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6478; SSE-NEXT: movaps %xmm0, 384(%rax)6479; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6480; SSE-NEXT: movaps %xmm0, 368(%rax)6481; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6482; SSE-NEXT: movaps %xmm0, 352(%rax)6483; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6484; SSE-NEXT: movaps %xmm0, 336(%rax)6485; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6486; SSE-NEXT: movaps %xmm0, 320(%rax)6487; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6488; SSE-NEXT: movaps %xmm0, 304(%rax)6489; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6490; SSE-NEXT: movaps %xmm0, 288(%rax)6491; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6492; SSE-NEXT: movaps %xmm0, 272(%rax)6493; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6494; SSE-NEXT: movaps %xmm0, 256(%rax)6495; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6496; SSE-NEXT: movaps %xmm0, 240(%rax)6497; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6498; SSE-NEXT: movaps %xmm0, 224(%rax)6499; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6500; SSE-NEXT: movaps %xmm0, 208(%rax)6501; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6502; SSE-NEXT: movaps %xmm0, 192(%rax)6503; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6504; SSE-NEXT: movaps %xmm0, 176(%rax)6505; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6506; SSE-NEXT: movaps %xmm0, 160(%rax)6507; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6508; SSE-NEXT: movaps %xmm0, 144(%rax)6509; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6510; SSE-NEXT: movaps %xmm0, 128(%rax)6511; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6512; SSE-NEXT: movaps %xmm0, 112(%rax)6513; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6514; SSE-NEXT: movaps %xmm0, 96(%rax)6515; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6516; SSE-NEXT: movaps %xmm0, 80(%rax)6517; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6518; SSE-NEXT: movaps %xmm0, 64(%rax)6519; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6520; SSE-NEXT: movaps %xmm0, 48(%rax)6521; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6522; SSE-NEXT: movaps %xmm0, 32(%rax)6523; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6524; SSE-NEXT: movaps %xmm0, 16(%rax)6525; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6526; SSE-NEXT: movaps %xmm0, (%rax)6527; SSE-NEXT: addq $1224, %rsp # imm = 0x4C86528; SSE-NEXT: retq6529;6530; AVX-LABEL: store_i32_stride6_vf64:6531; AVX: # %bb.0:6532; AVX-NEXT: subq $2056, %rsp # imm = 0x8086533; AVX-NEXT: vmovaps (%rdi), %ymm66534; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6535; AVX-NEXT: vmovaps (%rsi), %ymm76536; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6537; AVX-NEXT: vmovaps (%rdx), %ymm36538; AVX-NEXT: vmovaps (%rcx), %ymm26539; AVX-NEXT: vmovaps (%rcx), %xmm16540; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6541; AVX-NEXT: vmovaps 32(%rcx), %xmm46542; AVX-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6543; AVX-NEXT: vmovaps (%rdx), %xmm06544; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6545; AVX-NEXT: vmovaps 32(%rdx), %xmm56546; AVX-NEXT: vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6547; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[1,2],xmm1[1,2]6548; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]6549; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm06550; AVX-NEXT: vmovaps (%rsi), %xmm136551; AVX-NEXT: vmovaps (%rdi), %xmm126552; AVX-NEXT: vunpckhps {{.*#+}} xmm1 = xmm12[2],xmm13[2],xmm12[3],xmm13[3]6553; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6554; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16555; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]6556; AVX-NEXT: vbroadcastss 4(%r8), %xmm16557; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]6558; AVX-NEXT: vbroadcastss 4(%r9), %ymm16559; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]6560; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6561; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm6[0],ymm7[0],ymm6[1],ymm7[1],ymm6[4],ymm7[4],ymm6[5],ymm7[5]6562; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3,2,3]6563; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6564; AVX-NEXT: vextractf128 $1, %ymm1, %xmm16565; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm1[0,1,2,0]6566; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]6567; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],mem[4,5],ymm0[6,7]6568; AVX-NEXT: vbroadcastss 16(%r9), %ymm16569; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]6570; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6571; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm5[1,2],xmm4[1,2]6572; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[0,2,1,3]6573; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm06574; AVX-NEXT: vmovaps 32(%rsi), %xmm16575; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6576; AVX-NEXT: vmovaps 32(%rdi), %xmm46577; AVX-NEXT: vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6578; AVX-NEXT: vunpckhps {{.*#+}} xmm1 = xmm4[2],xmm1[2],xmm4[3],xmm1[3]6579; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6580; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm16581; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]6582; AVX-NEXT: vbroadcastss 36(%r8), %xmm16583; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]6584; AVX-NEXT: vbroadcastss 36(%r9), %ymm16585; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]6586; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6587; AVX-NEXT: vmovaps 32(%rdi), %ymm16588; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6589; AVX-NEXT: vmovaps 32(%rsi), %ymm06590; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6591; AVX-NEXT: vunpcklps {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[1],ymm0[1],ymm1[4],ymm0[4],ymm1[5],ymm0[5]6592; AVX-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm0[2,3,2,3]6593; AVX-NEXT: vmovaps 32(%rdx), %ymm06594; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6595; AVX-NEXT: vmovaps 32(%rcx), %ymm16596; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6597; AVX-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6598; AVX-NEXT: vextractf128 $1, %ymm5, %xmm56599; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm5[0,1,2,0]6600; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]6601; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],mem[4,5],ymm4[6,7]6602; AVX-NEXT: vbroadcastss 48(%r9), %ymm56603; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]6604; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6605; AVX-NEXT: vmovaps 64(%rcx), %xmm06606; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6607; AVX-NEXT: vmovaps 64(%rdx), %xmm16608; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6609; AVX-NEXT: vshufps {{.*#+}} xmm4 = xmm1[1,2],xmm0[1,2]6610; AVX-NEXT: vshufps {{.*#+}} xmm4 = xmm4[0,2,1,3]6611; AVX-NEXT: vinsertf128 $1, %xmm4, %ymm4, %ymm46612; AVX-NEXT: vmovaps 64(%rsi), %xmm06613; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6614; AVX-NEXT: vmovaps 64(%rdi), %xmm16615; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6616; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6617; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6618; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm56619; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]6620; AVX-NEXT: vbroadcastss 68(%r8), %xmm56621; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]6622; AVX-NEXT: vbroadcastss 68(%r9), %ymm56623; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]6624; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6625; AVX-NEXT: vmovaps 64(%rdi), %ymm06626; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6627; AVX-NEXT: vmovaps 64(%rsi), %ymm16628; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6629; AVX-NEXT: vunpcklps {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6630; AVX-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm4[2,3,2,3]6631; AVX-NEXT: vmovaps 64(%rdx), %ymm56632; AVX-NEXT: vmovaps 64(%rcx), %ymm46633; AVX-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]6634; AVX-NEXT: vextractf128 $1, %ymm7, %xmm76635; AVX-NEXT: vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]6636; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]6637; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],mem[4,5],ymm6[6,7]6638; AVX-NEXT: vbroadcastss 80(%r9), %ymm76639; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]6640; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6641; AVX-NEXT: vmovaps 96(%rcx), %xmm76642; AVX-NEXT: vmovaps 96(%rdx), %xmm66643; AVX-NEXT: vshufps {{.*#+}} xmm8 = xmm6[1,2],xmm7[1,2]6644; AVX-NEXT: vshufps {{.*#+}} xmm8 = xmm8[0,2,1,3]6645; AVX-NEXT: vinsertf128 $1, %xmm8, %ymm8, %ymm86646; AVX-NEXT: vmovaps 96(%rsi), %xmm06647; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6648; AVX-NEXT: vmovaps 96(%rdi), %xmm16649; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6650; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6651; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6652; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm96653; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]6654; AVX-NEXT: vbroadcastss 100(%r8), %xmm96655; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]6656; AVX-NEXT: vbroadcastss 100(%r9), %ymm96657; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm9[3],ymm8[4,5,6,7]6658; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6659; AVX-NEXT: vmovaps 96(%rdi), %ymm06660; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6661; AVX-NEXT: vmovaps 96(%rsi), %ymm16662; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6663; AVX-NEXT: vunpcklps {{.*#+}} ymm8 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6664; AVX-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm8[2,3,2,3]6665; AVX-NEXT: vmovaps 96(%rdx), %ymm96666; AVX-NEXT: vmovaps 96(%rcx), %ymm86667; AVX-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]6668; AVX-NEXT: vextractf128 $1, %ymm11, %xmm116669; AVX-NEXT: vshufps {{.*#+}} xmm11 = xmm11[0,1,2,0]6670; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]6671; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],mem[4,5],ymm10[6,7]6672; AVX-NEXT: vbroadcastss 112(%r9), %ymm116673; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]6674; AVX-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6675; AVX-NEXT: vmovaps 128(%rcx), %xmm06676; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6677; AVX-NEXT: vmovaps 128(%rdx), %xmm16678; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6679; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm1[1,2],xmm0[1,2]6680; AVX-NEXT: vshufps {{.*#+}} xmm10 = xmm10[0,2,1,3]6681; AVX-NEXT: vinsertf128 $1, %xmm10, %ymm10, %ymm106682; AVX-NEXT: vmovaps 128(%rsi), %xmm06683; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6684; AVX-NEXT: vmovaps 128(%rdi), %xmm16685; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6686; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6687; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6688; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm116689; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]6690; AVX-NEXT: vbroadcastss 132(%r8), %xmm116691; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]6692; AVX-NEXT: vbroadcastss 132(%r9), %ymm116693; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm10[0,1,2],ymm11[3],ymm10[4,5,6,7]6694; AVX-NEXT: vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6695; AVX-NEXT: vmovaps 128(%rdi), %ymm06696; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6697; AVX-NEXT: vmovaps 128(%rsi), %ymm16698; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6699; AVX-NEXT: vunpcklps {{.*#+}} ymm10 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6700; AVX-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm10[2,3,2,3]6701; AVX-NEXT: vmovaps 128(%rdx), %ymm116702; AVX-NEXT: vmovaps 128(%rcx), %ymm106703; AVX-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]6704; AVX-NEXT: vextractf128 $1, %ymm15, %xmm156705; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,1,2,0]6706; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6707; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],mem[4,5],ymm14[6,7]6708; AVX-NEXT: vbroadcastss 144(%r9), %ymm156709; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]6710; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6711; AVX-NEXT: vmovaps 160(%rcx), %xmm06712; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6713; AVX-NEXT: vmovaps 160(%rdx), %xmm16714; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6715; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm1[1,2],xmm0[1,2]6716; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,2,1,3]6717; AVX-NEXT: vinsertf128 $1, %xmm15, %ymm15, %ymm156718; AVX-NEXT: vmovaps 160(%rsi), %xmm06719; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6720; AVX-NEXT: vmovaps 160(%rdi), %xmm16721; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6722; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6723; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6724; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm146725; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1,2,3],ymm14[4,5],ymm15[6,7]6726; AVX-NEXT: vbroadcastss 164(%r8), %xmm156727; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6728; AVX-NEXT: vbroadcastss 164(%r9), %ymm156729; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]6730; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6731; AVX-NEXT: vmovaps 160(%rdi), %ymm06732; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6733; AVX-NEXT: vmovaps 160(%rsi), %ymm16734; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6735; AVX-NEXT: vunpcklps {{.*#+}} ymm14 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6736; AVX-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm14[2,3,2,3]6737; AVX-NEXT: vmovaps 160(%rdx), %ymm06738; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6739; AVX-NEXT: vmovaps 160(%rcx), %ymm16740; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6741; AVX-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6742; AVX-NEXT: vextractf128 $1, %ymm15, %xmm156743; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,1,2,0]6744; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6745; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],mem[4,5],ymm14[6,7]6746; AVX-NEXT: vbroadcastss 176(%r9), %ymm156747; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]6748; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6749; AVX-NEXT: vmovaps 192(%rcx), %xmm06750; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6751; AVX-NEXT: vmovaps 192(%rdx), %xmm16752; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6753; AVX-NEXT: vshufps {{.*#+}} xmm14 = xmm1[1,2],xmm0[1,2]6754; AVX-NEXT: vshufps {{.*#+}} xmm14 = xmm14[0,2,1,3]6755; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm14, %ymm146756; AVX-NEXT: vmovaps 192(%rsi), %xmm06757; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6758; AVX-NEXT: vmovaps 192(%rdi), %xmm16759; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6760; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6761; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6762; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm156763; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]6764; AVX-NEXT: vbroadcastss 196(%r8), %xmm156765; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6766; AVX-NEXT: vbroadcastss 196(%r9), %ymm156767; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]6768; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6769; AVX-NEXT: vmovaps 192(%rdi), %ymm06770; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6771; AVX-NEXT: vmovaps 192(%rsi), %ymm16772; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6773; AVX-NEXT: vunpcklps {{.*#+}} ymm14 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6774; AVX-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm14[2,3,2,3]6775; AVX-NEXT: vmovaps 192(%rdx), %ymm06776; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6777; AVX-NEXT: vmovaps 192(%rcx), %ymm16778; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6779; AVX-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6780; AVX-NEXT: vextractf128 $1, %ymm15, %xmm156781; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,1,2,0]6782; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6783; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],mem[4,5],ymm14[6,7]6784; AVX-NEXT: vbroadcastss 208(%r9), %ymm156785; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]6786; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6787; AVX-NEXT: vmovaps 224(%rcx), %xmm06788; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6789; AVX-NEXT: vmovaps 224(%rdx), %xmm16790; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6791; AVX-NEXT: vshufps {{.*#+}} xmm14 = xmm1[1,2],xmm0[1,2]6792; AVX-NEXT: vshufps {{.*#+}} xmm14 = xmm14[0,2,1,3]6793; AVX-NEXT: vinsertf128 $1, %xmm14, %ymm14, %ymm146794; AVX-NEXT: vmovaps 224(%rsi), %xmm06795; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6796; AVX-NEXT: vmovaps 224(%rdi), %xmm16797; AVX-NEXT: vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill6798; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]6799; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6800; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm156801; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]6802; AVX-NEXT: vbroadcastss 228(%r8), %xmm156803; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6804; AVX-NEXT: vbroadcastss 228(%r9), %ymm156805; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]6806; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6807; AVX-NEXT: vmovaps 224(%rdi), %ymm06808; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6809; AVX-NEXT: vmovaps 224(%rsi), %ymm16810; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6811; AVX-NEXT: vunpcklps {{.*#+}} ymm14 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]6812; AVX-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm14[2,3,2,3]6813; AVX-NEXT: vmovaps 224(%rdx), %ymm16814; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6815; AVX-NEXT: vmovaps 224(%rcx), %ymm06816; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6817; AVX-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6818; AVX-NEXT: vextractf128 $1, %ymm15, %xmm156819; AVX-NEXT: vshufps {{.*#+}} xmm15 = xmm15[0,1,2,0]6820; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]6821; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],mem[4,5],ymm14[6,7]6822; AVX-NEXT: vbroadcastss 240(%r9), %ymm156823; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]6824; AVX-NEXT: vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6825; AVX-NEXT: vbroadcastss (%rcx), %xmm146826; AVX-NEXT: vbroadcastss (%rdx), %xmm156827; AVX-NEXT: vunpcklps {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]6828; AVX-NEXT: vunpcklps {{.*#+}} xmm12 = xmm12[0],xmm13[0],xmm12[1],xmm13[1]6829; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm0, %ymm136830; AVX-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm14[2,3],ymm13[4,5,6,7]6831; AVX-NEXT: vinsertf128 $1, (%r8), %ymm12, %ymm126832; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5],ymm13[6,7]6833; AVX-NEXT: vbroadcastss (%r9), %ymm136834; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]6835; AVX-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6836; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6837; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm12 # 16-byte Folded Reload6838; AVX-NEXT: # xmm12 = xmm0[2],mem[2],xmm0[3],mem[3]6839; AVX-NEXT: vshufps {{.*#+}} xmm12 = xmm12[2,3,2,3]6840; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6841; AVX-NEXT: vinsertf128 $1, %xmm12, %ymm0, %ymm126842; AVX-NEXT: vpermilps {{.*#+}} xmm13 = mem[2,1,3,3]6843; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm13, %ymm136844; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm13[0,1],ymm12[2,3,4,5],ymm13[6,7]6845; AVX-NEXT: vmovaps (%r9), %xmm136846; AVX-NEXT: vshufps {{.*#+}} xmm14 = xmm13[0,2,2,3]6847; AVX-NEXT: vinsertf128 $1, %xmm13, %ymm14, %ymm136848; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm12[0],ymm13[1],ymm12[2,3,4,5,6],ymm13[7]6849; AVX-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6850; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6851; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm12 # 32-byte Folded Reload6852; AVX-NEXT: # ymm12 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]6853; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm3[1,2],ymm2[1,2],ymm3[5,6],ymm2[5,6]6854; AVX-NEXT: vperm2f128 {{.*#+}} ymm13 = ymm13[2,3,2,3]6855; AVX-NEXT: vshufps {{.*#+}} ymm13 = ymm13[0,2,1,3,4,6,5,7]6856; AVX-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3],ymm12[4,5],ymm13[6,7]6857; AVX-NEXT: vbroadcastss 20(%r8), %xmm146858; AVX-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm14[2,3],ymm13[4,5,6,7]6859; AVX-NEXT: vbroadcastss 20(%r9), %ymm146860; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm13[0,1,2],ymm14[3],ymm13[4,5,6,7]6861; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6862; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[3,0],ymm3[3,0],ymm2[7,4],ymm3[7,4]6863; AVX-NEXT: vshufps {{.*#+}} ymm2 = ymm2[2,0,2,3,6,4,6,7]6864; AVX-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm12[2,3],ymm2[2,3]6865; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm3 = mem[0,1,0,1]6866; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[2,1,3,3,6,5,7,7]6867; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5],ymm3[6,7]6868; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm3 = mem[0,1,0,1]6869; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[0,2,2,3,4,6,6,7]6870; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]6871; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6872; AVX-NEXT: vbroadcastss 32(%rcx), %xmm26873; AVX-NEXT: vbroadcastss 32(%rdx), %xmm36874; AVX-NEXT: vunpcklps {{.*#+}} xmm2 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]6875; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6876; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload6877; AVX-NEXT: # xmm3 = xmm0[0],mem[0],xmm0[1],mem[1]6878; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm0, %ymm126879; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm12[0,1],ymm2[2,3],ymm12[4,5,6,7]6880; AVX-NEXT: vinsertf128 $1, 32(%r8), %ymm3, %ymm36881; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]6882; AVX-NEXT: vbroadcastss 32(%r9), %ymm36883; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]6884; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6885; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6886; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload6887; AVX-NEXT: # xmm2 = xmm0[2],mem[2],xmm0[3],mem[3]6888; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]6889; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6890; AVX-NEXT: vinsertf128 $1, %xmm2, %ymm0, %ymm26891; AVX-NEXT: vpermilps {{.*#+}} xmm3 = mem[2,1,3,3]6892; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm3, %ymm36893; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5],ymm3[6,7]6894; AVX-NEXT: vmovaps 32(%r9), %xmm36895; AVX-NEXT: vshufps {{.*#+}} xmm12 = xmm3[0,2,2,3]6896; AVX-NEXT: vinsertf128 $1, %xmm3, %ymm12, %ymm36897; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]6898; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6899; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6900; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload6901; AVX-NEXT: # ymm2 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]6902; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6903; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload6904; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm13[1,2],ymm1[1,2],ymm13[5,6],ymm1[5,6]6905; AVX-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,2,3]6906; AVX-NEXT: vshufps {{.*#+}} ymm3 = ymm3[0,2,1,3,4,6,5,7]6907; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm2[4,5],ymm3[6,7]6908; AVX-NEXT: vbroadcastss 52(%r8), %xmm126909; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm12[2,3],ymm3[4,5,6,7]6910; AVX-NEXT: vbroadcastss 52(%r9), %ymm126911; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2],ymm12[3],ymm3[4,5,6,7]6912; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6913; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm1[3,0],ymm13[3,0],ymm1[7,4],ymm13[7,4]6914; AVX-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,0,2,3,6,4,6,7]6915; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]6916; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]6917; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]6918; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]6919; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]6920; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]6921; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]6922; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6923; AVX-NEXT: vbroadcastss 64(%rcx), %xmm06924; AVX-NEXT: vbroadcastss 64(%rdx), %xmm16925; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]6926; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload6927; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload6928; AVX-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]6929; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm26930; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6,7]6931; AVX-NEXT: vinsertf128 $1, 64(%r8), %ymm1, %ymm16932; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]6933; AVX-NEXT: vbroadcastss 64(%r9), %ymm16934; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]6935; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6936; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6937; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6938; AVX-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]6939; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]6940; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6941; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm06942; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]6943; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm16944; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]6945; AVX-NEXT: vmovaps 64(%r9), %xmm16946; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm1[0,2,2,3]6947; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm16948; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]6949; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6950; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6951; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6952; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]6953; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm5[1,2],ymm4[1,2],ymm5[5,6],ymm4[5,6]6954; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]6955; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]6956; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]6957; AVX-NEXT: vbroadcastss 84(%r8), %xmm26958; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]6959; AVX-NEXT: vbroadcastss 84(%r9), %ymm26960; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]6961; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6962; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm4[3,0],ymm5[3,0],ymm4[7,4],ymm5[7,4]6963; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]6964; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]6965; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]6966; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]6967; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]6968; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]6969; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]6970; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]6971; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6972; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload6973; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload6974; AVX-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]6975; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm7[0,0,0,0]6976; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm6[0,0,0,0]6977; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]6978; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm26979; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]6980; AVX-NEXT: vinsertf128 $1, 96(%r8), %ymm0, %ymm06981; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]6982; AVX-NEXT: vbroadcastss 96(%r9), %ymm16983; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]6984; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6985; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm6[2],xmm7[2],xmm6[3],xmm7[3]6986; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]6987; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload6988; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm06989; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]6990; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm16991; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]6992; AVX-NEXT: vmovaps 96(%r9), %xmm16993; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm1[0,2,2,3]6994; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm16995; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]6996; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6997; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6998; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload6999; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]7000; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm9[1,2],ymm8[1,2],ymm9[5,6],ymm8[5,6]7001; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]7002; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]7003; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]7004; AVX-NEXT: vbroadcastss 116(%r8), %xmm27005; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]7006; AVX-NEXT: vbroadcastss 116(%r9), %ymm27007; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]7008; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7009; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm8[3,0],ymm9[3,0],ymm8[7,4],ymm9[7,4]7010; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]7011; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]7012; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7013; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7014; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7015; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7016; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7017; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7018; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7019; AVX-NEXT: vbroadcastss 128(%rcx), %xmm07020; AVX-NEXT: vbroadcastss 128(%rdx), %xmm17021; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]7022; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7023; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload7024; AVX-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]7025; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm0, %ymm27026; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6,7]7027; AVX-NEXT: vinsertf128 $1, 128(%r8), %ymm1, %ymm17028; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]7029; AVX-NEXT: vbroadcastss 128(%r9), %ymm17030; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]7031; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7032; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7033; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7034; AVX-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7035; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7036; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7037; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07038; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]7039; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm17040; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7041; AVX-NEXT: vmovaps 128(%r9), %xmm17042; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm1[0,2,2,3]7043; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm17044; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7045; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7046; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7047; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7048; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]7049; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm11[1,2],ymm10[1,2],ymm11[5,6],ymm10[5,6]7050; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]7051; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]7052; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]7053; AVX-NEXT: vbroadcastss 148(%r8), %xmm27054; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]7055; AVX-NEXT: vbroadcastss 148(%r9), %ymm27056; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]7057; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7058; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm10[3,0],ymm11[3,0],ymm10[7,4],ymm11[7,4]7059; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]7060; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]7061; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7062; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7063; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7064; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7065; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7066; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7067; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7068; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7069; AVX-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]7070; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload7071; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm4[0,0,0,0]7072; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload7073; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm3[0,0,0,0]7074; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]7075; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm27076; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]7077; AVX-NEXT: vinsertf128 $1, 160(%r8), %ymm0, %ymm07078; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]7079; AVX-NEXT: vbroadcastss 160(%r9), %ymm17080; AVX-NEXT: vblendps {{.*#+}} ymm11 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]7081; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]7082; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7083; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7084; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07085; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]7086; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm17087; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7088; AVX-NEXT: vmovaps 160(%r9), %xmm17089; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm1[0,2,2,3]7090; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm17091; AVX-NEXT: vblendps {{.*#+}} ymm13 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7092; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7093; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7094; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]7095; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7096; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7097; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm4[1,2],ymm3[1,2],ymm4[5,6],ymm3[5,6]7098; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]7099; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]7100; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]7101; AVX-NEXT: vbroadcastss 180(%r8), %xmm27102; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]7103; AVX-NEXT: vbroadcastss 180(%r9), %ymm27104; AVX-NEXT: vblendps {{.*#+}} ymm14 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]7105; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm3[3,0],ymm4[3,0],ymm3[7,4],ymm4[7,4]7106; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]7107; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]7108; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7109; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7110; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7111; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7112; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7113; AVX-NEXT: vblendps {{.*#+}} ymm15 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7114; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7115; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7116; AVX-NEXT: # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]7117; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload7118; AVX-NEXT: vshufps {{.*#+}} xmm1 = xmm4[0,0,0,0]7119; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload7120; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm3[0,0,0,0]7121; AVX-NEXT: vunpcklps {{.*#+}} xmm1 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]7122; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm0, %ymm27123; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]7124; AVX-NEXT: vinsertf128 $1, 192(%r8), %ymm0, %ymm07125; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]7126; AVX-NEXT: vbroadcastss 192(%r9), %ymm17127; AVX-NEXT: vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]7128; AVX-NEXT: vunpckhps {{.*#+}} xmm0 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]7129; AVX-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7130; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7131; AVX-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07132; AVX-NEXT: vpermilps {{.*#+}} xmm1 = mem[2,1,3,3]7133; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm1, %ymm17134; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7135; AVX-NEXT: vmovaps 192(%r9), %xmm17136; AVX-NEXT: vshufps {{.*#+}} xmm2 = xmm1[0,2,2,3]7137; AVX-NEXT: vinsertf128 $1, %xmm1, %ymm2, %ymm17138; AVX-NEXT: vblendps {{.*#+}} ymm9 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7139; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7140; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7141; AVX-NEXT: # ymm0 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]7142; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload7143; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload7144; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm5[1,2],ymm3[1,2],ymm5[5,6],ymm3[5,6]7145; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]7146; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,1,3,4,6,5,7]7147; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]7148; AVX-NEXT: vbroadcastss 212(%r8), %xmm27149; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5,6,7]7150; AVX-NEXT: vbroadcastss 212(%r9), %ymm27151; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]7152; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm3[3,0],ymm5[3,0],ymm3[7,4],ymm5[7,4]7153; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,0,2,3,6,4,6,7]7154; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm1[2,3]7155; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7156; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7157; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7158; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]7159; AVX-NEXT: vshufps {{.*#+}} ymm1 = ymm1[0,2,2,3,4,6,6,7]7160; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7161; AVX-NEXT: vbroadcastss 224(%rcx), %xmm07162; AVX-NEXT: vbroadcastss 224(%rdx), %xmm57163; AVX-NEXT: vunpcklps {{.*#+}} xmm0 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]7164; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload7165; AVX-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm5 # 16-byte Folded Reload7166; AVX-NEXT: # xmm5 = xmm1[0],mem[0],xmm1[1],mem[1]7167; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm67168; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3],ymm6[4,5,6,7]7169; AVX-NEXT: vinsertf128 $1, 224(%r8), %ymm5, %ymm57170; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5],ymm0[6,7]7171; AVX-NEXT: vbroadcastss 224(%r9), %ymm57172; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3,4],ymm5[5],ymm0[6,7]7173; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7174; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload7175; AVX-NEXT: # xmm5 = xmm0[2],mem[2],xmm0[3],mem[3]7176; AVX-NEXT: vshufps {{.*#+}} xmm5 = xmm5[2,3,2,3]7177; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7178; AVX-NEXT: vinsertf128 $1, %xmm5, %ymm0, %ymm57179; AVX-NEXT: vpermilps {{.*#+}} xmm6 = mem[2,1,3,3]7180; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm6, %ymm67181; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5],ymm6[6,7]7182; AVX-NEXT: vmovaps 224(%r9), %xmm67183; AVX-NEXT: vshufps {{.*#+}} xmm7 = xmm6[0,2,2,3]7184; AVX-NEXT: vinsertf128 $1, %xmm6, %ymm7, %ymm67185; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4,5,6],ymm6[7]7186; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7187; AVX-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload7188; AVX-NEXT: # ymm6 = ymm0[2],mem[2],ymm0[3],mem[3],ymm0[6],mem[6],ymm0[7],mem[7]7189; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7190; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7191; AVX-NEXT: vshufps {{.*#+}} ymm7 = ymm0[1,2],ymm1[1,2],ymm0[5,6],ymm1[5,6]7192; AVX-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm7[2,3,2,3]7193; AVX-NEXT: vshufps {{.*#+}} ymm7 = ymm7[0,2,1,3,4,6,5,7]7194; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm6[4,5],ymm7[6,7]7195; AVX-NEXT: vbroadcastss 244(%r8), %xmm87196; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3],ymm7[4,5,6,7]7197; AVX-NEXT: vbroadcastss 244(%r9), %ymm87198; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm8[3],ymm7[4,5,6,7]7199; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm1[3,0],ymm0[3,0],ymm1[7,4],ymm0[7,4]7200; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm8[2,0,2,3,6,4,6,7]7201; AVX-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm8[2,3]7202; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm8 = mem[0,1,0,1]7203; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm8[2,1,3,3,6,5,7,7]7204; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm8[0,1],ymm6[2,3,4,5],ymm8[6,7]7205; AVX-NEXT: vbroadcastf128 {{.*#+}} ymm8 = mem[0,1,0,1]7206; AVX-NEXT: vshufps {{.*#+}} ymm8 = ymm8[0,2,2,3,4,6,6,7]7207; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm6[0],ymm8[1],ymm6[2,3,4,5,6],ymm8[7]7208; AVX-NEXT: movq {{[0-9]+}}(%rsp), %rax7209; AVX-NEXT: vmovaps %ymm6, 1504(%rax)7210; AVX-NEXT: vmovaps %ymm7, 1472(%rax)7211; AVX-NEXT: vmovaps %ymm5, 1408(%rax)7212; AVX-NEXT: vmovaps %ymm2, 1344(%rax)7213; AVX-NEXT: vmovaps %ymm3, 1312(%rax)7214; AVX-NEXT: vmovaps %ymm4, 1280(%rax)7215; AVX-NEXT: vmovaps %ymm9, 1216(%rax)7216; AVX-NEXT: vmovaps %ymm10, 1152(%rax)7217; AVX-NEXT: vmovaps %ymm15, 1120(%rax)7218; AVX-NEXT: vmovaps %ymm14, 1088(%rax)7219; AVX-NEXT: vmovaps %ymm13, 1024(%rax)7220; AVX-NEXT: vmovaps %ymm11, 960(%rax)7221; AVX-NEXT: vmovaps %ymm12, 928(%rax)7222; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7223; AVX-NEXT: vmovaps %ymm0, 896(%rax)7224; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7225; AVX-NEXT: vmovaps %ymm0, 832(%rax)7226; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7227; AVX-NEXT: vmovaps %ymm0, 768(%rax)7228; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7229; AVX-NEXT: vmovaps %ymm0, 736(%rax)7230; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7231; AVX-NEXT: vmovaps %ymm0, 704(%rax)7232; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7233; AVX-NEXT: vmovaps %ymm0, 640(%rax)7234; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7235; AVX-NEXT: vmovaps %ymm0, 576(%rax)7236; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7237; AVX-NEXT: vmovaps %ymm0, 544(%rax)7238; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7239; AVX-NEXT: vmovaps %ymm0, 512(%rax)7240; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7241; AVX-NEXT: vmovaps %ymm0, 448(%rax)7242; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7243; AVX-NEXT: vmovaps %ymm0, 384(%rax)7244; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7245; AVX-NEXT: vmovaps %ymm0, 352(%rax)7246; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7247; AVX-NEXT: vmovaps %ymm0, 320(%rax)7248; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7249; AVX-NEXT: vmovaps %ymm0, 256(%rax)7250; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7251; AVX-NEXT: vmovaps %ymm0, 192(%rax)7252; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7253; AVX-NEXT: vmovaps %ymm0, 160(%rax)7254; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7255; AVX-NEXT: vmovaps %ymm0, 128(%rax)7256; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7257; AVX-NEXT: vmovaps %ymm0, 64(%rax)7258; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7259; AVX-NEXT: vmovaps %ymm0, (%rax)7260; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7261; AVX-NEXT: vmovaps %ymm0, 1440(%rax)7262; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7263; AVX-NEXT: vmovaps %ymm0, 1376(%rax)7264; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7265; AVX-NEXT: vmovaps %ymm0, 1248(%rax)7266; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7267; AVX-NEXT: vmovaps %ymm0, 1184(%rax)7268; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7269; AVX-NEXT: vmovaps %ymm0, 1056(%rax)7270; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7271; AVX-NEXT: vmovaps %ymm0, 992(%rax)7272; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7273; AVX-NEXT: vmovaps %ymm0, 864(%rax)7274; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7275; AVX-NEXT: vmovaps %ymm0, 800(%rax)7276; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7277; AVX-NEXT: vmovaps %ymm0, 672(%rax)7278; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7279; AVX-NEXT: vmovaps %ymm0, 608(%rax)7280; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7281; AVX-NEXT: vmovaps %ymm0, 480(%rax)7282; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7283; AVX-NEXT: vmovaps %ymm0, 416(%rax)7284; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7285; AVX-NEXT: vmovaps %ymm0, 288(%rax)7286; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7287; AVX-NEXT: vmovaps %ymm0, 224(%rax)7288; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7289; AVX-NEXT: vmovaps %ymm0, 96(%rax)7290; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7291; AVX-NEXT: vmovaps %ymm0, 32(%rax)7292; AVX-NEXT: addq $2056, %rsp # imm = 0x8087293; AVX-NEXT: vzeroupper7294; AVX-NEXT: retq7295;7296; AVX2-LABEL: store_i32_stride6_vf64:7297; AVX2: # %bb.0:7298; AVX2-NEXT: subq $2504, %rsp # imm = 0x9C87299; AVX2-NEXT: vmovdqa (%rsi), %xmm07300; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7301; AVX2-NEXT: vmovdqa 32(%rsi), %xmm17302; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7303; AVX2-NEXT: vmovdqa (%rdi), %xmm37304; AVX2-NEXT: vmovdqa 32(%rdi), %xmm107305; AVX2-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7306; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]7307; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7308; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm47309; AVX2-NEXT: vmovdqa (%rcx), %xmm07310; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7311; AVX2-NEXT: vmovdqa 32(%rcx), %xmm87312; AVX2-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7313; AVX2-NEXT: vmovdqa 64(%rcx), %xmm77314; AVX2-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7315; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]7316; AVX2-NEXT: vmovdqa (%rdx), %xmm07317; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7318; AVX2-NEXT: vmovdqa 32(%rdx), %xmm97319; AVX2-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7320; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,2,2,3]7321; AVX2-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]7322; AVX2-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,1,2,1]7323; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]7324; AVX2-NEXT: vmovdqa (%r8), %xmm27325; AVX2-NEXT: vmovdqa 32(%r8), %xmm67326; AVX2-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7327; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm2[0],zero,xmm2[1],zero7328; AVX2-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7329; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]7330; AVX2-NEXT: vpbroadcastd 4(%r9), %ymm57331; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]7332; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7333; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]7334; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7335; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm8[1,2,2,3]7336; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm9[1,2,2,3]7337; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]7338; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm57339; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]7340; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]7341; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm6[0],zero,xmm6[1],zero7342; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]7343; AVX2-NEXT: vpbroadcastd 36(%r9), %ymm57344; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]7345; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7346; AVX2-NEXT: vmovdqa 64(%rdx), %xmm07347; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7348; AVX2-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]7349; AVX2-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]7350; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]7351; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm4[0,1,2,1]7352; AVX2-NEXT: vmovdqa 64(%rsi), %xmm47353; AVX2-NEXT: vmovdqa 64(%rdi), %xmm57354; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]7355; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7356; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm77357; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]7358; AVX2-NEXT: vmovdqa 64(%r8), %xmm07359; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7360; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm7 = xmm0[0],zero,xmm0[1],zero7361; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]7362; AVX2-NEXT: vpbroadcastd 68(%r9), %ymm77363; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm7[3],ymm6[4,5,6,7]7364; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7365; AVX2-NEXT: vmovdqa 96(%rcx), %xmm07366; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7367; AVX2-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,2,2,3]7368; AVX2-NEXT: vmovdqa 96(%rdx), %xmm07369; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7370; AVX2-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[1,2,2,3]7371; AVX2-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]7372; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm6[0,1,2,1]7373; AVX2-NEXT: vmovdqa 96(%rsi), %xmm67374; AVX2-NEXT: vmovdqa 96(%rdi), %xmm77375; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]7376; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7377; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm97378; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]7379; AVX2-NEXT: vmovdqa 96(%r8), %xmm07380; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7381; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm9 = xmm0[0],zero,xmm0[1],zero7382; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]7383; AVX2-NEXT: vpbroadcastd 100(%r9), %ymm97384; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm9[3],ymm8[4,5,6,7]7385; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7386; AVX2-NEXT: vmovdqa 128(%rcx), %xmm07387; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7388; AVX2-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[1,2,2,3]7389; AVX2-NEXT: vmovdqa 128(%rdx), %xmm07390; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7391; AVX2-NEXT: vpshufd {{.*#+}} xmm9 = xmm0[1,2,2,3]7392; AVX2-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]7393; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm8[0,1,2,1]7394; AVX2-NEXT: vmovdqa 128(%rsi), %xmm87395; AVX2-NEXT: vmovdqa 128(%rdi), %xmm97396; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]7397; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7398; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm117399; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]7400; AVX2-NEXT: vmovdqa 128(%r8), %xmm07401; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7402; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm11 = xmm0[0],zero,xmm0[1],zero7403; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]7404; AVX2-NEXT: vpbroadcastd 132(%r9), %ymm117405; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5,6,7]7406; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7407; AVX2-NEXT: vmovdqa 160(%rcx), %xmm07408; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7409; AVX2-NEXT: vpshufd {{.*#+}} xmm10 = xmm0[1,2,2,3]7410; AVX2-NEXT: vmovdqa 160(%rdx), %xmm07411; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7412; AVX2-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[1,2,2,3]7413; AVX2-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]7414; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm10[0,1,2,1]7415; AVX2-NEXT: vmovdqa 160(%rsi), %xmm107416; AVX2-NEXT: vmovdqa 160(%rdi), %xmm117417; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]7418; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7419; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm137420; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5],ymm12[6,7]7421; AVX2-NEXT: vmovdqa 160(%r8), %xmm07422; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7423; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm13 = xmm0[0],zero,xmm0[1],zero7424; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6,7]7425; AVX2-NEXT: vpbroadcastd 164(%r9), %ymm137426; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5,6,7]7427; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7428; AVX2-NEXT: vmovdqa 192(%rcx), %xmm07429; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7430; AVX2-NEXT: vpshufd {{.*#+}} xmm12 = xmm0[1,2,2,3]7431; AVX2-NEXT: vmovdqa 192(%rdx), %xmm07432; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7433; AVX2-NEXT: vpshufd {{.*#+}} xmm13 = xmm0[1,2,2,3]7434; AVX2-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]7435; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm12[0,1,2,1]7436; AVX2-NEXT: vmovdqa 192(%rsi), %xmm127437; AVX2-NEXT: vmovdqa 192(%rdi), %xmm137438; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]7439; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7440; AVX2-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm157441; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]7442; AVX2-NEXT: vmovdqa 192(%r8), %xmm07443; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7444; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = xmm0[0],zero,xmm0[1],zero7445; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7446; AVX2-NEXT: vpbroadcastd 196(%r9), %ymm157447; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7448; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7449; AVX2-NEXT: vmovdqa 224(%rcx), %xmm07450; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7451; AVX2-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[1,2,2,3]7452; AVX2-NEXT: vmovdqa 224(%rdx), %xmm07453; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7454; AVX2-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[1,2,2,3]7455; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7456; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm14[0,1,2,1]7457; AVX2-NEXT: vmovdqa 224(%rsi), %xmm147458; AVX2-NEXT: vmovdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7459; AVX2-NEXT: vmovdqa 224(%rdi), %xmm07460; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7461; AVX2-NEXT: vpunpckhdq {{.*#+}} xmm14 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]7462; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7463; AVX2-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm147464; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm14[4,5],ymm1[6,7]7465; AVX2-NEXT: vmovdqa 224(%r8), %xmm147466; AVX2-NEXT: vmovdqa %xmm14, (%rsp) # 16-byte Spill7467; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm14 = xmm14[0],zero,xmm14[1],zero7468; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]7469; AVX2-NEXT: vpbroadcastd 228(%r9), %ymm147470; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm14[3],ymm0[4,5,6,7]7471; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7472; AVX2-NEXT: vpbroadcastd (%rcx), %xmm07473; AVX2-NEXT: vpbroadcastd (%rdx), %xmm147474; AVX2-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]7475; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm1 # 16-byte Folded Reload7476; AVX2-NEXT: # xmm1 = xmm3[0],mem[0],xmm3[1],mem[1]7477; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]7478; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]7479; AVX2-NEXT: vpbroadcastq %xmm2, %ymm17480; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]7481; AVX2-NEXT: vmovdqa (%r9), %xmm17482; AVX2-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7483; AVX2-NEXT: vpbroadcastd %xmm1, %ymm17484; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]7485; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7486; AVX2-NEXT: vmovdqa (%rdx), %ymm07487; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7488; AVX2-NEXT: vmovdqa (%rcx), %ymm17489; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7490; AVX2-NEXT: vpshufd {{.*#+}} ymm2 = ymm1[0,1,2,2,4,5,6,6]7491; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm0[1,1,2,3,5,5,6,7]7492; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm14[0],ymm2[1],ymm14[2],ymm2[3],ymm14[4],ymm2[5],ymm14[6],ymm2[7]7493; AVX2-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,1,2,3]7494; AVX2-NEXT: vmovdqa (%rdi), %ymm07495; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7496; AVX2-NEXT: vmovdqa (%rsi), %ymm17497; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7498; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7499; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7500; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm0[4,5],ymm2[6,7]7501; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm14 = mem[0],zero,mem[1],zero7502; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm14[2,3],ymm2[4,5,6,7]7503; AVX2-NEXT: vpbroadcastd 20(%r9), %ymm147504; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm14[3],ymm2[4,5,6,7]7505; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7506; AVX2-NEXT: vbroadcastss 32(%rcx), %xmm27507; AVX2-NEXT: vbroadcastss 32(%rdx), %xmm147508; AVX2-NEXT: vunpcklps {{.*#+}} xmm2 = xmm14[0],xmm2[0],xmm14[1],xmm2[1]7509; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7510; AVX2-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload7511; AVX2-NEXT: # xmm3 = xmm0[0],mem[0],xmm0[1],mem[1]7512; AVX2-NEXT: vpermpd {{.*#+}} ymm3 = ymm3[0,1,2,1]7513; AVX2-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5,6,7]7514; AVX2-NEXT: vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 16-byte Folded Reload7515; AVX2-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]7516; AVX2-NEXT: vmovaps 32(%r9), %xmm07517; AVX2-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7518; AVX2-NEXT: vbroadcastss %xmm0, %ymm37519; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]7520; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7521; AVX2-NEXT: vmovdqa 32(%rdx), %ymm07522; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7523; AVX2-NEXT: vmovdqa 32(%rcx), %ymm37524; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm3[0,1,2,2,4,5,6,6]7525; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm0[1,1,2,3,5,5,6,7]7526; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7527; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7528; AVX2-NEXT: vmovdqa 32(%rdi), %ymm07529; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7530; AVX2-NEXT: vmovdqa 32(%rsi), %ymm17531; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7532; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7533; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7534; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7535; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7536; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7537; AVX2-NEXT: vpbroadcastd 52(%r9), %ymm157538; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7539; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7540; AVX2-NEXT: vpbroadcastd 64(%rcx), %xmm147541; AVX2-NEXT: vpbroadcastd 64(%rdx), %xmm157542; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7543; AVX2-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]7544; AVX2-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]7545; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm14[2,3],ymm4[4,5,6,7]7546; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload7547; AVX2-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]7548; AVX2-NEXT: vmovdqa 64(%r9), %xmm07549; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7550; AVX2-NEXT: vpbroadcastd %xmm0, %ymm57551; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]7552; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7553; AVX2-NEXT: vmovdqa 64(%rdx), %ymm57554; AVX2-NEXT: vmovdqa 64(%rcx), %ymm47555; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm4[0,1,2,2,4,5,6,6]7556; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm5[1,1,2,3,5,5,6,7]7557; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7558; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7559; AVX2-NEXT: vmovdqa 64(%rdi), %ymm07560; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7561; AVX2-NEXT: vmovdqa 64(%rsi), %ymm17562; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7563; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7564; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7565; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7566; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7567; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7568; AVX2-NEXT: vpbroadcastd 84(%r9), %ymm157569; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7570; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7571; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7572; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload7573; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7574; AVX2-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]7575; AVX2-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]7576; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm14[2,3],ymm6[4,5,6,7]7577; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 16-byte Folded Reload7578; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]7579; AVX2-NEXT: vmovdqa 96(%r9), %xmm07580; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7581; AVX2-NEXT: vpbroadcastd %xmm0, %ymm77582; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]7583; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7584; AVX2-NEXT: vmovdqa 96(%rdx), %ymm77585; AVX2-NEXT: vmovdqa 96(%rcx), %ymm67586; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm6[0,1,2,2,4,5,6,6]7587; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm7[1,1,2,3,5,5,6,7]7588; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7589; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7590; AVX2-NEXT: vmovdqa 96(%rdi), %ymm07591; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7592; AVX2-NEXT: vmovdqa 96(%rsi), %ymm17593; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7594; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7595; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7596; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7597; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7598; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7599; AVX2-NEXT: vpbroadcastd 116(%r9), %ymm157600; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7601; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7602; AVX2-NEXT: vpbroadcastd 128(%rcx), %xmm147603; AVX2-NEXT: vpbroadcastd 128(%rdx), %xmm157604; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7605; AVX2-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]7606; AVX2-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]7607; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm14[2,3],ymm8[4,5,6,7]7608; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 16-byte Folded Reload7609; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]7610; AVX2-NEXT: vmovdqa 128(%r9), %xmm07611; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7612; AVX2-NEXT: vpbroadcastd %xmm0, %ymm97613; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4],ymm9[5],ymm8[6,7]7614; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7615; AVX2-NEXT: vmovdqa 128(%rdx), %ymm97616; AVX2-NEXT: vmovdqa 128(%rcx), %ymm87617; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm8[0,1,2,2,4,5,6,6]7618; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm9[1,1,2,3,5,5,6,7]7619; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7620; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7621; AVX2-NEXT: vmovdqa 128(%rdi), %ymm07622; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7623; AVX2-NEXT: vmovdqa 128(%rsi), %ymm17624; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7625; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7626; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7627; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7628; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7629; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7630; AVX2-NEXT: vpbroadcastd 148(%r9), %ymm157631; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7632; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7633; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7634; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload7635; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7636; AVX2-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]7637; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,1,2,1]7638; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm14[2,3],ymm10[4,5,6,7]7639; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 16-byte Folded Reload7640; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]7641; AVX2-NEXT: vmovdqa 160(%r9), %xmm07642; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7643; AVX2-NEXT: vpbroadcastd %xmm0, %ymm117644; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]7645; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7646; AVX2-NEXT: vmovdqa 160(%rdx), %ymm117647; AVX2-NEXT: vmovdqa 160(%rcx), %ymm107648; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm10[0,1,2,2,4,5,6,6]7649; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm11[1,1,2,3,5,5,6,7]7650; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7651; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7652; AVX2-NEXT: vmovdqa 160(%rdi), %ymm07653; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7654; AVX2-NEXT: vmovdqa 160(%rsi), %ymm17655; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7656; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7657; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7658; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7659; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7660; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7661; AVX2-NEXT: vpbroadcastd 180(%r9), %ymm157662; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7663; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7664; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload7665; AVX2-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload7666; AVX2-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7667; AVX2-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]7668; AVX2-NEXT: vpermq {{.*#+}} ymm12 = ymm12[0,1,2,1]7669; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm14[2,3],ymm12[4,5,6,7]7670; AVX2-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 16-byte Folded Reload7671; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5],ymm12[6,7]7672; AVX2-NEXT: vmovdqa 192(%r9), %xmm07673; AVX2-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7674; AVX2-NEXT: vpbroadcastd %xmm0, %ymm137675; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]7676; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7677; AVX2-NEXT: vmovdqa 192(%rdx), %ymm137678; AVX2-NEXT: vmovdqa 192(%rcx), %ymm127679; AVX2-NEXT: vpshufd {{.*#+}} ymm14 = ymm12[0,1,2,2,4,5,6,6]7680; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm13[1,1,2,3,5,5,6,7]7681; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]7682; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]7683; AVX2-NEXT: vmovdqa 192(%rdi), %ymm07684; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7685; AVX2-NEXT: vmovdqa 192(%rsi), %ymm17686; AVX2-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7687; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]7688; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7689; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]7690; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7691; AVX2-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]7692; AVX2-NEXT: vpbroadcastd 212(%r9), %ymm157693; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]7694; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7695; AVX2-NEXT: vbroadcastss 224(%rcx), %xmm147696; AVX2-NEXT: vbroadcastss 224(%rdx), %xmm157697; AVX2-NEXT: vunpcklps {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]7698; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7699; AVX2-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm15 # 16-byte Folded Reload7700; AVX2-NEXT: # xmm15 = xmm0[0],mem[0],xmm0[1],mem[1]7701; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]7702; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3],ymm15[4,5,6,7]7703; AVX2-NEXT: vbroadcastsd (%rsp), %ymm15 # 16-byte Folded Reload7704; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]7705; AVX2-NEXT: vmovaps 224(%r9), %xmm07706; AVX2-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill7707; AVX2-NEXT: vbroadcastss %xmm0, %ymm157708; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]7709; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7710; AVX2-NEXT: vmovdqa 224(%rdx), %ymm147711; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7712; AVX2-NEXT: vmovdqa 224(%rcx), %ymm07713; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7714; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]7715; AVX2-NEXT: vpshufd {{.*#+}} ymm15 = ymm14[1,1,2,3,5,5,6,7]7716; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0],ymm0[1],ymm15[2],ymm0[3],ymm15[4],ymm0[5],ymm15[6],ymm0[7]7717; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,1,2,3]7718; AVX2-NEXT: vmovdqa 224(%rdi), %ymm147719; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7720; AVX2-NEXT: vmovdqa 224(%rsi), %ymm07721; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7722; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm14 = ymm14[2],ymm0[2],ymm14[3],ymm0[3],ymm14[6],ymm0[6],ymm14[7],ymm0[7]7723; AVX2-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7724; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm14[4,5],ymm1[6,7]7725; AVX2-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero7726; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]7727; AVX2-NEXT: vpbroadcastd 244(%r9), %ymm157728; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3],ymm0[4,5,6,7]7729; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7730; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7731; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7732; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7733; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7734; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload7735; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm14, %ymm07736; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload7737; AVX2-NEXT: # xmm15 = mem[2,2,3,3]7738; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]7739; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1],ymm0[2,3,4,5],ymm15[6,7]7740; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload7741; AVX2-NEXT: # xmm15 = mem[2,2,3,3]7742; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]7743; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4,5,6],ymm15[7]7744; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7745; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7746; AVX2-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7747; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7748; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7749; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7750; AVX2-NEXT: vunpcklps {{.*#+}} ymm15 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]7751; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,2]7752; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[2,1,2,3]7753; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]7754; AVX2-NEXT: vmovaps (%r8), %ymm157755; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5],ymm0[6,7]7756; AVX2-NEXT: vbroadcastss 16(%r9), %ymm147757; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]7758; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7759; AVX2-NEXT: vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]7760; AVX2-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7761; AVX2-NEXT: vperm2f128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7762; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7763; AVX2-NEXT: vshufps {{.*#+}} ymm1 = ymm15[2,1,3,3,6,5,7,7]7764; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[2,1,2,3]7765; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7766; AVX2-NEXT: vpermilps {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]7767; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[2,1,2,3]7768; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7769; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7770; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7771; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7772; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7773; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7774; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7775; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07776; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7777; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7778; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7779; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7780; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7781; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7782; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7783; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7784; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7785; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7786; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7787; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7788; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload7789; AVX2-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]7790; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7791; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7792; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]7793; AVX2-NEXT: vmovdqa 32(%r8), %ymm17794; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]7795; AVX2-NEXT: vpbroadcastd 48(%r9), %ymm147796; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]7797; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7798; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]7799; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7800; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7801; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7802; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7803; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7804; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7805; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]7806; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7807; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7808; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7809; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7810; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7811; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7812; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7813; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7814; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07815; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7816; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7817; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7818; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7819; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7820; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7821; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7822; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7823; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7824; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7825; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7826; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7827; AVX2-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm5[0],ymm4[0],ymm5[1],ymm4[1],ymm5[4],ymm4[4],ymm5[5],ymm4[5]7828; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7829; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7830; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]7831; AVX2-NEXT: vmovdqa 64(%r8), %ymm17832; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]7833; AVX2-NEXT: vpbroadcastd 80(%r9), %ymm27834; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]7835; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7836; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm5[2],ymm4[2],ymm5[3],ymm4[3],ymm5[6],ymm4[6],ymm5[7],ymm4[7]7837; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7838; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7839; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7840; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7841; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7842; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7843; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]7844; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7845; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7846; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7847; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7848; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7849; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7850; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7851; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7852; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07853; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7854; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7855; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7856; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7857; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7858; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7859; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7860; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7861; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7862; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7863; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7864; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7865; AVX2-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]7866; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7867; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7868; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]7869; AVX2-NEXT: vmovdqa 96(%r8), %ymm17870; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]7871; AVX2-NEXT: vpbroadcastd 112(%r9), %ymm27872; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]7873; AVX2-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill7874; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm7[2],ymm6[2],ymm7[3],ymm6[3],ymm7[6],ymm6[6],ymm7[7],ymm6[7]7875; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7876; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7877; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7878; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7879; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7880; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7881; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]7882; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7883; AVX2-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7884; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7885; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7886; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7887; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7888; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7889; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07890; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7891; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7892; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7893; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7894; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7895; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7896; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7897; AVX2-NEXT: vblendps {{.*#+}} ymm7 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7898; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7899; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7900; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7901; AVX2-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm9[0],ymm8[0],ymm9[1],ymm8[1],ymm9[4],ymm8[4],ymm9[5],ymm8[5]7902; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7903; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7904; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]7905; AVX2-NEXT: vmovdqa 128(%r8), %ymm17906; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]7907; AVX2-NEXT: vpbroadcastd 144(%r9), %ymm27908; AVX2-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]7909; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm9[2],ymm8[2],ymm9[3],ymm8[3],ymm9[6],ymm8[6],ymm9[7],ymm8[7]7910; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7911; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7912; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7913; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]7914; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7915; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7916; AVX2-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]7917; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]7918; AVX2-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7919; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7920; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7921; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7922; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7923; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload7924; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm07925; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7926; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7927; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7928; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]7929; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload7930; AVX2-NEXT: # xmm1 = mem[2,2,3,3]7931; AVX2-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]7932; AVX2-NEXT: vblendps {{.*#+}} ymm9 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]7933; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7934; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7935; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7936; AVX2-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]7937; AVX2-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]7938; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7939; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]7940; AVX2-NEXT: vmovdqa 160(%r8), %ymm147941; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5],ymm0[6,7]7942; AVX2-NEXT: vpbroadcastd 176(%r9), %ymm17943; AVX2-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]7944; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]7945; AVX2-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]7946; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7947; AVX2-NEXT: # ymm0 = mem[2,3],ymm0[2,3]7948; AVX2-NEXT: vpshufd {{.*#+}} ymm10 = ymm14[2,1,3,3,6,5,7,7]7949; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]7950; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,3,4,5],ymm10[6,7]7951; AVX2-NEXT: vpshufd {{.*#+}} ymm10 = mem[0,2,2,3,4,6,6,7]7952; AVX2-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]7953; AVX2-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0],ymm10[1],ymm0[2,3,4,5,6],ymm10[7]7954; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload7955; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload7956; AVX2-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]7957; AVX2-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]7958; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7959; AVX2-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm07960; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload7961; AVX2-NEXT: # xmm11 = mem[2,2,3,3]7962; AVX2-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]7963; AVX2-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1],ymm0[2,3,4,5],ymm11[6,7]7964; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload7965; AVX2-NEXT: # xmm11 = mem[2,2,3,3]7966; AVX2-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]7967; AVX2-NEXT: vblendps {{.*#+}} ymm11 = ymm0[0],ymm11[1],ymm0[2,3,4,5,6],ymm11[7]7968; AVX2-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload7969; AVX2-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload7970; AVX2-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]7971; AVX2-NEXT: vpunpckldq {{.*#+}} ymm14 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]7972; AVX2-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,2,2,2]7973; AVX2-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]7974; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]7975; AVX2-NEXT: vmovdqa 192(%r8), %ymm147976; AVX2-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5],ymm0[6,7]7977; AVX2-NEXT: vpbroadcastd 208(%r9), %ymm157978; AVX2-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]7979; AVX2-NEXT: vpunpckhdq {{.*#+}} ymm12 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]7980; AVX2-NEXT: vpshufd {{.*#+}} ymm12 = ymm12[2,3,2,3,6,7,6,7]7981; AVX2-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload7982; AVX2-NEXT: # ymm12 = mem[2,3],ymm12[2,3]7983; AVX2-NEXT: vpshufd {{.*#+}} ymm13 = ymm14[2,1,3,3,6,5,7,7]7984; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]7985; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2,3,4,5],ymm13[6,7]7986; AVX2-NEXT: vpshufd {{.*#+}} ymm13 = mem[0,2,2,3,4,6,6,7]7987; AVX2-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]7988; AVX2-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0],ymm13[1],ymm12[2,3,4,5,6],ymm13[7]7989; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload7990; AVX2-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm13 # 16-byte Folded Reload7991; AVX2-NEXT: # xmm13 = xmm4[2],mem[2],xmm4[3],mem[3]7992; AVX2-NEXT: vshufps {{.*#+}} xmm13 = xmm13[2,3,2,3]7993; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload7994; AVX2-NEXT: vinsertf128 $1, %xmm13, %ymm4, %ymm137995; AVX2-NEXT: vpermilps $250, (%rsp), %xmm14 # 16-byte Folded Reload7996; AVX2-NEXT: # xmm14 = mem[2,2,3,3]7997; AVX2-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[0,1,2,1]7998; AVX2-NEXT: vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5],ymm14[6,7]7999; AVX2-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8000; AVX2-NEXT: # xmm14 = mem[2,2,3,3]8001; AVX2-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[0,1,2,1]8002; AVX2-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0],ymm14[1],ymm13[2,3,4,5,6],ymm14[7]8003; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8004; AVX2-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload8005; AVX2-NEXT: # ymm14 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8006; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8007; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8008; AVX2-NEXT: vunpcklps {{.*#+}} ymm15 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]8009; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,2]8010; AVX2-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[2,1,2,3]8011; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8012; AVX2-NEXT: vmovaps 224(%r8), %ymm158013; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]8014; AVX2-NEXT: vbroadcastss 240(%r9), %ymm48015; AVX2-NEXT: vblendps {{.*#+}} ymm4 = ymm14[0,1,2,3,4],ymm4[5],ymm14[6,7]8016; AVX2-NEXT: vunpckhps {{.*#+}} ymm14 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8017; AVX2-NEXT: vshufps {{.*#+}} ymm14 = ymm14[2,3,2,3,6,7,6,7]8018; AVX2-NEXT: vperm2f128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload8019; AVX2-NEXT: # ymm14 = mem[2,3],ymm14[2,3]8020; AVX2-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,1,3,3,6,5,7,7]8021; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,1,2,3]8022; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5],ymm15[6,7]8023; AVX2-NEXT: vpermilps {{.*#+}} ymm15 = mem[0,2,2,3,4,6,6,7]8024; AVX2-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,1,2,3]8025; AVX2-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0],ymm15[1],ymm14[2,3,4,5,6],ymm15[7]8026; AVX2-NEXT: movq {{[0-9]+}}(%rsp), %rax8027; AVX2-NEXT: vmovaps %ymm14, 1504(%rax)8028; AVX2-NEXT: vmovaps %ymm4, 1440(%rax)8029; AVX2-NEXT: vmovaps %ymm13, 1408(%rax)8030; AVX2-NEXT: vmovdqa %ymm12, 1312(%rax)8031; AVX2-NEXT: vmovdqa %ymm2, 1248(%rax)8032; AVX2-NEXT: vmovaps %ymm11, 1216(%rax)8033; AVX2-NEXT: vmovdqa %ymm10, 1120(%rax)8034; AVX2-NEXT: vmovdqa %ymm3, 1056(%rax)8035; AVX2-NEXT: vmovaps %ymm9, 1024(%rax)8036; AVX2-NEXT: vmovdqa %ymm8, 928(%rax)8037; AVX2-NEXT: vmovdqa %ymm5, 864(%rax)8038; AVX2-NEXT: vmovaps %ymm7, 832(%rax)8039; AVX2-NEXT: vmovdqa %ymm6, 736(%rax)8040; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8041; AVX2-NEXT: vmovaps %ymm0, 672(%rax)8042; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8043; AVX2-NEXT: vmovaps %ymm0, 640(%rax)8044; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8045; AVX2-NEXT: vmovaps %ymm0, 544(%rax)8046; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8047; AVX2-NEXT: vmovaps %ymm0, 480(%rax)8048; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8049; AVX2-NEXT: vmovaps %ymm0, 448(%rax)8050; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8051; AVX2-NEXT: vmovaps %ymm0, 352(%rax)8052; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8053; AVX2-NEXT: vmovaps %ymm0, 288(%rax)8054; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8055; AVX2-NEXT: vmovaps %ymm0, 256(%rax)8056; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8057; AVX2-NEXT: vmovaps %ymm0, 160(%rax)8058; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8059; AVX2-NEXT: vmovaps %ymm0, 96(%rax)8060; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8061; AVX2-NEXT: vmovaps %ymm0, 64(%rax)8062; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8063; AVX2-NEXT: vmovaps %ymm0, 1472(%rax)8064; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8065; AVX2-NEXT: vmovaps %ymm0, 1344(%rax)8066; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8067; AVX2-NEXT: vmovaps %ymm0, 1280(%rax)8068; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8069; AVX2-NEXT: vmovaps %ymm0, 1152(%rax)8070; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8071; AVX2-NEXT: vmovaps %ymm0, 1088(%rax)8072; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8073; AVX2-NEXT: vmovaps %ymm0, 960(%rax)8074; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8075; AVX2-NEXT: vmovaps %ymm0, 896(%rax)8076; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8077; AVX2-NEXT: vmovaps %ymm0, 768(%rax)8078; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8079; AVX2-NEXT: vmovaps %ymm0, 704(%rax)8080; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8081; AVX2-NEXT: vmovaps %ymm0, 576(%rax)8082; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8083; AVX2-NEXT: vmovaps %ymm0, 512(%rax)8084; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8085; AVX2-NEXT: vmovaps %ymm0, 384(%rax)8086; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8087; AVX2-NEXT: vmovaps %ymm0, 320(%rax)8088; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8089; AVX2-NEXT: vmovaps %ymm0, 192(%rax)8090; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8091; AVX2-NEXT: vmovaps %ymm0, 128(%rax)8092; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8093; AVX2-NEXT: vmovaps %ymm0, (%rax)8094; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8095; AVX2-NEXT: vmovaps %ymm0, 1376(%rax)8096; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8097; AVX2-NEXT: vmovaps %ymm0, 1184(%rax)8098; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8099; AVX2-NEXT: vmovaps %ymm0, 992(%rax)8100; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8101; AVX2-NEXT: vmovaps %ymm0, 800(%rax)8102; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8103; AVX2-NEXT: vmovaps %ymm0, 608(%rax)8104; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8105; AVX2-NEXT: vmovaps %ymm0, 416(%rax)8106; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8107; AVX2-NEXT: vmovaps %ymm0, 224(%rax)8108; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8109; AVX2-NEXT: vmovaps %ymm0, 32(%rax)8110; AVX2-NEXT: addq $2504, %rsp # imm = 0x9C88111; AVX2-NEXT: vzeroupper8112; AVX2-NEXT: retq8113;8114; AVX2-FP-LABEL: store_i32_stride6_vf64:8115; AVX2-FP: # %bb.0:8116; AVX2-FP-NEXT: subq $2504, %rsp # imm = 0x9C88117; AVX2-FP-NEXT: vmovdqa (%rsi), %xmm08118; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8119; AVX2-FP-NEXT: vmovdqa 32(%rsi), %xmm18120; AVX2-FP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8121; AVX2-FP-NEXT: vmovdqa (%rdi), %xmm38122; AVX2-FP-NEXT: vmovdqa 32(%rdi), %xmm108123; AVX2-FP-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8124; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm3[2],xmm0[2],xmm3[3],xmm0[3]8125; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8126; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm48127; AVX2-FP-NEXT: vmovdqa (%rcx), %xmm08128; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8129; AVX2-FP-NEXT: vmovdqa 32(%rcx), %xmm88130; AVX2-FP-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8131; AVX2-FP-NEXT: vmovdqa 64(%rcx), %xmm78132; AVX2-FP-NEXT: vmovdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8133; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]8134; AVX2-FP-NEXT: vmovdqa (%rdx), %xmm08135; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8136; AVX2-FP-NEXT: vmovdqa 32(%rdx), %xmm98137; AVX2-FP-NEXT: vmovdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8138; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,2,2,3]8139; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm5 = xmm6[0],xmm5[0],xmm6[1],xmm5[1]8140; AVX2-FP-NEXT: vpermq {{.*#+}} ymm5 = ymm5[0,1,2,1]8141; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]8142; AVX2-FP-NEXT: vmovdqa (%r8), %xmm28143; AVX2-FP-NEXT: vmovdqa 32(%r8), %xmm68144; AVX2-FP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8145; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm2[0],zero,xmm2[1],zero8146; AVX2-FP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8147; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]8148; AVX2-FP-NEXT: vpbroadcastd 4(%r9), %ymm58149; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]8150; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8151; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]8152; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8153; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm8[1,2,2,3]8154; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm9[1,2,2,3]8155; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]8156; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm58157; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]8158; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]8159; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm6[0],zero,xmm6[1],zero8160; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3],ymm4[4,5,6,7]8161; AVX2-FP-NEXT: vpbroadcastd 36(%r9), %ymm58162; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2],ymm5[3],ymm4[4,5,6,7]8163; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8164; AVX2-FP-NEXT: vmovdqa 64(%rdx), %xmm08165; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8166; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm4 = xmm7[1,2,2,3]8167; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]8168; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]8169; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm4[0,1,2,1]8170; AVX2-FP-NEXT: vmovdqa 64(%rsi), %xmm48171; AVX2-FP-NEXT: vmovdqa 64(%rdi), %xmm58172; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]8173; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8174; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm78175; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]8176; AVX2-FP-NEXT: vmovdqa 64(%r8), %xmm08177; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8178; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm7 = xmm0[0],zero,xmm0[1],zero8179; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3],ymm6[4,5,6,7]8180; AVX2-FP-NEXT: vpbroadcastd 68(%r9), %ymm78181; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2],ymm7[3],ymm6[4,5,6,7]8182; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8183; AVX2-FP-NEXT: vmovdqa 96(%rcx), %xmm08184; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8185; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,2,2,3]8186; AVX2-FP-NEXT: vmovdqa 96(%rdx), %xmm08187; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8188; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm7 = xmm0[1,2,2,3]8189; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]8190; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm6[0,1,2,1]8191; AVX2-FP-NEXT: vmovdqa 96(%rsi), %xmm68192; AVX2-FP-NEXT: vmovdqa 96(%rdi), %xmm78193; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]8194; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8195; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm98196; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]8197; AVX2-FP-NEXT: vmovdqa 96(%r8), %xmm08198; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8199; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm9 = xmm0[0],zero,xmm0[1],zero8200; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5,6,7]8201; AVX2-FP-NEXT: vpbroadcastd 100(%r9), %ymm98202; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2],ymm9[3],ymm8[4,5,6,7]8203; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8204; AVX2-FP-NEXT: vmovdqa 128(%rcx), %xmm08205; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8206; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm8 = xmm0[1,2,2,3]8207; AVX2-FP-NEXT: vmovdqa 128(%rdx), %xmm08208; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8209; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm9 = xmm0[1,2,2,3]8210; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]8211; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm8[0,1,2,1]8212; AVX2-FP-NEXT: vmovdqa 128(%rsi), %xmm88213; AVX2-FP-NEXT: vmovdqa 128(%rdi), %xmm98214; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]8215; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8216; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm118217; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]8218; AVX2-FP-NEXT: vmovdqa 128(%r8), %xmm08219; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8220; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm11 = xmm0[0],zero,xmm0[1],zero8221; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm11[2,3],ymm10[4,5,6,7]8222; AVX2-FP-NEXT: vpbroadcastd 132(%r9), %ymm118223; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2],ymm11[3],ymm10[4,5,6,7]8224; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8225; AVX2-FP-NEXT: vmovdqa 160(%rcx), %xmm08226; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8227; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm10 = xmm0[1,2,2,3]8228; AVX2-FP-NEXT: vmovdqa 160(%rdx), %xmm08229; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8230; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm11 = xmm0[1,2,2,3]8231; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]8232; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm10[0,1,2,1]8233; AVX2-FP-NEXT: vmovdqa 160(%rsi), %xmm108234; AVX2-FP-NEXT: vmovdqa 160(%rdi), %xmm118235; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm11[2],xmm10[2],xmm11[3],xmm10[3]8236; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8237; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm138238; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5],ymm12[6,7]8239; AVX2-FP-NEXT: vmovdqa 160(%r8), %xmm08240; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8241; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm13 = xmm0[0],zero,xmm0[1],zero8242; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6,7]8243; AVX2-FP-NEXT: vpbroadcastd 164(%r9), %ymm138244; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2],ymm13[3],ymm12[4,5,6,7]8245; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8246; AVX2-FP-NEXT: vmovdqa 192(%rcx), %xmm08247; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8248; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm12 = xmm0[1,2,2,3]8249; AVX2-FP-NEXT: vmovdqa 192(%rdx), %xmm08250; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8251; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm13 = xmm0[1,2,2,3]8252; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]8253; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm12[0,1,2,1]8254; AVX2-FP-NEXT: vmovdqa 192(%rsi), %xmm128255; AVX2-FP-NEXT: vmovdqa 192(%rdi), %xmm138256; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm13[2],xmm12[2],xmm13[3],xmm12[3]8257; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8258; AVX2-FP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm158259; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]8260; AVX2-FP-NEXT: vmovdqa 192(%r8), %xmm08261; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8262; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = xmm0[0],zero,xmm0[1],zero8263; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8264; AVX2-FP-NEXT: vpbroadcastd 196(%r9), %ymm158265; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8266; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8267; AVX2-FP-NEXT: vmovdqa 224(%rcx), %xmm08268; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8269; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[1,2,2,3]8270; AVX2-FP-NEXT: vmovdqa 224(%rdx), %xmm08271; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8272; AVX2-FP-NEXT: vpshufd {{.*#+}} xmm15 = xmm0[1,2,2,3]8273; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8274; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm14[0,1,2,1]8275; AVX2-FP-NEXT: vmovdqa 224(%rsi), %xmm148276; AVX2-FP-NEXT: vmovdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8277; AVX2-FP-NEXT: vmovdqa 224(%rdi), %xmm08278; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8279; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} xmm14 = xmm0[2],xmm14[2],xmm0[3],xmm14[3]8280; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8281; AVX2-FP-NEXT: vinserti128 $1, %xmm14, %ymm0, %ymm148282; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm14[4,5],ymm1[6,7]8283; AVX2-FP-NEXT: vmovdqa 224(%r8), %xmm148284; AVX2-FP-NEXT: vmovdqa %xmm14, (%rsp) # 16-byte Spill8285; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm14 = xmm14[0],zero,xmm14[1],zero8286; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]8287; AVX2-FP-NEXT: vpbroadcastd 228(%r9), %ymm148288; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm14[3],ymm0[4,5,6,7]8289; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8290; AVX2-FP-NEXT: vpbroadcastd (%rcx), %xmm08291; AVX2-FP-NEXT: vpbroadcastd (%rdx), %xmm148292; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]8293; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm1 # 16-byte Folded Reload8294; AVX2-FP-NEXT: # xmm1 = xmm3[0],mem[0],xmm3[1],mem[1]8295; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]8296; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]8297; AVX2-FP-NEXT: vpbroadcastq %xmm2, %ymm18298; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]8299; AVX2-FP-NEXT: vmovdqa (%r9), %xmm18300; AVX2-FP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8301; AVX2-FP-NEXT: vpbroadcastd %xmm1, %ymm18302; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]8303; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8304; AVX2-FP-NEXT: vmovdqa (%rdx), %ymm08305; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8306; AVX2-FP-NEXT: vmovdqa (%rcx), %ymm18307; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8308; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm2 = ymm1[0,1,2,2,4,5,6,6]8309; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm0[1,1,2,3,5,5,6,7]8310; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm14[0],ymm2[1],ymm14[2],ymm2[3],ymm14[4],ymm2[5],ymm14[6],ymm2[7]8311; AVX2-FP-NEXT: vpermq {{.*#+}} ymm2 = ymm2[2,1,2,3]8312; AVX2-FP-NEXT: vmovdqa (%rdi), %ymm08313; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8314; AVX2-FP-NEXT: vmovdqa (%rsi), %ymm18315; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8316; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8317; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8318; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm0[4,5],ymm2[6,7]8319; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm14 = mem[0],zero,mem[1],zero8320; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm14[2,3],ymm2[4,5,6,7]8321; AVX2-FP-NEXT: vpbroadcastd 20(%r9), %ymm148322; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1,2],ymm14[3],ymm2[4,5,6,7]8323; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8324; AVX2-FP-NEXT: vbroadcastss 32(%rcx), %xmm28325; AVX2-FP-NEXT: vbroadcastss 32(%rdx), %xmm148326; AVX2-FP-NEXT: vunpcklps {{.*#+}} xmm2 = xmm14[0],xmm2[0],xmm14[1],xmm2[1]8327; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8328; AVX2-FP-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload8329; AVX2-FP-NEXT: # xmm3 = xmm0[0],mem[0],xmm0[1],mem[1]8330; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm3 = ymm3[0,1,2,1]8331; AVX2-FP-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5,6,7]8332; AVX2-FP-NEXT: vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 16-byte Folded Reload8333; AVX2-FP-NEXT: vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]8334; AVX2-FP-NEXT: vmovaps 32(%r9), %xmm08335; AVX2-FP-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8336; AVX2-FP-NEXT: vbroadcastss %xmm0, %ymm38337; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4],ymm3[5],ymm2[6,7]8338; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8339; AVX2-FP-NEXT: vmovdqa 32(%rdx), %ymm08340; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8341; AVX2-FP-NEXT: vmovdqa 32(%rcx), %ymm38342; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm3[0,1,2,2,4,5,6,6]8343; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm0[1,1,2,3,5,5,6,7]8344; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8345; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8346; AVX2-FP-NEXT: vmovdqa 32(%rdi), %ymm08347; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8348; AVX2-FP-NEXT: vmovdqa 32(%rsi), %ymm18349; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8350; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8351; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8352; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8353; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8354; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8355; AVX2-FP-NEXT: vpbroadcastd 52(%r9), %ymm158356; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8357; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8358; AVX2-FP-NEXT: vpbroadcastd 64(%rcx), %xmm148359; AVX2-FP-NEXT: vpbroadcastd 64(%rdx), %xmm158360; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8361; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm4 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]8362; AVX2-FP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]8363; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1],ymm14[2,3],ymm4[4,5,6,7]8364; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 16-byte Folded Reload8365; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5],ymm4[6,7]8366; AVX2-FP-NEXT: vmovdqa 64(%r9), %xmm08367; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8368; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm58369; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1,2,3,4],ymm5[5],ymm4[6,7]8370; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8371; AVX2-FP-NEXT: vmovdqa 64(%rdx), %ymm58372; AVX2-FP-NEXT: vmovdqa 64(%rcx), %ymm48373; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm4[0,1,2,2,4,5,6,6]8374; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm5[1,1,2,3,5,5,6,7]8375; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8376; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8377; AVX2-FP-NEXT: vmovdqa 64(%rdi), %ymm08378; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8379; AVX2-FP-NEXT: vmovdqa 64(%rsi), %ymm18380; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8381; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8382; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8383; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8384; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8385; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8386; AVX2-FP-NEXT: vpbroadcastd 84(%r9), %ymm158387; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8388; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8389; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8390; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8391; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8392; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]8393; AVX2-FP-NEXT: vpermq {{.*#+}} ymm6 = ymm6[0,1,2,1]8394; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm14[2,3],ymm6[4,5,6,7]8395; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 16-byte Folded Reload8396; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]8397; AVX2-FP-NEXT: vmovdqa 96(%r9), %xmm08398; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8399; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm78400; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm6[0,1,2,3,4],ymm7[5],ymm6[6,7]8401; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8402; AVX2-FP-NEXT: vmovdqa 96(%rdx), %ymm78403; AVX2-FP-NEXT: vmovdqa 96(%rcx), %ymm68404; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm6[0,1,2,2,4,5,6,6]8405; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm7[1,1,2,3,5,5,6,7]8406; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8407; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8408; AVX2-FP-NEXT: vmovdqa 96(%rdi), %ymm08409; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8410; AVX2-FP-NEXT: vmovdqa 96(%rsi), %ymm18411; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8412; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8413; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8414; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8415; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8416; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8417; AVX2-FP-NEXT: vpbroadcastd 116(%r9), %ymm158418; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8419; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8420; AVX2-FP-NEXT: vpbroadcastd 128(%rcx), %xmm148421; AVX2-FP-NEXT: vpbroadcastd 128(%rdx), %xmm158422; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8423; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm8 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]8424; AVX2-FP-NEXT: vpermq {{.*#+}} ymm8 = ymm8[0,1,2,1]8425; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1],ymm14[2,3],ymm8[4,5,6,7]8426; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 16-byte Folded Reload8427; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]8428; AVX2-FP-NEXT: vmovdqa 128(%r9), %xmm08429; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8430; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm98431; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm8[0,1,2,3,4],ymm9[5],ymm8[6,7]8432; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8433; AVX2-FP-NEXT: vmovdqa 128(%rdx), %ymm98434; AVX2-FP-NEXT: vmovdqa 128(%rcx), %ymm88435; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm8[0,1,2,2,4,5,6,6]8436; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm9[1,1,2,3,5,5,6,7]8437; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8438; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8439; AVX2-FP-NEXT: vmovdqa 128(%rdi), %ymm08440; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8441; AVX2-FP-NEXT: vmovdqa 128(%rsi), %ymm18442; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8443; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8444; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8445; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8446; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8447; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8448; AVX2-FP-NEXT: vpbroadcastd 148(%r9), %ymm158449; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8450; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8451; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8452; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8453; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8454; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm10 = xmm11[0],xmm10[0],xmm11[1],xmm10[1]8455; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[0,1,2,1]8456; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1],ymm14[2,3],ymm10[4,5,6,7]8457; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 16-byte Folded Reload8458; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4,5],ymm10[6,7]8459; AVX2-FP-NEXT: vmovdqa 160(%r9), %xmm08460; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8461; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm118462; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1,2,3,4],ymm11[5],ymm10[6,7]8463; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8464; AVX2-FP-NEXT: vmovdqa 160(%rdx), %ymm118465; AVX2-FP-NEXT: vmovdqa 160(%rcx), %ymm108466; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm10[0,1,2,2,4,5,6,6]8467; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm11[1,1,2,3,5,5,6,7]8468; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8469; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8470; AVX2-FP-NEXT: vmovdqa 160(%rdi), %ymm08471; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8472; AVX2-FP-NEXT: vmovdqa 160(%rsi), %ymm18473; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8474; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8475; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8476; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8477; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8478; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8479; AVX2-FP-NEXT: vpbroadcastd 180(%r9), %ymm158480; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8481; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8482; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8483; AVX2-FP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8484; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8485; AVX2-FP-NEXT: vpunpckldq {{.*#+}} xmm12 = xmm13[0],xmm12[0],xmm13[1],xmm12[1]8486; AVX2-FP-NEXT: vpermq {{.*#+}} ymm12 = ymm12[0,1,2,1]8487; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1],ymm14[2,3],ymm12[4,5,6,7]8488; AVX2-FP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 16-byte Folded Reload8489; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5],ymm12[6,7]8490; AVX2-FP-NEXT: vmovdqa 192(%r9), %xmm08491; AVX2-FP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8492; AVX2-FP-NEXT: vpbroadcastd %xmm0, %ymm138493; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm12[0,1,2,3,4],ymm13[5],ymm12[6,7]8494; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8495; AVX2-FP-NEXT: vmovdqa 192(%rdx), %ymm138496; AVX2-FP-NEXT: vmovdqa 192(%rcx), %ymm128497; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm14 = ymm12[0,1,2,2,4,5,6,6]8498; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm13[1,1,2,3,5,5,6,7]8499; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm15[0],ymm14[1],ymm15[2],ymm14[3],ymm15[4],ymm14[5],ymm15[6],ymm14[7]8500; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,1,2,3]8501; AVX2-FP-NEXT: vmovdqa 192(%rdi), %ymm08502; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8503; AVX2-FP-NEXT: vmovdqa 192(%rsi), %ymm18504; AVX2-FP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8505; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8506; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8507; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm0[4,5],ymm14[6,7]8508; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8509; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8510; AVX2-FP-NEXT: vpbroadcastd 212(%r9), %ymm158511; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1,2],ymm15[3],ymm14[4,5,6,7]8512; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8513; AVX2-FP-NEXT: vbroadcastss 224(%rcx), %xmm148514; AVX2-FP-NEXT: vbroadcastss 224(%rdx), %xmm158515; AVX2-FP-NEXT: vunpcklps {{.*#+}} xmm14 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]8516; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8517; AVX2-FP-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm15 # 16-byte Folded Reload8518; AVX2-FP-NEXT: # xmm15 = xmm0[0],mem[0],xmm0[1],mem[1]8519; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]8520; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3],ymm15[4,5,6,7]8521; AVX2-FP-NEXT: vbroadcastsd (%rsp), %ymm15 # 16-byte Folded Reload8522; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]8523; AVX2-FP-NEXT: vmovaps 224(%r9), %xmm08524; AVX2-FP-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8525; AVX2-FP-NEXT: vbroadcastss %xmm0, %ymm158526; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4],ymm15[5],ymm14[6,7]8527; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8528; AVX2-FP-NEXT: vmovdqa 224(%rdx), %ymm148529; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8530; AVX2-FP-NEXT: vmovdqa 224(%rcx), %ymm08531; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8532; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]8533; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm15 = ymm14[1,1,2,3,5,5,6,7]8534; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm15[0],ymm0[1],ymm15[2],ymm0[3],ymm15[4],ymm0[5],ymm15[6],ymm0[7]8535; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm0[2,1,2,3]8536; AVX2-FP-NEXT: vmovdqa 224(%rdi), %ymm148537; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8538; AVX2-FP-NEXT: vmovdqa 224(%rsi), %ymm08539; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8540; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm14 = ymm14[2],ymm0[2],ymm14[3],ymm0[3],ymm14[6],ymm0[6],ymm14[7],ymm0[7]8541; AVX2-FP-NEXT: vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8542; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm14[4,5],ymm1[6,7]8543; AVX2-FP-NEXT: vpmovzxdq {{.*#+}} xmm15 = mem[0],zero,mem[1],zero8544; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]8545; AVX2-FP-NEXT: vpbroadcastd 244(%r9), %ymm158546; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3],ymm0[4,5,6,7]8547; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8548; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8549; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8550; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8551; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8552; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload8553; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm14, %ymm08554; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8555; AVX2-FP-NEXT: # xmm15 = mem[2,2,3,3]8556; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]8557; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm15[0,1],ymm0[2,3,4,5],ymm15[6,7]8558; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload8559; AVX2-FP-NEXT: # xmm15 = mem[2,2,3,3]8560; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[0,1,2,1]8561; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4,5,6],ymm15[7]8562; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8563; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8564; AVX2-FP-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8565; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8566; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8567; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8568; AVX2-FP-NEXT: vunpcklps {{.*#+}} ymm15 = ymm1[0],ymm2[0],ymm1[1],ymm2[1],ymm1[4],ymm2[4],ymm1[5],ymm2[5]8569; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,2]8570; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[2,1,2,3]8571; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]8572; AVX2-FP-NEXT: vmovaps (%r8), %ymm158573; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5],ymm0[6,7]8574; AVX2-FP-NEXT: vbroadcastss 16(%r9), %ymm148575; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]8576; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8577; AVX2-FP-NEXT: vunpckhps {{.*#+}} ymm0 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]8578; AVX2-FP-NEXT: vshufps {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8579; AVX2-FP-NEXT: vperm2f128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8580; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8581; AVX2-FP-NEXT: vshufps {{.*#+}} ymm1 = ymm15[2,1,3,3,6,5,7,7]8582; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[2,1,2,3]8583; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8584; AVX2-FP-NEXT: vpermilps {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]8585; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[2,1,2,3]8586; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8587; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8588; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8589; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8590; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8591; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8592; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8593; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm08594; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8595; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8596; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8597; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8598; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8599; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8600; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8601; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8602; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8603; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8604; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8605; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8606; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload8607; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm2[0],ymm3[0],ymm2[1],ymm3[1],ymm2[4],ymm3[4],ymm2[5],ymm3[5]8608; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8609; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8610; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]8611; AVX2-FP-NEXT: vmovdqa 32(%r8), %ymm18612; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]8613; AVX2-FP-NEXT: vpbroadcastd 48(%r9), %ymm148614; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]8615; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8616; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]8617; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8618; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8619; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8620; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]8621; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8622; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8623; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]8624; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8625; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8626; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8627; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8628; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8629; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8630; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8631; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8632; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm08633; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8634; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8635; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8636; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8637; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8638; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8639; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8640; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8641; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8642; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8643; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8644; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8645; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm5[0],ymm4[0],ymm5[1],ymm4[1],ymm5[4],ymm4[4],ymm5[5],ymm4[5]8646; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8647; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8648; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]8649; AVX2-FP-NEXT: vmovdqa 64(%r8), %ymm18650; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]8651; AVX2-FP-NEXT: vpbroadcastd 80(%r9), %ymm28652; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]8653; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8654; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm5[2],ymm4[2],ymm5[3],ymm4[3],ymm5[6],ymm4[6],ymm5[7],ymm4[7]8655; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8656; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8657; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8658; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]8659; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8660; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8661; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]8662; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8663; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8664; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8665; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8666; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8667; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8668; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8669; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8670; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm08671; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8672; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8673; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8674; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8675; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8676; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8677; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8678; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8679; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8680; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8681; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8682; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8683; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm7[0],ymm6[0],ymm7[1],ymm6[1],ymm7[4],ymm6[4],ymm7[5],ymm6[5]8684; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8685; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8686; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]8687; AVX2-FP-NEXT: vmovdqa 96(%r8), %ymm18688; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]8689; AVX2-FP-NEXT: vpbroadcastd 112(%r9), %ymm28690; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]8691; AVX2-FP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8692; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm7[2],ymm6[2],ymm7[3],ymm6[3],ymm7[6],ymm6[6],ymm7[7],ymm6[7]8693; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8694; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8695; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8696; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]8697; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8698; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8699; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]8700; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8701; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm6 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8702; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8703; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8704; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8705; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8706; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8707; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm08708; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8709; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8710; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8711; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8712; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8713; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8714; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8715; AVX2-FP-NEXT: vblendps {{.*#+}} ymm7 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8716; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8717; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8718; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8719; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm9[0],ymm8[0],ymm9[1],ymm8[1],ymm9[4],ymm8[4],ymm9[5],ymm8[5]8720; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8721; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8722; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]8723; AVX2-FP-NEXT: vmovdqa 128(%r8), %ymm18724; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]8725; AVX2-FP-NEXT: vpbroadcastd 144(%r9), %ymm28726; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm5 = ymm0[0,1,2,3,4],ymm2[5],ymm0[6,7]8727; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm9[2],ymm8[2],ymm9[3],ymm8[3],ymm9[6],ymm8[6],ymm9[7],ymm8[7]8728; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8729; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8730; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8731; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[2,1,3,3,6,5,7,7]8732; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8733; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8734; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm1 = mem[0,2,2,3,4,6,6,7]8735; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,1,2,3]8736; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm8 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8737; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8738; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8739; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8740; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8741; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8742; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm1, %ymm08743; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8744; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8745; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8746; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5],ymm1[6,7]8747; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload8748; AVX2-FP-NEXT: # xmm1 = mem[2,2,3,3]8749; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]8750; AVX2-FP-NEXT: vblendps {{.*#+}} ymm9 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6],ymm1[7]8751; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8752; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8753; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8754; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm1 = ymm11[0],ymm10[0],ymm11[1],ymm10[1],ymm11[4],ymm10[4],ymm11[5],ymm10[5]8755; AVX2-FP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[2,2,2,2]8756; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8757; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]8758; AVX2-FP-NEXT: vmovdqa 160(%r8), %ymm148759; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5],ymm0[6,7]8760; AVX2-FP-NEXT: vpbroadcastd 176(%r9), %ymm18761; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]8762; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm11[2],ymm10[2],ymm11[3],ymm10[3],ymm11[6],ymm10[6],ymm11[7],ymm10[7]8763; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]8764; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8765; AVX2-FP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]8766; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm10 = ymm14[2,1,3,3,6,5,7,7]8767; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]8768; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm10[0,1],ymm0[2,3,4,5],ymm10[6,7]8769; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm10 = mem[0,2,2,3,4,6,6,7]8770; AVX2-FP-NEXT: vpermq {{.*#+}} ymm10 = ymm10[2,1,2,3]8771; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0],ymm10[1],ymm0[2,3,4,5,6],ymm10[7]8772; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload8773; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload8774; AVX2-FP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]8775; AVX2-FP-NEXT: vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]8776; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8777; AVX2-FP-NEXT: vinsertf128 $1, %xmm0, %ymm4, %ymm08778; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload8779; AVX2-FP-NEXT: # xmm11 = mem[2,2,3,3]8780; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]8781; AVX2-FP-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1],ymm0[2,3,4,5],ymm11[6,7]8782; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload8783; AVX2-FP-NEXT: # xmm11 = mem[2,2,3,3]8784; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]8785; AVX2-FP-NEXT: vblendps {{.*#+}} ymm11 = ymm0[0],ymm11[1],ymm0[2,3,4,5,6],ymm11[7]8786; AVX2-FP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8787; AVX2-FP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload8788; AVX2-FP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8789; AVX2-FP-NEXT: vpunpckldq {{.*#+}} ymm14 = ymm13[0],ymm12[0],ymm13[1],ymm12[1],ymm13[4],ymm12[4],ymm13[5],ymm12[5]8790; AVX2-FP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,2,2,2]8791; AVX2-FP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]8792; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]8793; AVX2-FP-NEXT: vmovdqa 192(%r8), %ymm148794; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm14[4,5],ymm0[6,7]8795; AVX2-FP-NEXT: vpbroadcastd 208(%r9), %ymm158796; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm2 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]8797; AVX2-FP-NEXT: vpunpckhdq {{.*#+}} ymm12 = ymm13[2],ymm12[2],ymm13[3],ymm12[3],ymm13[6],ymm12[6],ymm13[7],ymm12[7]8798; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm12 = ymm12[2,3,2,3,6,7,6,7]8799; AVX2-FP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload8800; AVX2-FP-NEXT: # ymm12 = mem[2,3],ymm12[2,3]8801; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm13 = ymm14[2,1,3,3,6,5,7,7]8802; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]8803; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm13[0,1],ymm12[2,3,4,5],ymm13[6,7]8804; AVX2-FP-NEXT: vpshufd {{.*#+}} ymm13 = mem[0,2,2,3,4,6,6,7]8805; AVX2-FP-NEXT: vpermq {{.*#+}} ymm13 = ymm13[2,1,2,3]8806; AVX2-FP-NEXT: vpblendd {{.*#+}} ymm12 = ymm12[0],ymm13[1],ymm12[2,3,4,5,6],ymm13[7]8807; AVX2-FP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload8808; AVX2-FP-NEXT: vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm13 # 16-byte Folded Reload8809; AVX2-FP-NEXT: # xmm13 = xmm4[2],mem[2],xmm4[3],mem[3]8810; AVX2-FP-NEXT: vshufps {{.*#+}} xmm13 = xmm13[2,3,2,3]8811; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload8812; AVX2-FP-NEXT: vinsertf128 $1, %xmm13, %ymm4, %ymm138813; AVX2-FP-NEXT: vpermilps $250, (%rsp), %xmm14 # 16-byte Folded Reload8814; AVX2-FP-NEXT: # xmm14 = mem[2,2,3,3]8815; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[0,1,2,1]8816; AVX2-FP-NEXT: vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5],ymm14[6,7]8817; AVX2-FP-NEXT: vpermilps $250, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload8818; AVX2-FP-NEXT: # xmm14 = mem[2,2,3,3]8819; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[0,1,2,1]8820; AVX2-FP-NEXT: vblendps {{.*#+}} ymm13 = ymm13[0],ymm14[1],ymm13[2,3,4,5,6],ymm14[7]8821; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8822; AVX2-FP-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm14 # 32-byte Folded Reload8823; AVX2-FP-NEXT: # ymm14 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]8824; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload8825; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8826; AVX2-FP-NEXT: vunpcklps {{.*#+}} ymm15 = ymm0[0],ymm1[0],ymm0[1],ymm1[1],ymm0[4],ymm1[4],ymm0[5],ymm1[5]8827; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,2]8828; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm14 = ymm14[2,1,2,3]8829; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3],ymm14[4,5,6,7]8830; AVX2-FP-NEXT: vmovaps 224(%r8), %ymm158831; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm15[4,5],ymm14[6,7]8832; AVX2-FP-NEXT: vbroadcastss 240(%r9), %ymm48833; AVX2-FP-NEXT: vblendps {{.*#+}} ymm4 = ymm14[0,1,2,3,4],ymm4[5],ymm14[6,7]8834; AVX2-FP-NEXT: vunpckhps {{.*#+}} ymm14 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]8835; AVX2-FP-NEXT: vshufps {{.*#+}} ymm14 = ymm14[2,3,2,3,6,7,6,7]8836; AVX2-FP-NEXT: vperm2f128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload8837; AVX2-FP-NEXT: # ymm14 = mem[2,3],ymm14[2,3]8838; AVX2-FP-NEXT: vshufps {{.*#+}} ymm15 = ymm15[2,1,3,3,6,5,7,7]8839; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,1,2,3]8840; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2,3,4,5],ymm15[6,7]8841; AVX2-FP-NEXT: vpermilps {{.*#+}} ymm15 = mem[0,2,2,3,4,6,6,7]8842; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm15 = ymm15[2,1,2,3]8843; AVX2-FP-NEXT: vblendps {{.*#+}} ymm14 = ymm14[0],ymm15[1],ymm14[2,3,4,5,6],ymm15[7]8844; AVX2-FP-NEXT: movq {{[0-9]+}}(%rsp), %rax8845; AVX2-FP-NEXT: vmovaps %ymm14, 1504(%rax)8846; AVX2-FP-NEXT: vmovaps %ymm4, 1440(%rax)8847; AVX2-FP-NEXT: vmovaps %ymm13, 1408(%rax)8848; AVX2-FP-NEXT: vmovdqa %ymm12, 1312(%rax)8849; AVX2-FP-NEXT: vmovdqa %ymm2, 1248(%rax)8850; AVX2-FP-NEXT: vmovaps %ymm11, 1216(%rax)8851; AVX2-FP-NEXT: vmovdqa %ymm10, 1120(%rax)8852; AVX2-FP-NEXT: vmovdqa %ymm3, 1056(%rax)8853; AVX2-FP-NEXT: vmovaps %ymm9, 1024(%rax)8854; AVX2-FP-NEXT: vmovdqa %ymm8, 928(%rax)8855; AVX2-FP-NEXT: vmovdqa %ymm5, 864(%rax)8856; AVX2-FP-NEXT: vmovaps %ymm7, 832(%rax)8857; AVX2-FP-NEXT: vmovdqa %ymm6, 736(%rax)8858; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8859; AVX2-FP-NEXT: vmovaps %ymm0, 672(%rax)8860; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8861; AVX2-FP-NEXT: vmovaps %ymm0, 640(%rax)8862; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8863; AVX2-FP-NEXT: vmovaps %ymm0, 544(%rax)8864; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8865; AVX2-FP-NEXT: vmovaps %ymm0, 480(%rax)8866; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8867; AVX2-FP-NEXT: vmovaps %ymm0, 448(%rax)8868; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8869; AVX2-FP-NEXT: vmovaps %ymm0, 352(%rax)8870; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8871; AVX2-FP-NEXT: vmovaps %ymm0, 288(%rax)8872; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8873; AVX2-FP-NEXT: vmovaps %ymm0, 256(%rax)8874; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8875; AVX2-FP-NEXT: vmovaps %ymm0, 160(%rax)8876; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8877; AVX2-FP-NEXT: vmovaps %ymm0, 96(%rax)8878; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8879; AVX2-FP-NEXT: vmovaps %ymm0, 64(%rax)8880; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8881; AVX2-FP-NEXT: vmovaps %ymm0, 1472(%rax)8882; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8883; AVX2-FP-NEXT: vmovaps %ymm0, 1344(%rax)8884; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8885; AVX2-FP-NEXT: vmovaps %ymm0, 1280(%rax)8886; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8887; AVX2-FP-NEXT: vmovaps %ymm0, 1152(%rax)8888; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8889; AVX2-FP-NEXT: vmovaps %ymm0, 1088(%rax)8890; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8891; AVX2-FP-NEXT: vmovaps %ymm0, 960(%rax)8892; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8893; AVX2-FP-NEXT: vmovaps %ymm0, 896(%rax)8894; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8895; AVX2-FP-NEXT: vmovaps %ymm0, 768(%rax)8896; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8897; AVX2-FP-NEXT: vmovaps %ymm0, 704(%rax)8898; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8899; AVX2-FP-NEXT: vmovaps %ymm0, 576(%rax)8900; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8901; AVX2-FP-NEXT: vmovaps %ymm0, 512(%rax)8902; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8903; AVX2-FP-NEXT: vmovaps %ymm0, 384(%rax)8904; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8905; AVX2-FP-NEXT: vmovaps %ymm0, 320(%rax)8906; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8907; AVX2-FP-NEXT: vmovaps %ymm0, 192(%rax)8908; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8909; AVX2-FP-NEXT: vmovaps %ymm0, 128(%rax)8910; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8911; AVX2-FP-NEXT: vmovaps %ymm0, (%rax)8912; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8913; AVX2-FP-NEXT: vmovaps %ymm0, 1376(%rax)8914; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8915; AVX2-FP-NEXT: vmovaps %ymm0, 1184(%rax)8916; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8917; AVX2-FP-NEXT: vmovaps %ymm0, 992(%rax)8918; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8919; AVX2-FP-NEXT: vmovaps %ymm0, 800(%rax)8920; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8921; AVX2-FP-NEXT: vmovaps %ymm0, 608(%rax)8922; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8923; AVX2-FP-NEXT: vmovaps %ymm0, 416(%rax)8924; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8925; AVX2-FP-NEXT: vmovaps %ymm0, 224(%rax)8926; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload8927; AVX2-FP-NEXT: vmovaps %ymm0, 32(%rax)8928; AVX2-FP-NEXT: addq $2504, %rsp # imm = 0x9C88929; AVX2-FP-NEXT: vzeroupper8930; AVX2-FP-NEXT: retq8931;8932; AVX2-FCP-LABEL: store_i32_stride6_vf64:8933; AVX2-FCP: # %bb.0:8934; AVX2-FCP-NEXT: subq $2376, %rsp # imm = 0x9488935; AVX2-FCP-NEXT: vmovdqa (%rsi), %xmm98936; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %xmm18937; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8938; AVX2-FCP-NEXT: vmovdqa (%rdi), %xmm78939; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %xmm108940; AVX2-FCP-NEXT: vmovdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8941; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm7[2],xmm9[2],xmm7[3],xmm9[3]8942; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8943; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm08944; AVX2-FCP-NEXT: vmovdqa (%rcx), %xmm28945; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8946; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %xmm68947; AVX2-FCP-NEXT: vmovdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8948; AVX2-FCP-NEXT: vmovdqa 64(%rcx), %xmm58949; AVX2-FCP-NEXT: vmovdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8950; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm2[1,2,2,3]8951; AVX2-FCP-NEXT: vmovdqa (%rdx), %xmm28952; AVX2-FCP-NEXT: vmovdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8953; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %xmm88954; AVX2-FCP-NEXT: vmovdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8955; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm2[1,2,2,3]8956; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]8957; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]8958; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm0[4,5],ymm3[6,7]8959; AVX2-FCP-NEXT: vmovdqa (%r8), %xmm28960; AVX2-FCP-NEXT: vmovdqa 32(%r8), %xmm118961; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm2[0],zero,xmm2[1],zero8962; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]8963; AVX2-FCP-NEXT: vpbroadcastd 4(%r9), %ymm48964; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]8965; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8966; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm10[2],xmm1[2],xmm10[3],xmm1[3]8967; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8968; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm6[1,2,2,3]8969; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm8[1,2,2,3]8970; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]8971; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm48972; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]8973; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]8974; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = xmm11[0],zero,xmm11[1],zero8975; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]8976; AVX2-FCP-NEXT: vpbroadcastd 36(%r9), %ymm48977; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3],ymm3[4,5,6,7]8978; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8979; AVX2-FCP-NEXT: vmovdqa 64(%rdx), %xmm08980; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8981; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm5[1,2,2,3]8982; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm4 = xmm0[1,2,2,3]8983; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]8984; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]8985; AVX2-FCP-NEXT: vmovdqa 64(%rsi), %xmm158986; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %xmm138987; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm13[2],xmm15[2],xmm13[3],xmm15[3]8988; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8989; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm48990; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]8991; AVX2-FCP-NEXT: vmovdqa 64(%r8), %xmm48992; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm4[0],zero,xmm4[1],zero8993; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3],ymm3[4,5,6,7]8994; AVX2-FCP-NEXT: vpbroadcastd 68(%r9), %ymm58995; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3],ymm3[4,5,6,7]8996; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill8997; AVX2-FCP-NEXT: vmovdqa 96(%rcx), %xmm08998; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill8999; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[1,2,2,3]9000; AVX2-FCP-NEXT: vmovdqa 96(%rdx), %xmm09001; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9002; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]9003; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]9004; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]9005; AVX2-FCP-NEXT: vmovdqa 96(%rsi), %xmm109006; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %xmm129007; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm12[2],xmm10[2],xmm12[3],xmm10[3]9008; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9009; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm59010; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5],ymm3[6,7]9011; AVX2-FCP-NEXT: vmovdqa 96(%r8), %xmm89012; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm5 = xmm8[0],zero,xmm8[1],zero9013; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3],ymm3[4,5,6,7]9014; AVX2-FCP-NEXT: vpbroadcastd 100(%r9), %ymm59015; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm5[3],ymm3[4,5,6,7]9016; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9017; AVX2-FCP-NEXT: vmovdqa 128(%rcx), %xmm09018; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9019; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[1,2,2,3]9020; AVX2-FCP-NEXT: vmovdqa 128(%rdx), %xmm09021; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9022; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm5 = xmm0[1,2,2,3]9023; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]9024; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]9025; AVX2-FCP-NEXT: vmovdqa 128(%rsi), %xmm09026; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9027; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %xmm19028; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9029; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]9030; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9031; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm59032; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm5[4,5],ymm3[6,7]9033; AVX2-FCP-NEXT: vmovdqa 128(%r8), %xmm59034; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm6 = xmm5[0],zero,xmm5[1],zero9035; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm6[2,3],ymm3[4,5,6,7]9036; AVX2-FCP-NEXT: vpbroadcastd 132(%r9), %ymm69037; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm6[3],ymm3[4,5,6,7]9038; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9039; AVX2-FCP-NEXT: vmovdqa 160(%rcx), %xmm09040; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9041; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[1,2,2,3]9042; AVX2-FCP-NEXT: vmovdqa 160(%rdx), %xmm09043; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9044; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm6 = xmm0[1,2,2,3]9045; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm6[0],xmm3[0],xmm6[1],xmm3[1]9046; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]9047; AVX2-FCP-NEXT: vmovdqa 160(%rsi), %xmm09048; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9049; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %xmm19050; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9051; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]9052; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9053; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm69054; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]9055; AVX2-FCP-NEXT: vmovdqa 160(%r8), %xmm69056; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm14 = xmm6[0],zero,xmm6[1],zero9057; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm14[2,3],ymm3[4,5,6,7]9058; AVX2-FCP-NEXT: vpbroadcastd 164(%r9), %ymm149059; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm14[3],ymm3[4,5,6,7]9060; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9061; AVX2-FCP-NEXT: vmovdqa 192(%rcx), %xmm09062; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9063; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm0[1,2,2,3]9064; AVX2-FCP-NEXT: vmovdqa 192(%rdx), %xmm09065; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9066; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[1,2,2,3]9067; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]9068; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]9069; AVX2-FCP-NEXT: vmovdqa 192(%rsi), %xmm09070; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9071; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %xmm19072; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9073; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]9074; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9075; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm149076; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm14[4,5],ymm3[6,7]9077; AVX2-FCP-NEXT: vmovdqa 192(%r8), %xmm09078; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9079; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm14 = xmm0[0],zero,xmm0[1],zero9080; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm14[2,3],ymm3[4,5,6,7]9081; AVX2-FCP-NEXT: vpbroadcastd 196(%r9), %ymm149082; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm14[3],ymm3[4,5,6,7]9083; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9084; AVX2-FCP-NEXT: vmovdqa 224(%rcx), %xmm39085; AVX2-FCP-NEXT: vmovdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9086; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[1,2,2,3]9087; AVX2-FCP-NEXT: vmovdqa 224(%rdx), %xmm09088; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9089; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm14 = xmm0[1,2,2,3]9090; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]9091; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[0,1,2,1]9092; AVX2-FCP-NEXT: vmovdqa 224(%rsi), %xmm09093; AVX2-FCP-NEXT: vmovdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9094; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %xmm19095; AVX2-FCP-NEXT: vmovdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill9096; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]9097; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9098; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm0, %ymm149099; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm14[4,5],ymm3[6,7]9100; AVX2-FCP-NEXT: vmovdqa 224(%r8), %xmm09101; AVX2-FCP-NEXT: vmovdqa %xmm0, (%rsp) # 16-byte Spill9102; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm14 = xmm0[0],zero,xmm0[1],zero9103; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm14[2,3],ymm3[4,5,6,7]9104; AVX2-FCP-NEXT: vpbroadcastd 228(%r9), %ymm149105; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2],ymm14[3],ymm3[4,5,6,7]9106; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9107; AVX2-FCP-NEXT: vpbroadcastd (%rcx), %xmm39108; AVX2-FCP-NEXT: vpbroadcastd (%rdx), %xmm149109; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm3 = xmm14[0],xmm3[0],xmm14[1],xmm3[1]9110; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm7[0],xmm9[0],xmm7[1],xmm9[1]9111; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]9112; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6,7]9113; AVX2-FCP-NEXT: vpbroadcastq %xmm2, %ymm09114; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5],ymm1[6,7]9115; AVX2-FCP-NEXT: vpbroadcastd (%r9), %ymm19116; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]9117; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9118; AVX2-FCP-NEXT: vmovdqa (%rdx), %ymm149119; AVX2-FCP-NEXT: vmovdqa (%rcx), %ymm09120; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9121; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]9122; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm14[1,1,2,3,5,5,6,7]9123; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]9124; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9125; AVX2-FCP-NEXT: vmovdqa (%rdi), %ymm19126; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9127; AVX2-FCP-NEXT: vmovdqa (%rsi), %ymm29128; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9129; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]9130; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9131; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9132; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm1 = mem[0],zero,mem[1],zero9133; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]9134; AVX2-FCP-NEXT: vpbroadcastd 20(%r9), %ymm19135; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]9136; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9137; AVX2-FCP-NEXT: vpbroadcastd 32(%rcx), %xmm09138; AVX2-FCP-NEXT: vpbroadcastd 32(%rdx), %xmm19139; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9140; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9141; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload9142; AVX2-FCP-NEXT: # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]9143; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]9144; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]9145; AVX2-FCP-NEXT: vpbroadcastq %xmm11, %ymm19146; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9147; AVX2-FCP-NEXT: vpbroadcastd 32(%r9), %ymm19148; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]9149; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9150; AVX2-FCP-NEXT: vmovdqa 32(%rdx), %ymm19151; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9152; AVX2-FCP-NEXT: vmovdqa 32(%rcx), %ymm09153; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9154; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]9155; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[1,1,2,3,5,5,6,7]9156; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]9157; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9158; AVX2-FCP-NEXT: vmovdqa 32(%rdi), %ymm19159; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9160; AVX2-FCP-NEXT: vmovdqa 32(%rsi), %ymm29161; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9162; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]9163; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9164; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9165; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm1 = mem[0],zero,mem[1],zero9166; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]9167; AVX2-FCP-NEXT: vpbroadcastd 52(%r9), %ymm19168; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]9169; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9170; AVX2-FCP-NEXT: vpbroadcastd 64(%rcx), %xmm09171; AVX2-FCP-NEXT: vpbroadcastd 64(%rdx), %xmm19172; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9173; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm13[0],xmm15[0],xmm13[1],xmm15[1]9174; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]9175; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]9176; AVX2-FCP-NEXT: vpbroadcastq %xmm4, %ymm19177; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9178; AVX2-FCP-NEXT: vpbroadcastd 64(%r9), %ymm19179; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]9180; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9181; AVX2-FCP-NEXT: vmovdqa 64(%rdx), %ymm19182; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9183; AVX2-FCP-NEXT: vmovdqa 64(%rcx), %ymm09184; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9185; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]9186; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm1 = ymm1[1,1,2,3,5,5,6,7]9187; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2],ymm0[3],ymm1[4],ymm0[5],ymm1[6],ymm0[7]9188; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9189; AVX2-FCP-NEXT: vmovdqa 64(%rdi), %ymm19190; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9191; AVX2-FCP-NEXT: vmovdqa 64(%rsi), %ymm29192; AVX2-FCP-NEXT: vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9193; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm2[2],ymm1[3],ymm2[3],ymm1[6],ymm2[6],ymm1[7],ymm2[7]9194; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9195; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9196; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm1 = mem[0],zero,mem[1],zero9197; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]9198; AVX2-FCP-NEXT: vpbroadcastd 84(%r9), %ymm19199; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]9200; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9201; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9202; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload9203; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]9204; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm1 = xmm12[0],xmm10[0],xmm12[1],xmm10[1]9205; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm1 = ymm1[0,1,2,1]9206; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5,6,7]9207; AVX2-FCP-NEXT: vpbroadcastq %xmm8, %ymm19208; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9209; AVX2-FCP-NEXT: vpbroadcastd 96(%r9), %ymm19210; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5],ymm0[6,7]9211; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9212; AVX2-FCP-NEXT: vmovdqa 96(%rdx), %ymm19213; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9214; AVX2-FCP-NEXT: vmovdqa 96(%rcx), %ymm29215; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm2[0,1,2,2,4,5,6,6]9216; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm1[1,1,2,3,5,5,6,7]9217; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2],ymm0[3],ymm4[4],ymm0[5],ymm4[6],ymm0[7]9218; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9219; AVX2-FCP-NEXT: vmovdqa 96(%rdi), %ymm19220; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9221; AVX2-FCP-NEXT: vmovdqa 96(%rsi), %ymm39222; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9223; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]9224; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9225; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9226; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero9227; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9228; AVX2-FCP-NEXT: vpbroadcastd 116(%r9), %ymm49229; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7]9230; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9231; AVX2-FCP-NEXT: vpbroadcastd 128(%rcx), %xmm09232; AVX2-FCP-NEXT: vpbroadcastd 128(%rdx), %xmm49233; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]9234; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9235; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload9236; AVX2-FCP-NEXT: # xmm4 = xmm1[0],mem[0],xmm1[1],mem[1]9237; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]9238; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3],ymm4[4,5,6,7]9239; AVX2-FCP-NEXT: vpbroadcastq %xmm5, %ymm49240; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5],ymm0[6,7]9241; AVX2-FCP-NEXT: vpbroadcastd 128(%r9), %ymm49242; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]9243; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9244; AVX2-FCP-NEXT: vmovdqa 128(%rdx), %ymm129245; AVX2-FCP-NEXT: vmovdqa 128(%rcx), %ymm99246; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm9[0,1,2,2,4,5,6,6]9247; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm12[1,1,2,3,5,5,6,7]9248; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2],ymm0[3],ymm4[4],ymm0[5],ymm4[6],ymm0[7]9249; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9250; AVX2-FCP-NEXT: vmovdqa 128(%rdi), %ymm19251; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9252; AVX2-FCP-NEXT: vmovdqa 128(%rsi), %ymm39253; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9254; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]9255; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9256; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9257; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero9258; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9259; AVX2-FCP-NEXT: vpbroadcastd 148(%r9), %ymm49260; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7]9261; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9262; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload9263; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9264; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]9265; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9266; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload9267; AVX2-FCP-NEXT: # xmm4 = xmm1[0],mem[0],xmm1[1],mem[1]9268; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]9269; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3],ymm4[4,5,6,7]9270; AVX2-FCP-NEXT: vpbroadcastq %xmm6, %ymm49271; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5],ymm0[6,7]9272; AVX2-FCP-NEXT: vpbroadcastd 160(%r9), %ymm49273; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]9274; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9275; AVX2-FCP-NEXT: vmovdqa 160(%rdx), %ymm109276; AVX2-FCP-NEXT: vmovdqa 160(%rcx), %ymm79277; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm7[0,1,2,2,4,5,6,6]9278; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm10[1,1,2,3,5,5,6,7]9279; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2],ymm0[3],ymm4[4],ymm0[5],ymm4[6],ymm0[7]9280; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9281; AVX2-FCP-NEXT: vmovdqa 160(%rdi), %ymm19282; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9283; AVX2-FCP-NEXT: vmovdqa 160(%rsi), %ymm39284; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9285; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]9286; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9287; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9288; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero9289; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9290; AVX2-FCP-NEXT: vpbroadcastd 180(%r9), %ymm49291; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7]9292; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9293; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Reload9294; AVX2-FCP-NEXT: vpbroadcastd %xmm11, %xmm09295; AVX2-FCP-NEXT: vpbroadcastd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload9296; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]9297; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9298; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload9299; AVX2-FCP-NEXT: # xmm4 = xmm1[0],mem[0],xmm1[1],mem[1]9300; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[0,1,2,1]9301; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3],ymm4[4,5,6,7]9302; AVX2-FCP-NEXT: vpbroadcastq {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 16-byte Folded Reload9303; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5],ymm0[6,7]9304; AVX2-FCP-NEXT: vpbroadcastd 192(%r9), %ymm49305; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]9306; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9307; AVX2-FCP-NEXT: vmovdqa 192(%rdx), %ymm19308; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9309; AVX2-FCP-NEXT: vmovdqa 192(%rcx), %ymm09310; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9311; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[0,1,2,2,4,5,6,6]9312; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm1[1,1,2,3,5,5,6,7]9313; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2],ymm0[3],ymm4[4],ymm0[5],ymm4[6],ymm0[7]9314; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9315; AVX2-FCP-NEXT: vmovdqa 192(%rdi), %ymm19316; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9317; AVX2-FCP-NEXT: vmovdqa 192(%rsi), %ymm39318; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9319; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]9320; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9321; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9322; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero9323; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9324; AVX2-FCP-NEXT: vpbroadcastd 212(%r9), %ymm49325; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7]9326; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9327; AVX2-FCP-NEXT: vbroadcastss 224(%rcx), %xmm09328; AVX2-FCP-NEXT: vbroadcastss 224(%rdx), %xmm49329; AVX2-FCP-NEXT: vunpcklps {{.*#+}} xmm0 = xmm4[0],xmm0[0],xmm4[1],xmm0[1]9330; AVX2-FCP-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload9331; AVX2-FCP-NEXT: vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm4 # 16-byte Folded Reload9332; AVX2-FCP-NEXT: # xmm4 = xmm1[0],mem[0],xmm1[1],mem[1]9333; AVX2-FCP-NEXT: vpermpd {{.*#+}} ymm4 = ymm4[0,1,2,1]9334; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3],ymm4[4,5,6,7]9335; AVX2-FCP-NEXT: vbroadcastsd (%rsp), %ymm4 # 16-byte Folded Reload9336; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm4[4,5],ymm0[6,7]9337; AVX2-FCP-NEXT: vbroadcastss 224(%r9), %ymm49338; AVX2-FCP-NEXT: vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]9339; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9340; AVX2-FCP-NEXT: vmovdqa 224(%rdx), %ymm19341; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9342; AVX2-FCP-NEXT: vmovdqa 224(%rcx), %ymm89343; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm8[0,1,2,2,4,5,6,6]9344; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm4 = ymm1[1,1,2,3,5,5,6,7]9345; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm4[0],ymm0[1],ymm4[2],ymm0[3],ymm4[4],ymm0[5],ymm4[6],ymm0[7]9346; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9347; AVX2-FCP-NEXT: vmovdqa 224(%rdi), %ymm19348; AVX2-FCP-NEXT: vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9349; AVX2-FCP-NEXT: vmovdqa 224(%rsi), %ymm39350; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9351; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],ymm3[2],ymm1[3],ymm3[3],ymm1[6],ymm3[6],ymm1[7],ymm3[7]9352; AVX2-FCP-NEXT: vmovdqu %ymm1, (%rsp) # 32-byte Spill9353; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]9354; AVX2-FCP-NEXT: vpmovzxdq {{.*#+}} xmm4 = mem[0],zero,mem[1],zero9355; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9356; AVX2-FCP-NEXT: vpbroadcastd 244(%r9), %ymm49357; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2],ymm4[3],ymm0[4,5,6,7]9358; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9359; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9360; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9361; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9362; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9363; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload9364; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm1, %ymm49365; AVX2-FCP-NEXT: vmovdqa (%r8), %ymm09366; AVX2-FCP-NEXT: vbroadcasti128 {{.*#+}} ymm1 = [2,2,3,3,2,2,3,3]9367; AVX2-FCP-NEXT: # ymm1 = mem[0,1,0,1]9368; AVX2-FCP-NEXT: vpermd %ymm0, %ymm1, %ymm159369; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm15[0,1],ymm4[2,3,4,5],ymm15[6,7]9370; AVX2-FCP-NEXT: vmovdqa (%r9), %ymm159371; AVX2-FCP-NEXT: vpermd %ymm15, %ymm1, %ymm39372; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm4[0],ymm3[1],ymm4[2,3,4,5,6],ymm3[7]9373; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9374; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9375; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload9376; AVX2-FCP-NEXT: # ymm3 = ymm3[0],mem[0],ymm3[1],mem[1],ymm3[4],mem[4],ymm3[5],mem[5]9377; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload9378; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm4 = ymm14[0],ymm5[0],ymm14[1],ymm5[1],ymm14[4],ymm5[4],ymm14[5],ymm5[5]9379; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[2,2,2,2]9380; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]9381; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5,6,7]9382; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm0[4,5],ymm3[6,7]9383; AVX2-FCP-NEXT: vpbroadcastd 16(%r9), %ymm49384; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5],ymm3[6,7]9385; AVX2-FCP-NEXT: vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9386; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm3 = ymm14[2],ymm5[2],ymm14[3],ymm5[3],ymm14[6],ymm5[6],ymm14[7],ymm5[7]9387; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm3 = ymm3[2,3,2,3,6,7,6,7]9388; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload9389; AVX2-FCP-NEXT: # ymm3 = mem[2,3],ymm3[2,3]9390; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm6 = [6,5,3,3,6,5,7,7]9391; AVX2-FCP-NEXT: vpermd %ymm0, %ymm6, %ymm09392; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2,3,4,5],ymm0[6,7]9393; AVX2-FCP-NEXT: vpmovsxbd {{.*#+}} ymm5 = [4,6,2,3,4,6,6,7]9394; AVX2-FCP-NEXT: vpermd %ymm15, %ymm5, %ymm159395; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4,5,6],ymm15[7]9396; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9397; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9398; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9399; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9400; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9401; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9402; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm3, %ymm09403; AVX2-FCP-NEXT: vmovdqa 32(%r8), %ymm159404; AVX2-FCP-NEXT: vpermd %ymm15, %ymm1, %ymm139405; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm0[2,3,4,5],ymm13[6,7]9406; AVX2-FCP-NEXT: vmovdqa 32(%r9), %ymm139407; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm149408; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm14[1],ymm0[2,3,4,5,6],ymm14[7]9409; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9410; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9411; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9412; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9413; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9414; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload9415; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm14 = ymm4[0],ymm3[0],ymm4[1],ymm3[1],ymm4[4],ymm3[4],ymm4[5],ymm3[5]9416; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,2,2,2]9417; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9418; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]9419; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4,5],ymm0[6,7]9420; AVX2-FCP-NEXT: vpbroadcastd 48(%r9), %ymm149421; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]9422; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9423; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm4[2],ymm3[2],ymm4[3],ymm3[3],ymm4[6],ymm3[6],ymm4[7],ymm3[7]9424; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]9425; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9426; AVX2-FCP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]9427; AVX2-FCP-NEXT: vpermd %ymm15, %ymm6, %ymm149428; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3,4,5],ymm14[6,7]9429; AVX2-FCP-NEXT: vpermd %ymm13, %ymm5, %ymm139430; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4,5,6],ymm13[7]9431; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9432; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9433; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9434; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9435; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9436; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9437; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm3, %ymm09438; AVX2-FCP-NEXT: vmovdqa 64(%r8), %ymm139439; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm149440; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3,4,5],ymm14[6,7]9441; AVX2-FCP-NEXT: vmovdqa 64(%r9), %ymm149442; AVX2-FCP-NEXT: vpermd %ymm14, %ymm1, %ymm159443; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4,5,6],ymm15[7]9444; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9445; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9446; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9447; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9448; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9449; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload9450; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm15 = ymm4[0],ymm3[0],ymm4[1],ymm3[1],ymm4[4],ymm3[4],ymm4[5],ymm3[5]9451; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm15[2,2,2,2]9452; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9453; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]9454; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5],ymm0[6,7]9455; AVX2-FCP-NEXT: vpbroadcastd 80(%r9), %ymm159456; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]9457; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9458; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm4[2],ymm3[2],ymm4[3],ymm3[3],ymm4[6],ymm3[6],ymm4[7],ymm3[7]9459; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]9460; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9461; AVX2-FCP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]9462; AVX2-FCP-NEXT: vpermd %ymm13, %ymm6, %ymm139463; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm0[2,3,4,5],ymm13[6,7]9464; AVX2-FCP-NEXT: vpermd %ymm14, %ymm5, %ymm139465; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4,5,6],ymm13[7]9466; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9467; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9468; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9469; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9470; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9471; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9472; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm3, %ymm09473; AVX2-FCP-NEXT: vmovdqa 96(%r8), %ymm139474; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm149475; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3,4,5],ymm14[6,7]9476; AVX2-FCP-NEXT: vmovdqa 96(%r9), %ymm149477; AVX2-FCP-NEXT: vpermd %ymm14, %ymm1, %ymm159478; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4,5,6],ymm15[7]9479; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9480; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9481; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9482; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9483; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload9484; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm15 = ymm3[0],ymm2[0],ymm3[1],ymm2[1],ymm3[4],ymm2[4],ymm3[5],ymm2[5]9485; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm15[2,2,2,2]9486; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9487; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]9488; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm13[4,5],ymm0[6,7]9489; AVX2-FCP-NEXT: vpbroadcastd 112(%r9), %ymm159490; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]9491; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9492; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm3[2],ymm2[2],ymm3[3],ymm2[3],ymm3[6],ymm2[6],ymm3[7],ymm2[7]9493; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]9494; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9495; AVX2-FCP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]9496; AVX2-FCP-NEXT: vpermd %ymm13, %ymm6, %ymm29497; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5],ymm2[6,7]9498; AVX2-FCP-NEXT: vpermd %ymm14, %ymm5, %ymm29499; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2,3,4,5,6],ymm2[7]9500; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9501; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9502; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9503; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9504; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9505; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9506; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm2, %ymm09507; AVX2-FCP-NEXT: vmovdqa 128(%r8), %ymm29508; AVX2-FCP-NEXT: vpermd %ymm2, %ymm1, %ymm139509; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm13[0,1],ymm0[2,3,4,5],ymm13[6,7]9510; AVX2-FCP-NEXT: vmovdqa 128(%r9), %ymm39511; AVX2-FCP-NEXT: vpermd %ymm3, %ymm1, %ymm139512; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4,5,6],ymm13[7]9513; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9514; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9515; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9516; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9517; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm14 = ymm12[0],ymm9[0],ymm12[1],ymm9[1],ymm12[4],ymm9[4],ymm12[5],ymm9[5]9518; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm14 = ymm14[2,2,2,2]9519; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9520; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm14[2,3],ymm0[4,5,6,7]9521; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]9522; AVX2-FCP-NEXT: vpbroadcastd 144(%r9), %ymm149523; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm14[5],ymm0[6,7]9524; AVX2-FCP-NEXT: vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill9525; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm12[2],ymm9[2],ymm12[3],ymm9[3],ymm12[6],ymm9[6],ymm12[7],ymm9[7]9526; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]9527; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9528; AVX2-FCP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]9529; AVX2-FCP-NEXT: vpermd %ymm2, %ymm6, %ymm29530; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5],ymm2[6,7]9531; AVX2-FCP-NEXT: vpermd %ymm3, %ymm5, %ymm29532; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm14 = ymm0[0],ymm2[1],ymm0[2,3,4,5,6],ymm2[7]9533; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9534; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload9535; AVX2-FCP-NEXT: # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]9536; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9537; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9538; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm2, %ymm09539; AVX2-FCP-NEXT: vmovdqa 160(%r8), %ymm39540; AVX2-FCP-NEXT: vpermd %ymm3, %ymm1, %ymm29541; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5],ymm2[6,7]9542; AVX2-FCP-NEXT: vmovdqa 160(%r9), %ymm29543; AVX2-FCP-NEXT: vpermd %ymm2, %ymm1, %ymm49544; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm12 = ymm0[0],ymm4[1],ymm0[2,3,4,5,6],ymm4[7]9545; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9546; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9547; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9548; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm4 = ymm10[0],ymm7[0],ymm10[1],ymm7[1],ymm10[4],ymm7[4],ymm10[5],ymm7[5]9549; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm4 = ymm4[2,2,2,2]9550; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9551; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm4[2,3],ymm0[4,5,6,7]9552; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]9553; AVX2-FCP-NEXT: vpbroadcastd 176(%r9), %ymm49554; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm9 = ymm0[0,1,2,3,4],ymm4[5],ymm0[6,7]9555; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm0 = ymm10[2],ymm7[2],ymm10[3],ymm7[3],ymm10[6],ymm7[6],ymm10[7],ymm7[7]9556; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm0 = ymm0[2,3,2,3,6,7,6,7]9557; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9558; AVX2-FCP-NEXT: # ymm0 = mem[2,3],ymm0[2,3]9559; AVX2-FCP-NEXT: vpermd %ymm3, %ymm6, %ymm39560; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5],ymm3[6,7]9561; AVX2-FCP-NEXT: vpermd %ymm2, %ymm5, %ymm29562; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm7 = ymm0[0],ymm2[1],ymm0[2,3,4,5,6],ymm2[7]9563; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload9564; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} xmm0 = xmm0[2],xmm11[2],xmm0[3],xmm11[3]9565; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]9566; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload9567; AVX2-FCP-NEXT: vinserti128 $1, %xmm0, %ymm2, %ymm09568; AVX2-FCP-NEXT: vmovdqa 192(%r8), %ymm29569; AVX2-FCP-NEXT: vpermd %ymm2, %ymm1, %ymm39570; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5],ymm3[6,7]9571; AVX2-FCP-NEXT: vmovdqa 192(%r9), %ymm39572; AVX2-FCP-NEXT: vpermd %ymm3, %ymm1, %ymm109573; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm10 = ymm0[0],ymm10[1],ymm0[2,3,4,5,6],ymm10[7]9574; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9575; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload9576; AVX2-FCP-NEXT: # ymm0 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9577; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload9578; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload9579; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm15 = ymm13[0],ymm11[0],ymm13[1],ymm11[1],ymm13[4],ymm11[4],ymm13[5],ymm11[5]9580; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm15 = ymm15[2,2,2,2]9581; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm0 = ymm0[2,1,2,3]9582; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1],ymm15[2,3],ymm0[4,5,6,7]9583; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]9584; AVX2-FCP-NEXT: vpbroadcastd 208(%r9), %ymm159585; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4],ymm15[5],ymm0[6,7]9586; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm15 = ymm13[2],ymm11[2],ymm13[3],ymm11[3],ymm13[6],ymm11[6],ymm13[7],ymm11[7]9587; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm15 = ymm15[2,3,2,3,6,7,6,7]9588; AVX2-FCP-NEXT: vperm2i128 $19, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload9589; AVX2-FCP-NEXT: # ymm15 = mem[2,3],ymm15[2,3]9590; AVX2-FCP-NEXT: vpermd %ymm2, %ymm6, %ymm29591; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0,1],ymm15[2,3,4,5],ymm2[6,7]9592; AVX2-FCP-NEXT: vpermd %ymm3, %ymm5, %ymm39593; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5,6],ymm3[7]9594; AVX2-FCP-NEXT: vmovdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload9595; AVX2-FCP-NEXT: vpunpckhdq {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm3 # 16-byte Folded Reload9596; AVX2-FCP-NEXT: # xmm3 = xmm3[2],mem[2],xmm3[3],mem[3]9597; AVX2-FCP-NEXT: vpshufd {{.*#+}} xmm3 = xmm3[2,3,2,3]9598; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload9599; AVX2-FCP-NEXT: vinserti128 $1, %xmm3, %ymm11, %ymm39600; AVX2-FCP-NEXT: vmovdqa 224(%r8), %ymm159601; AVX2-FCP-NEXT: vpermd %ymm15, %ymm1, %ymm139602; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm13[0,1],ymm3[2,3,4,5],ymm13[6,7]9603; AVX2-FCP-NEXT: vmovdqa 224(%r9), %ymm139604; AVX2-FCP-NEXT: vpermd %ymm13, %ymm1, %ymm19605; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm1 = ymm3[0],ymm1[1],ymm3[2,3,4,5,6],ymm1[7]9606; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9607; AVX2-FCP-NEXT: vpunpckldq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm3 # 32-byte Folded Reload9608; AVX2-FCP-NEXT: # ymm3 = ymm0[0],mem[0],ymm0[1],mem[1],ymm0[4],mem[4],ymm0[5],mem[5]9609; AVX2-FCP-NEXT: vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9610; AVX2-FCP-NEXT: vpunpckldq {{.*#+}} ymm11 = ymm0[0],ymm8[0],ymm0[1],ymm8[1],ymm0[4],ymm8[4],ymm0[5],ymm8[5]9611; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm11 = ymm11[2,2,2,2]9612; AVX2-FCP-NEXT: vpermq {{.*#+}} ymm3 = ymm3[2,1,2,3]9613; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1],ymm11[2,3],ymm3[4,5,6,7]9614; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm15[4,5],ymm3[6,7]9615; AVX2-FCP-NEXT: vpbroadcastd 240(%r9), %ymm119616; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm11[5],ymm3[6,7]9617; AVX2-FCP-NEXT: vpunpckhdq {{.*#+}} ymm8 = ymm0[2],ymm8[2],ymm0[3],ymm8[3],ymm0[6],ymm8[6],ymm0[7],ymm8[7]9618; AVX2-FCP-NEXT: vpshufd {{.*#+}} ymm8 = ymm8[2,3,2,3,6,7,6,7]9619; AVX2-FCP-NEXT: vperm2i128 $19, (%rsp), %ymm8, %ymm8 # 32-byte Folded Reload9620; AVX2-FCP-NEXT: # ymm8 = mem[2,3],ymm8[2,3]9621; AVX2-FCP-NEXT: vpermd %ymm15, %ymm6, %ymm69622; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3,4,5],ymm6[6,7]9623; AVX2-FCP-NEXT: vpermd %ymm13, %ymm5, %ymm59624; AVX2-FCP-NEXT: vpblendd {{.*#+}} ymm5 = ymm6[0],ymm5[1],ymm6[2,3,4,5,6],ymm5[7]9625; AVX2-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax9626; AVX2-FCP-NEXT: vmovdqa %ymm5, 1504(%rax)9627; AVX2-FCP-NEXT: vmovdqa %ymm3, 1440(%rax)9628; AVX2-FCP-NEXT: vmovdqa %ymm1, 1408(%rax)9629; AVX2-FCP-NEXT: vmovdqa %ymm2, 1312(%rax)9630; AVX2-FCP-NEXT: vmovdqa %ymm4, 1248(%rax)9631; AVX2-FCP-NEXT: vmovdqa %ymm10, 1216(%rax)9632; AVX2-FCP-NEXT: vmovdqa %ymm7, 1120(%rax)9633; AVX2-FCP-NEXT: vmovdqa %ymm9, 1056(%rax)9634; AVX2-FCP-NEXT: vmovdqa %ymm12, 1024(%rax)9635; AVX2-FCP-NEXT: vmovdqa %ymm14, 928(%rax)9636; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9637; AVX2-FCP-NEXT: vmovaps %ymm0, 864(%rax)9638; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9639; AVX2-FCP-NEXT: vmovaps %ymm0, 832(%rax)9640; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9641; AVX2-FCP-NEXT: vmovaps %ymm0, 736(%rax)9642; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9643; AVX2-FCP-NEXT: vmovaps %ymm0, 672(%rax)9644; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9645; AVX2-FCP-NEXT: vmovaps %ymm0, 640(%rax)9646; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9647; AVX2-FCP-NEXT: vmovaps %ymm0, 544(%rax)9648; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9649; AVX2-FCP-NEXT: vmovaps %ymm0, 480(%rax)9650; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9651; AVX2-FCP-NEXT: vmovaps %ymm0, 448(%rax)9652; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9653; AVX2-FCP-NEXT: vmovaps %ymm0, 352(%rax)9654; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9655; AVX2-FCP-NEXT: vmovaps %ymm0, 288(%rax)9656; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9657; AVX2-FCP-NEXT: vmovaps %ymm0, 256(%rax)9658; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9659; AVX2-FCP-NEXT: vmovaps %ymm0, 160(%rax)9660; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9661; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%rax)9662; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9663; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%rax)9664; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9665; AVX2-FCP-NEXT: vmovaps %ymm0, 1472(%rax)9666; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9667; AVX2-FCP-NEXT: vmovaps %ymm0, 1344(%rax)9668; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9669; AVX2-FCP-NEXT: vmovaps %ymm0, 1280(%rax)9670; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9671; AVX2-FCP-NEXT: vmovaps %ymm0, 1152(%rax)9672; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9673; AVX2-FCP-NEXT: vmovaps %ymm0, 1088(%rax)9674; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9675; AVX2-FCP-NEXT: vmovaps %ymm0, 960(%rax)9676; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9677; AVX2-FCP-NEXT: vmovaps %ymm0, 896(%rax)9678; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9679; AVX2-FCP-NEXT: vmovaps %ymm0, 768(%rax)9680; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9681; AVX2-FCP-NEXT: vmovaps %ymm0, 704(%rax)9682; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9683; AVX2-FCP-NEXT: vmovaps %ymm0, 576(%rax)9684; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9685; AVX2-FCP-NEXT: vmovaps %ymm0, 512(%rax)9686; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9687; AVX2-FCP-NEXT: vmovaps %ymm0, 384(%rax)9688; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9689; AVX2-FCP-NEXT: vmovaps %ymm0, 320(%rax)9690; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9691; AVX2-FCP-NEXT: vmovaps %ymm0, 192(%rax)9692; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9693; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%rax)9694; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9695; AVX2-FCP-NEXT: vmovaps %ymm0, (%rax)9696; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9697; AVX2-FCP-NEXT: vmovaps %ymm0, 1376(%rax)9698; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9699; AVX2-FCP-NEXT: vmovaps %ymm0, 1184(%rax)9700; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9701; AVX2-FCP-NEXT: vmovaps %ymm0, 992(%rax)9702; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9703; AVX2-FCP-NEXT: vmovaps %ymm0, 800(%rax)9704; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9705; AVX2-FCP-NEXT: vmovaps %ymm0, 608(%rax)9706; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9707; AVX2-FCP-NEXT: vmovaps %ymm0, 416(%rax)9708; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9709; AVX2-FCP-NEXT: vmovaps %ymm0, 224(%rax)9710; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload9711; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%rax)9712; AVX2-FCP-NEXT: addq $2376, %rsp # imm = 0x9489713; AVX2-FCP-NEXT: vzeroupper9714; AVX2-FCP-NEXT: retq9715;9716; AVX512-LABEL: store_i32_stride6_vf64:9717; AVX512: # %bb.0:9718; AVX512-NEXT: subq $456, %rsp # imm = 0x1C89719; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm99720; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm309721; AVX512-NEXT: vmovdqa64 (%rdi), %zmm119722; AVX512-NEXT: vmovdqa64 (%rsi), %zmm109723; AVX512-NEXT: vmovdqa64 64(%rsi), %zmm89724; AVX512-NEXT: vmovdqa64 128(%rsi), %zmm49725; AVX512-NEXT: vmovdqa64 192(%rdx), %zmm159726; AVX512-NEXT: vmovdqa64 128(%rdx), %zmm289727; AVX512-NEXT: vmovdqa64 64(%rdx), %zmm179728; AVX512-NEXT: vmovdqa64 (%rdx), %zmm249729; AVX512-NEXT: vmovdqa64 (%rcx), %zmm229730; AVX512-NEXT: vmovdqa64 64(%rcx), %zmm189731; AVX512-NEXT: vmovdqa64 128(%rcx), %zmm169732; AVX512-NEXT: vmovdqa64 192(%rcx), %zmm139733; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]9734; AVX512-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]9735; AVX512-NEXT: vmovdqa64 %zmm11, %zmm09736; AVX512-NEXT: vpermt2d %zmm10, %zmm29, %zmm09737; AVX512-NEXT: vmovdqa64 %zmm0, %zmm39738; AVX512-NEXT: vmovdqa (%rdx), %ymm149739; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]9740; AVX512-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9741; AVX512-NEXT: vmovdqa64 %zmm24, %zmm209742; AVX512-NEXT: vpermt2d %zmm22, %zmm0, %zmm209743; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]9744; AVX512-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]9745; AVX512-NEXT: vmovdqa64 %zmm24, %zmm239746; AVX512-NEXT: vpermt2d %zmm22, %zmm6, %zmm239747; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]9748; AVX512-NEXT: vmovdqa64 %zmm24, %zmm59749; AVX512-NEXT: vpermt2d %zmm22, %zmm2, %zmm59750; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9751; AVX512-NEXT: vmovdqa64 %zmm17, %zmm259752; AVX512-NEXT: vpermt2d %zmm18, %zmm0, %zmm259753; AVX512-NEXT: vmovdqa64 %zmm17, %zmm269754; AVX512-NEXT: vpermt2d %zmm18, %zmm6, %zmm269755; AVX512-NEXT: vmovdqa64 %zmm17, %zmm59756; AVX512-NEXT: vpermt2d %zmm18, %zmm2, %zmm59757; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9758; AVX512-NEXT: vmovdqa64 %zmm28, %zmm59759; AVX512-NEXT: vpermt2d %zmm16, %zmm0, %zmm59760; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9761; AVX512-NEXT: vmovdqa64 %zmm0, %zmm59762; AVX512-NEXT: vmovdqa64 %zmm28, %zmm279763; AVX512-NEXT: vpermt2d %zmm16, %zmm6, %zmm279764; AVX512-NEXT: vmovdqa64 %zmm28, %zmm09765; AVX512-NEXT: vpermt2d %zmm16, %zmm2, %zmm09766; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9767; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]9768; AVX512-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]9769; AVX512-NEXT: vmovdqa64 %zmm24, %zmm199770; AVX512-NEXT: vpermt2d %zmm22, %zmm21, %zmm199771; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]9772; AVX512-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]9773; AVX512-NEXT: vpermt2d %zmm22, %zmm0, %zmm249774; AVX512-NEXT: vmovdqa64 %zmm17, %zmm229775; AVX512-NEXT: vpermt2d %zmm18, %zmm21, %zmm229776; AVX512-NEXT: vpermt2d %zmm18, %zmm0, %zmm179777; AVX512-NEXT: vmovdqa64 %zmm28, %zmm189778; AVX512-NEXT: vpermt2d %zmm16, %zmm21, %zmm189779; AVX512-NEXT: vpermt2d %zmm16, %zmm0, %zmm289780; AVX512-NEXT: vmovdqa 64(%rdx), %ymm19781; AVX512-NEXT: vpermi2d %zmm13, %zmm15, %zmm59782; AVX512-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9783; AVX512-NEXT: vpermi2d %zmm13, %zmm15, %zmm69784; AVX512-NEXT: vmovdqu64 %zmm6, (%rsp) # 64-byte Spill9785; AVX512-NEXT: vpermi2d %zmm13, %zmm15, %zmm29786; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9787; AVX512-NEXT: vpermi2d %zmm13, %zmm15, %zmm219788; AVX512-NEXT: vpermt2d %zmm13, %zmm0, %zmm159789; AVX512-NEXT: vmovdqa 128(%rdx), %ymm09790; AVX512-NEXT: vpmovsxbd {{.*#+}} ymm2 = [3,11,0,8,7,15,4,12]9791; AVX512-NEXT: vpermt2d (%rcx), %ymm2, %ymm149792; AVX512-NEXT: movb $36, %al9793; AVX512-NEXT: kmovw %eax, %k19794; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm14[0,1,0,1,2,3,6,7]9795; AVX512-NEXT: vmovdqa64 %zmm30, %zmm139796; AVX512-NEXT: vpermt2d %zmm8, %zmm29, %zmm139797; AVX512-NEXT: vpermt2d 64(%rcx), %ymm2, %ymm19798; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm13 {%k1} = zmm1[0,1,0,1,2,3,6,7]9799; AVX512-NEXT: vmovdqa64 %zmm9, %zmm149800; AVX512-NEXT: vmovdqa64 %zmm4, %zmm19801; AVX512-NEXT: vpermt2d %zmm4, %zmm29, %zmm149802; AVX512-NEXT: vpermt2d 128(%rcx), %ymm2, %ymm09803; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm0[0,1,0,1,2,3,6,7]9804; AVX512-NEXT: vmovdqa 192(%rdx), %ymm09805; AVX512-NEXT: vpermt2d 192(%rcx), %ymm2, %ymm09806; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm129807; AVX512-NEXT: vmovdqa64 192(%rsi), %zmm79808; AVX512-NEXT: vpermi2d %zmm7, %zmm12, %zmm299809; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm29 {%k1} = zmm0[0,1,0,1,2,3,6,7]9810; AVX512-NEXT: vmovdqa64 (%r8), %zmm49811; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]9812; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm39813; AVX512-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9814; AVX512-NEXT: vmovdqa64 64(%r8), %zmm39815; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm139816; AVX512-NEXT: vmovdqa64 128(%r8), %zmm29817; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm149818; AVX512-NEXT: vmovdqa64 192(%r8), %zmm69819; AVX512-NEXT: vpermt2d %zmm6, %zmm0, %zmm299820; AVX512-NEXT: vmovdqa64 %zmm11, %zmm169821; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm31 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]9822; AVX512-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3]9823; AVX512-NEXT: vpermt2d %zmm10, %zmm31, %zmm169824; AVX512-NEXT: movb $-110, %al9825; AVX512-NEXT: kmovw %eax, %k29826; AVX512-NEXT: vmovdqa64 %zmm20, %zmm16 {%k2}9827; AVX512-NEXT: vmovdqa64 %zmm11, %zmm209828; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]9829; AVX512-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]9830; AVX512-NEXT: vpermt2d %zmm10, %zmm5, %zmm209831; AVX512-NEXT: vmovdqa64 %zmm23, %zmm20 {%k2}9832; AVX512-NEXT: vmovdqa64 %zmm11, %zmm239833; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm11[2],zmm10[2],zmm11[3],zmm10[3],zmm11[6],zmm10[6],zmm11[7],zmm10[7],zmm11[10],zmm10[10],zmm11[11],zmm10[11],zmm11[14],zmm10[14],zmm11[15],zmm10[15]9834; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9835; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]9836; AVX512-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]9837; AVX512-NEXT: vpermt2d %zmm10, %zmm11, %zmm239838; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9839; AVX512-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}9840; AVX512-NEXT: vmovdqa64 %zmm30, %zmm109841; AVX512-NEXT: vpermt2d %zmm8, %zmm31, %zmm109842; AVX512-NEXT: vmovdqa64 %zmm25, %zmm10 {%k2}9843; AVX512-NEXT: vmovdqa64 %zmm30, %zmm259844; AVX512-NEXT: vpermt2d %zmm8, %zmm5, %zmm259845; AVX512-NEXT: vmovdqa64 %zmm26, %zmm25 {%k2}9846; AVX512-NEXT: vmovdqa64 %zmm30, %zmm269847; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm30 = zmm30[2],zmm8[2],zmm30[3],zmm8[3],zmm30[6],zmm8[6],zmm30[7],zmm8[7],zmm30[10],zmm8[10],zmm30[11],zmm8[11],zmm30[14],zmm8[14],zmm30[15],zmm8[15]9848; AVX512-NEXT: vpermt2d %zmm8, %zmm11, %zmm269849; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9850; AVX512-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}9851; AVX512-NEXT: vmovdqa64 %zmm9, %zmm09852; AVX512-NEXT: vmovdqa64 %zmm9, %zmm89853; AVX512-NEXT: vpermt2d %zmm1, %zmm31, %zmm89854; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload9855; AVX512-NEXT: vmovdqa64 %zmm9, %zmm8 {%k2}9856; AVX512-NEXT: vmovdqa64 %zmm0, %zmm99857; AVX512-NEXT: vpermt2d %zmm1, %zmm5, %zmm99858; AVX512-NEXT: vmovdqa64 %zmm27, %zmm9 {%k2}9859; AVX512-NEXT: vmovdqa64 %zmm0, %zmm279860; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm0[2],zmm1[2],zmm0[3],zmm1[3],zmm0[6],zmm1[6],zmm0[7],zmm1[7],zmm0[10],zmm1[10],zmm0[11],zmm1[11],zmm0[14],zmm1[14],zmm0[15],zmm1[15]9861; AVX512-NEXT: vpermt2d %zmm1, %zmm11, %zmm279862; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9863; AVX512-NEXT: vmovdqa64 %zmm1, %zmm27 {%k1}9864; AVX512-NEXT: vpermi2d %zmm7, %zmm12, %zmm319865; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9866; AVX512-NEXT: vmovdqa64 %zmm1, %zmm31 {%k2}9867; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]9868; AVX512-NEXT: vpermt2d %zmm4, %zmm1, %zmm169869; AVX512-NEXT: vpermt2d %zmm3, %zmm1, %zmm109870; AVX512-NEXT: vpermt2d %zmm2, %zmm1, %zmm89871; AVX512-NEXT: vpermt2d %zmm6, %zmm1, %zmm319872; AVX512-NEXT: vpermi2d %zmm7, %zmm12, %zmm59873; AVX512-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload9874; AVX512-NEXT: vmovdqa64 %zmm1, %zmm5 {%k2}9875; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]9876; AVX512-NEXT: vpermt2d %zmm4, %zmm1, %zmm209877; AVX512-NEXT: vpermt2d %zmm3, %zmm1, %zmm259878; AVX512-NEXT: vpermt2d %zmm2, %zmm1, %zmm99879; AVX512-NEXT: vpermt2d %zmm6, %zmm1, %zmm59880; AVX512-NEXT: vpermi2d %zmm7, %zmm12, %zmm119881; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9882; AVX512-NEXT: vmovdqa64 %zmm1, %zmm11 {%k1}9883; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]9884; AVX512-NEXT: vpermt2d %zmm4, %zmm1, %zmm239885; AVX512-NEXT: vpermt2d %zmm3, %zmm1, %zmm269886; AVX512-NEXT: vpermt2d %zmm2, %zmm1, %zmm279887; AVX512-NEXT: vpermt2d %zmm6, %zmm1, %zmm119888; AVX512-NEXT: vmovdqa (%rdi), %ymm19889; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]9890; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm1[2,3,2,3,2,3,2,3]9891; AVX512-NEXT: vmovdqa 64(%rdi), %ymm19892; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]9893; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm22 {%k1} = zmm1[2,3,2,3,2,3,2,3]9894; AVX512-NEXT: vmovdqa 128(%rdi), %ymm19895; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]9896; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm1[2,3,2,3,2,3,2,3]9897; AVX512-NEXT: vmovdqa 192(%rdi), %ymm19898; AVX512-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]9899; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm1[2,3,2,3,2,3,2,3]9900; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]9901; AVX512-NEXT: vpermt2d %zmm4, %zmm1, %zmm199902; AVX512-NEXT: vpermt2d %zmm3, %zmm1, %zmm229903; AVX512-NEXT: vpermt2d %zmm2, %zmm1, %zmm189904; AVX512-NEXT: vpermt2d %zmm6, %zmm1, %zmm219905; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload9906; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm1[6,7,6,7,6,7,6,7]9907; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]9908; AVX512-NEXT: vpermt2d %zmm4, %zmm1, %zmm249909; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm30[6,7,6,7,6,7,6,7]9910; AVX512-NEXT: vpermt2d %zmm3, %zmm1, %zmm179911; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm28 {%k1} = zmm0[6,7,6,7,6,7,6,7]9912; AVX512-NEXT: vpermt2d %zmm2, %zmm1, %zmm289913; AVX512-NEXT: vmovdqa64 (%r9), %zmm29914; AVX512-NEXT: vpunpckhdq {{.*#+}} zmm3 = zmm12[2],zmm7[2],zmm12[3],zmm7[3],zmm12[6],zmm7[6],zmm12[7],zmm7[7],zmm12[10],zmm7[10],zmm12[11],zmm7[11],zmm12[14],zmm7[14],zmm12[15],zmm7[15]9915; AVX512-NEXT: vmovdqa64 64(%r9), %zmm49916; AVX512-NEXT: vshufi64x2 {{.*#+}} zmm15 {%k1} = zmm3[6,7,6,7,6,7,6,7]9917; AVX512-NEXT: vmovdqa64 128(%r9), %zmm39918; AVX512-NEXT: vpermt2d %zmm6, %zmm1, %zmm159919; AVX512-NEXT: vmovdqa64 192(%r9), %zmm19920; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]9921; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload9922; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm69923; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm139924; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm149925; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm299926; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]9927; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm169928; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm109929; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm89930; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm319931; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]9932; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm209933; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm259934; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm99935; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm59936; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]9937; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm239938; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm269939; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm279940; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm119941; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]9942; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm199943; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm229944; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm189945; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm219946; AVX512-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]9947; AVX512-NEXT: vpermt2d %zmm2, %zmm0, %zmm249948; AVX512-NEXT: vpermt2d %zmm4, %zmm0, %zmm179949; AVX512-NEXT: vpermt2d %zmm3, %zmm0, %zmm289950; AVX512-NEXT: vpermt2d %zmm1, %zmm0, %zmm159951; AVX512-NEXT: movq {{[0-9]+}}(%rsp), %rax9952; AVX512-NEXT: vmovdqa64 %zmm15, 1472(%rax)9953; AVX512-NEXT: vmovdqa64 %zmm11, 1408(%rax)9954; AVX512-NEXT: vmovdqa64 %zmm5, 1344(%rax)9955; AVX512-NEXT: vmovdqa64 %zmm31, 1152(%rax)9956; AVX512-NEXT: vmovdqa64 %zmm28, 1088(%rax)9957; AVX512-NEXT: vmovdqa64 %zmm27, 1024(%rax)9958; AVX512-NEXT: vmovdqa64 %zmm9, 960(%rax)9959; AVX512-NEXT: vmovdqa64 %zmm8, 768(%rax)9960; AVX512-NEXT: vmovdqa64 %zmm17, 704(%rax)9961; AVX512-NEXT: vmovdqa64 %zmm26, 640(%rax)9962; AVX512-NEXT: vmovdqa64 %zmm25, 576(%rax)9963; AVX512-NEXT: vmovdqa64 %zmm10, 384(%rax)9964; AVX512-NEXT: vmovdqa64 %zmm24, 320(%rax)9965; AVX512-NEXT: vmovdqa64 %zmm23, 256(%rax)9966; AVX512-NEXT: vmovdqa64 %zmm20, 192(%rax)9967; AVX512-NEXT: vmovdqa64 %zmm16, (%rax)9968; AVX512-NEXT: vmovdqa64 %zmm21, 1280(%rax)9969; AVX512-NEXT: vmovdqa64 %zmm29, 1216(%rax)9970; AVX512-NEXT: vmovdqa64 %zmm18, 896(%rax)9971; AVX512-NEXT: vmovdqa64 %zmm14, 832(%rax)9972; AVX512-NEXT: vmovdqa64 %zmm22, 512(%rax)9973; AVX512-NEXT: vmovdqa64 %zmm13, 448(%rax)9974; AVX512-NEXT: vmovdqa64 %zmm19, 128(%rax)9975; AVX512-NEXT: vmovdqa64 %zmm6, 64(%rax)9976; AVX512-NEXT: addq $456, %rsp # imm = 0x1C89977; AVX512-NEXT: vzeroupper9978; AVX512-NEXT: retq9979;9980; AVX512-FCP-LABEL: store_i32_stride6_vf64:9981; AVX512-FCP: # %bb.0:9982; AVX512-FCP-NEXT: subq $1160, %rsp # imm = 0x4889983; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm89984; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm59985; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm39986; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm29987; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm09988; AVX512-FCP-NEXT: vmovdqa64 64(%rsi), %zmm249989; AVX512-FCP-NEXT: vmovdqa64 128(%rsi), %zmm299990; AVX512-FCP-NEXT: vmovdqa64 192(%rsi), %zmm239991; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm49992; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm219993; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]9994; AVX512-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]9995; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm69996; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm20, %zmm69997; AVX512-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill9998; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]9999; AVX512-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]10000; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm110001; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm110002; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm1610003; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]10004; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]10005; AVX512-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]10006; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm110007; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm10, %zmm110008; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm1710009; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm1 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]10010; AVX512-FCP-NEXT: # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]10011; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm3110012; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm2510013; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm1, %zmm3110014; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm810015; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]10016; AVX512-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]10017; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm110018; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm11, %zmm110019; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm2710020; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]10021; AVX512-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]10022; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm110023; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm12, %zmm110024; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10025; AVX512-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm30 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]10026; AVX512-FCP-NEXT: # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]10027; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm30, %zmm2510028; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm010029; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm7, %zmm010030; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10031; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm010032; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm10, %zmm010033; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10034; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm010035; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm8, %zmm010036; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10037; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm010038; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm11, %zmm010039; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10040; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm010041; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm12, %zmm010042; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10043; AVX512-FCP-NEXT: vpermt2d %zmm24, %zmm30, %zmm510044; AVX512-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10045; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm010046; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm110047; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm7, %zmm110048; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10049; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm110050; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm10, %zmm110051; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10052; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm110053; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm8, %zmm110054; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10055; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm2610056; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm11, %zmm2610057; AVX512-FCP-NEXT: vmovdqa64 %zmm3, %zmm2810058; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm12, %zmm2810059; AVX512-FCP-NEXT: vpermt2d %zmm29, %zmm30, %zmm010060; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10061; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm1910062; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm1910063; AVX512-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm710064; AVX512-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10065; AVX512-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1010066; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10067; AVX512-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm810068; AVX512-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10069; AVX512-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1110070; AVX512-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10071; AVX512-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1210072; AVX512-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10073; AVX512-FCP-NEXT: vpermt2d %zmm23, %zmm30, %zmm210074; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10075; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]10076; AVX512-FCP-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]10077; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm510078; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm2310079; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm29, %zmm2310080; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm4 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]10081; AVX512-FCP-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3]10082; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm1810083; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm4, %zmm1810084; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]10085; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm710086; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm8, %zmm710087; AVX512-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]10088; AVX512-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]10089; AVX512-FCP-NEXT: vpermt2d %zmm21, %zmm2, %zmm510090; AVX512-FCP-NEXT: vmovdqa64 64(%rdx), %zmm2110091; AVX512-FCP-NEXT: vmovdqa64 64(%rcx), %zmm010092; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm2210093; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm2210094; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm1410095; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm2410096; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1410097; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm3010098; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm3010099; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm1010100; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1010101; AVX512-FCP-NEXT: vmovdqa64 %zmm21, %zmm610102; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm610103; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2110104; AVX512-FCP-NEXT: vmovdqa64 128(%rdx), %zmm1310105; AVX512-FCP-NEXT: vmovdqa64 128(%rcx), %zmm010106; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm1510107; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm1510108; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm1210109; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1210110; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm310111; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm310112; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm1110113; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1110114; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm910115; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm910116; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1310117; AVX512-FCP-NEXT: vmovdqa64 192(%rdx), %zmm110118; AVX512-FCP-NEXT: vmovdqa64 192(%rcx), %zmm010119; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2010120; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2410121; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2910122; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm410123; AVX512-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm810124; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm110125; AVX512-FCP-NEXT: movb $-110, %al10126; AVX512-FCP-NEXT: kmovw %eax, %k210127; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10128; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k2}10129; AVX512-FCP-NEXT: movb $36, %al10130; AVX512-FCP-NEXT: kmovw %eax, %k110131; AVX512-FCP-NEXT: vmovdqa64 %zmm19, %zmm17 {%k1}10132; AVX512-FCP-NEXT: vmovdqa64 %zmm31, %zmm23 {%k1}10133; AVX512-FCP-NEXT: vmovdqa64 %zmm18, %zmm27 {%k2}10134; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload10135; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm19 {%k1}10136; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm5 {%k1}10137; AVX512-FCP-NEXT: vmovdqa64 (%r8), %zmm010138; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]10139; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1610140; AVX512-FCP-NEXT: vmovdqu64 %zmm16, (%rsp) # 64-byte Spill10141; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]10142; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1710143; AVX512-FCP-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10144; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm18 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]10145; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2310146; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm25 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]10147; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2710148; AVX512-FCP-NEXT: vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10149; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]10150; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1910151; AVX512-FCP-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10152; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm31 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]10153; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm510154; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload10155; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm27 {%k2}10156; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload10157; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm22 {%k1}10158; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10159; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}10160; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload10161; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm16 {%k2}10162; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload10163; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm10 {%k1}10164; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10165; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}10166; AVX512-FCP-NEXT: vmovdqa64 64(%r8), %zmm010167; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2710168; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm2210169; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm3010170; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm1610171; AVX512-FCP-NEXT: vmovdqa64 %zmm16, %zmm1910172; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1010173; AVX512-FCP-NEXT: vmovdqa64 %zmm17, %zmm1410174; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm1710175; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm2110176; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload10177; AVX512-FCP-NEXT: vmovdqa64 %zmm15, %zmm16 {%k2}10178; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload10179; AVX512-FCP-NEXT: vmovdqa64 %zmm12, %zmm15 {%k1}10180; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10181; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}10182; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm26 {%k2}10183; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm28 {%k1}10184; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10185; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}10186; AVX512-FCP-NEXT: vmovdqa64 128(%r8), %zmm010187; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1610188; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1510189; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm310190; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2610191; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm2810192; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm1310193; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10194; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm6 {%k2}10195; AVX512-FCP-NEXT: vmovdqa64 192(%r8), %zmm010196; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm610197; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm910198; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload10199; AVX512-FCP-NEXT: vmovdqa64 %zmm24, %zmm2 {%k1}10200; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm210201; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm1010202; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload10203; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm29 {%k1}10204; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2910205; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10206; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k2}10207; AVX512-FCP-NEXT: vmovdqa64 (%r9), %zmm210208; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm610209; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm1210210; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]10211; AVX512-FCP-NEXT: vmovdqu64 (%rsp), %zmm18 # 64-byte Reload10212; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1810213; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10214; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm6 {%k1}10215; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]10216; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload10217; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2010218; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm610219; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm1410220; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]10221; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2310222; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10223; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm1 {%k1}10224; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]10225; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload10226; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2410227; AVX512-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm110228; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]10229; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload10230; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2510231; AVX512-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]10232; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm510233; AVX512-FCP-NEXT: vmovdqa64 64(%r9), %zmm210234; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm2710235; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2210236; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm3010237; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1910238; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1710239; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm2110240; AVX512-FCP-NEXT: vmovdqa64 128(%r9), %zmm210241; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1610242; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1510243; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm310244; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2610245; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2810246; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm1310247; AVX512-FCP-NEXT: vmovdqa64 192(%r9), %zmm210248; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm910249; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1010250; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2910251; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1210252; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1410253; AVX512-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm110254; AVX512-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax10255; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 1472(%rax)10256; AVX512-FCP-NEXT: vmovdqa64 %zmm14, 1408(%rax)10257; AVX512-FCP-NEXT: vmovdqa64 %zmm12, 1344(%rax)10258; AVX512-FCP-NEXT: vmovdqa64 %zmm29, 1280(%rax)10259; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 1216(%rax)10260; AVX512-FCP-NEXT: vmovdqa64 %zmm9, 1152(%rax)10261; AVX512-FCP-NEXT: vmovdqa64 %zmm13, 1088(%rax)10262; AVX512-FCP-NEXT: vmovdqa64 %zmm28, 1024(%rax)10263; AVX512-FCP-NEXT: vmovdqa64 %zmm26, 960(%rax)10264; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 896(%rax)10265; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 832(%rax)10266; AVX512-FCP-NEXT: vmovdqa64 %zmm16, 768(%rax)10267; AVX512-FCP-NEXT: vmovdqa64 %zmm21, 704(%rax)10268; AVX512-FCP-NEXT: vmovdqa64 %zmm17, 640(%rax)10269; AVX512-FCP-NEXT: vmovdqa64 %zmm19, 576(%rax)10270; AVX512-FCP-NEXT: vmovdqa64 %zmm30, 512(%rax)10271; AVX512-FCP-NEXT: vmovdqa64 %zmm22, 448(%rax)10272; AVX512-FCP-NEXT: vmovdqa64 %zmm27, 384(%rax)10273; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)10274; AVX512-FCP-NEXT: vmovdqa64 %zmm25, 256(%rax)10275; AVX512-FCP-NEXT: vmovdqa64 %zmm24, 192(%rax)10276; AVX512-FCP-NEXT: vmovdqa64 %zmm23, 128(%rax)10277; AVX512-FCP-NEXT: vmovdqa64 %zmm20, 64(%rax)10278; AVX512-FCP-NEXT: vmovdqa64 %zmm18, (%rax)10279; AVX512-FCP-NEXT: addq $1160, %rsp # imm = 0x48810280; AVX512-FCP-NEXT: vzeroupper10281; AVX512-FCP-NEXT: retq10282;10283; AVX512DQ-LABEL: store_i32_stride6_vf64:10284; AVX512DQ: # %bb.0:10285; AVX512DQ-NEXT: subq $456, %rsp # imm = 0x1C810286; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm910287; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm3010288; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm1110289; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm1010290; AVX512DQ-NEXT: vmovdqa64 64(%rsi), %zmm810291; AVX512DQ-NEXT: vmovdqa64 128(%rsi), %zmm410292; AVX512DQ-NEXT: vmovdqa64 192(%rdx), %zmm1510293; AVX512DQ-NEXT: vmovdqa64 128(%rdx), %zmm2810294; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %zmm1710295; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm2410296; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm2210297; AVX512DQ-NEXT: vmovdqa64 64(%rcx), %zmm1810298; AVX512DQ-NEXT: vmovdqa64 128(%rcx), %zmm1610299; AVX512DQ-NEXT: vmovdqa64 192(%rcx), %zmm1310300; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]10301; AVX512DQ-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]10302; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm010303; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm29, %zmm010304; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm310305; AVX512DQ-NEXT: vmovdqa (%rdx), %ymm1410306; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]10307; AVX512DQ-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]10308; AVX512DQ-NEXT: vmovdqa64 %zmm24, %zmm2010309; AVX512DQ-NEXT: vpermt2d %zmm22, %zmm0, %zmm2010310; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]10311; AVX512DQ-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]10312; AVX512DQ-NEXT: vmovdqa64 %zmm24, %zmm2310313; AVX512DQ-NEXT: vpermt2d %zmm22, %zmm6, %zmm2310314; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]10315; AVX512DQ-NEXT: vmovdqa64 %zmm24, %zmm510316; AVX512DQ-NEXT: vpermt2d %zmm22, %zmm2, %zmm510317; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10318; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm2510319; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm0, %zmm2510320; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm2610321; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm6, %zmm2610322; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm510323; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm2, %zmm510324; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10325; AVX512DQ-NEXT: vmovdqa64 %zmm28, %zmm510326; AVX512DQ-NEXT: vpermt2d %zmm16, %zmm0, %zmm510327; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10328; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm510329; AVX512DQ-NEXT: vmovdqa64 %zmm28, %zmm2710330; AVX512DQ-NEXT: vpermt2d %zmm16, %zmm6, %zmm2710331; AVX512DQ-NEXT: vmovdqa64 %zmm28, %zmm010332; AVX512DQ-NEXT: vpermt2d %zmm16, %zmm2, %zmm010333; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10334; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]10335; AVX512DQ-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]10336; AVX512DQ-NEXT: vmovdqa64 %zmm24, %zmm1910337; AVX512DQ-NEXT: vpermt2d %zmm22, %zmm21, %zmm1910338; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]10339; AVX512DQ-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]10340; AVX512DQ-NEXT: vpermt2d %zmm22, %zmm0, %zmm2410341; AVX512DQ-NEXT: vmovdqa64 %zmm17, %zmm2210342; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm21, %zmm2210343; AVX512DQ-NEXT: vpermt2d %zmm18, %zmm0, %zmm1710344; AVX512DQ-NEXT: vmovdqa64 %zmm28, %zmm1810345; AVX512DQ-NEXT: vpermt2d %zmm16, %zmm21, %zmm1810346; AVX512DQ-NEXT: vpermt2d %zmm16, %zmm0, %zmm2810347; AVX512DQ-NEXT: vmovdqa 64(%rdx), %ymm110348; AVX512DQ-NEXT: vpermi2d %zmm13, %zmm15, %zmm510349; AVX512DQ-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10350; AVX512DQ-NEXT: vpermi2d %zmm13, %zmm15, %zmm610351; AVX512DQ-NEXT: vmovdqu64 %zmm6, (%rsp) # 64-byte Spill10352; AVX512DQ-NEXT: vpermi2d %zmm13, %zmm15, %zmm210353; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10354; AVX512DQ-NEXT: vpermi2d %zmm13, %zmm15, %zmm2110355; AVX512DQ-NEXT: vpermt2d %zmm13, %zmm0, %zmm1510356; AVX512DQ-NEXT: vmovdqa 128(%rdx), %ymm010357; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} ymm2 = [3,11,0,8,7,15,4,12]10358; AVX512DQ-NEXT: vpermt2d (%rcx), %ymm2, %ymm1410359; AVX512DQ-NEXT: movb $36, %al10360; AVX512DQ-NEXT: kmovw %eax, %k110361; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm14[0,1,0,1,2,3,6,7]10362; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm1310363; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm29, %zmm1310364; AVX512DQ-NEXT: vpermt2d 64(%rcx), %ymm2, %ymm110365; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm13 {%k1} = zmm1[0,1,0,1,2,3,6,7]10366; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm1410367; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm110368; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm29, %zmm1410369; AVX512DQ-NEXT: vpermt2d 128(%rcx), %ymm2, %ymm010370; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm0[0,1,0,1,2,3,6,7]10371; AVX512DQ-NEXT: vmovdqa 192(%rdx), %ymm010372; AVX512DQ-NEXT: vpermt2d 192(%rcx), %ymm2, %ymm010373; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm1210374; AVX512DQ-NEXT: vmovdqa64 192(%rsi), %zmm710375; AVX512DQ-NEXT: vpermi2d %zmm7, %zmm12, %zmm2910376; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm29 {%k1} = zmm0[0,1,0,1,2,3,6,7]10377; AVX512DQ-NEXT: vmovdqa64 (%r8), %zmm410378; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]10379; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm310380; AVX512DQ-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10381; AVX512DQ-NEXT: vmovdqa64 64(%r8), %zmm310382; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm1310383; AVX512DQ-NEXT: vmovdqa64 128(%r8), %zmm210384; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm1410385; AVX512DQ-NEXT: vmovdqa64 192(%r8), %zmm610386; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm0, %zmm2910387; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm1610388; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm31 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]10389; AVX512DQ-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3]10390; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm31, %zmm1610391; AVX512DQ-NEXT: movb $-110, %al10392; AVX512DQ-NEXT: kmovw %eax, %k210393; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm16 {%k2}10394; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm2010395; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]10396; AVX512DQ-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]10397; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm5, %zmm2010398; AVX512DQ-NEXT: vmovdqa64 %zmm23, %zmm20 {%k2}10399; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm2310400; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm11[2],zmm10[2],zmm11[3],zmm10[3],zmm11[6],zmm10[6],zmm11[7],zmm10[7],zmm11[10],zmm10[10],zmm11[11],zmm10[11],zmm11[14],zmm10[14],zmm11[15],zmm10[15]10401; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10402; AVX512DQ-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]10403; AVX512DQ-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]10404; AVX512DQ-NEXT: vpermt2d %zmm10, %zmm11, %zmm2310405; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10406; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}10407; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm1010408; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm31, %zmm1010409; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm10 {%k2}10410; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm2510411; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm5, %zmm2510412; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm25 {%k2}10413; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm2610414; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm30 = zmm30[2],zmm8[2],zmm30[3],zmm8[3],zmm30[6],zmm8[6],zmm30[7],zmm8[7],zmm30[10],zmm8[10],zmm30[11],zmm8[11],zmm30[14],zmm8[14],zmm30[15],zmm8[15]10415; AVX512DQ-NEXT: vpermt2d %zmm8, %zmm11, %zmm2610416; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10417; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}10418; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm010419; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm810420; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm31, %zmm810421; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload10422; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm8 {%k2}10423; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm910424; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm5, %zmm910425; AVX512DQ-NEXT: vmovdqa64 %zmm27, %zmm9 {%k2}10426; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm2710427; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm0[2],zmm1[2],zmm0[3],zmm1[3],zmm0[6],zmm1[6],zmm0[7],zmm1[7],zmm0[10],zmm1[10],zmm0[11],zmm1[11],zmm0[14],zmm1[14],zmm0[15],zmm1[15]10428; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm11, %zmm2710429; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload10430; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm27 {%k1}10431; AVX512DQ-NEXT: vpermi2d %zmm7, %zmm12, %zmm3110432; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload10433; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm31 {%k2}10434; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]10435; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm1, %zmm1610436; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm1, %zmm1010437; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm1, %zmm810438; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm1, %zmm3110439; AVX512DQ-NEXT: vpermi2d %zmm7, %zmm12, %zmm510440; AVX512DQ-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload10441; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm5 {%k2}10442; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]10443; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm1, %zmm2010444; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm1, %zmm2510445; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm1, %zmm910446; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm1, %zmm510447; AVX512DQ-NEXT: vpermi2d %zmm7, %zmm12, %zmm1110448; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload10449; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm11 {%k1}10450; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]10451; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm1, %zmm2310452; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm1, %zmm2610453; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm1, %zmm2710454; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm1, %zmm1110455; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm110456; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]10457; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm1[2,3,2,3,2,3,2,3]10458; AVX512DQ-NEXT: vmovdqa 64(%rdi), %ymm110459; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]10460; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm22 {%k1} = zmm1[2,3,2,3,2,3,2,3]10461; AVX512DQ-NEXT: vmovdqa 128(%rdi), %ymm110462; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]10463; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm1[2,3,2,3,2,3,2,3]10464; AVX512DQ-NEXT: vmovdqa 192(%rdi), %ymm110465; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]10466; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm1[2,3,2,3,2,3,2,3]10467; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]10468; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm1, %zmm1910469; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm1, %zmm2210470; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm1, %zmm1810471; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm1, %zmm2110472; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload10473; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm1[6,7,6,7,6,7,6,7]10474; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]10475; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm1, %zmm2410476; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm30[6,7,6,7,6,7,6,7]10477; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm1, %zmm1710478; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm28 {%k1} = zmm0[6,7,6,7,6,7,6,7]10479; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm1, %zmm2810480; AVX512DQ-NEXT: vmovdqa64 (%r9), %zmm210481; AVX512DQ-NEXT: vpunpckhdq {{.*#+}} zmm3 = zmm12[2],zmm7[2],zmm12[3],zmm7[3],zmm12[6],zmm7[6],zmm12[7],zmm7[7],zmm12[10],zmm7[10],zmm12[11],zmm7[11],zmm12[14],zmm7[14],zmm12[15],zmm7[15]10482; AVX512DQ-NEXT: vmovdqa64 64(%r9), %zmm410483; AVX512DQ-NEXT: vshufi64x2 {{.*#+}} zmm15 {%k1} = zmm3[6,7,6,7,6,7,6,7]10484; AVX512DQ-NEXT: vmovdqa64 128(%r9), %zmm310485; AVX512DQ-NEXT: vpermt2d %zmm6, %zmm1, %zmm1510486; AVX512DQ-NEXT: vmovdqa64 192(%r9), %zmm110487; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]10488; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10489; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm610490; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm1310491; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm1410492; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm2910493; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]10494; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm1610495; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm1010496; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm810497; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm3110498; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]10499; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm2010500; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm2510501; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm910502; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm510503; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]10504; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm2310505; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm2610506; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm2710507; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm1110508; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]10509; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm1910510; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm2210511; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm1810512; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm2110513; AVX512DQ-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]10514; AVX512DQ-NEXT: vpermt2d %zmm2, %zmm0, %zmm2410515; AVX512DQ-NEXT: vpermt2d %zmm4, %zmm0, %zmm1710516; AVX512DQ-NEXT: vpermt2d %zmm3, %zmm0, %zmm2810517; AVX512DQ-NEXT: vpermt2d %zmm1, %zmm0, %zmm1510518; AVX512DQ-NEXT: movq {{[0-9]+}}(%rsp), %rax10519; AVX512DQ-NEXT: vmovdqa64 %zmm15, 1472(%rax)10520; AVX512DQ-NEXT: vmovdqa64 %zmm11, 1408(%rax)10521; AVX512DQ-NEXT: vmovdqa64 %zmm5, 1344(%rax)10522; AVX512DQ-NEXT: vmovdqa64 %zmm31, 1152(%rax)10523; AVX512DQ-NEXT: vmovdqa64 %zmm28, 1088(%rax)10524; AVX512DQ-NEXT: vmovdqa64 %zmm27, 1024(%rax)10525; AVX512DQ-NEXT: vmovdqa64 %zmm9, 960(%rax)10526; AVX512DQ-NEXT: vmovdqa64 %zmm8, 768(%rax)10527; AVX512DQ-NEXT: vmovdqa64 %zmm17, 704(%rax)10528; AVX512DQ-NEXT: vmovdqa64 %zmm26, 640(%rax)10529; AVX512DQ-NEXT: vmovdqa64 %zmm25, 576(%rax)10530; AVX512DQ-NEXT: vmovdqa64 %zmm10, 384(%rax)10531; AVX512DQ-NEXT: vmovdqa64 %zmm24, 320(%rax)10532; AVX512DQ-NEXT: vmovdqa64 %zmm23, 256(%rax)10533; AVX512DQ-NEXT: vmovdqa64 %zmm20, 192(%rax)10534; AVX512DQ-NEXT: vmovdqa64 %zmm16, (%rax)10535; AVX512DQ-NEXT: vmovdqa64 %zmm21, 1280(%rax)10536; AVX512DQ-NEXT: vmovdqa64 %zmm29, 1216(%rax)10537; AVX512DQ-NEXT: vmovdqa64 %zmm18, 896(%rax)10538; AVX512DQ-NEXT: vmovdqa64 %zmm14, 832(%rax)10539; AVX512DQ-NEXT: vmovdqa64 %zmm22, 512(%rax)10540; AVX512DQ-NEXT: vmovdqa64 %zmm13, 448(%rax)10541; AVX512DQ-NEXT: vmovdqa64 %zmm19, 128(%rax)10542; AVX512DQ-NEXT: vmovdqa64 %zmm6, 64(%rax)10543; AVX512DQ-NEXT: addq $456, %rsp # imm = 0x1C810544; AVX512DQ-NEXT: vzeroupper10545; AVX512DQ-NEXT: retq10546;10547; AVX512DQ-FCP-LABEL: store_i32_stride6_vf64:10548; AVX512DQ-FCP: # %bb.0:10549; AVX512DQ-FCP-NEXT: subq $1160, %rsp # imm = 0x48810550; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm810551; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm510552; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm310553; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm210554; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm010555; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rsi), %zmm2410556; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rsi), %zmm2910557; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rsi), %zmm2310558; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm410559; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm2110560; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]10561; AVX512DQ-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]10562; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm610563; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm20, %zmm610564; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10565; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]10566; AVX512DQ-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]10567; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm110568; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm110569; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm1610570; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]10571; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]10572; AVX512DQ-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]10573; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm110574; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm10, %zmm110575; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm1710576; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm1 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]10577; AVX512DQ-FCP-NEXT: # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]10578; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm3110579; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm2510580; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm1, %zmm3110581; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm810582; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]10583; AVX512DQ-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]10584; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm110585; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm11, %zmm110586; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm2710587; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]10588; AVX512DQ-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]10589; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm110590; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm12, %zmm110591; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10592; AVX512DQ-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm30 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]10593; AVX512DQ-FCP-NEXT: # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]10594; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm30, %zmm2510595; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm010596; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm7, %zmm010597; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10598; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm010599; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm10, %zmm010600; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10601; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm010602; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm8, %zmm010603; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10604; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm010605; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm11, %zmm010606; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10607; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm010608; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm12, %zmm010609; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10610; AVX512DQ-FCP-NEXT: vpermt2d %zmm24, %zmm30, %zmm510611; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10612; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm010613; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm110614; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm7, %zmm110615; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10616; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm110617; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm10, %zmm110618; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10619; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm110620; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm8, %zmm110621; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10622; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm2610623; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm11, %zmm2610624; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, %zmm2810625; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm12, %zmm2810626; AVX512DQ-FCP-NEXT: vpermt2d %zmm29, %zmm30, %zmm010627; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10628; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm1910629; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm1910630; AVX512DQ-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm710631; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10632; AVX512DQ-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1010633; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10634; AVX512DQ-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm810635; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10636; AVX512DQ-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1110637; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10638; AVX512DQ-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1210639; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10640; AVX512DQ-FCP-NEXT: vpermt2d %zmm23, %zmm30, %zmm210641; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10642; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]10643; AVX512DQ-FCP-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]10644; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm510645; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm2310646; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm29, %zmm2310647; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm4 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]10648; AVX512DQ-FCP-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3]10649; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm1810650; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm4, %zmm1810651; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]10652; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm710653; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm8, %zmm710654; AVX512DQ-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]10655; AVX512DQ-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]10656; AVX512DQ-FCP-NEXT: vpermt2d %zmm21, %zmm2, %zmm510657; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdx), %zmm2110658; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rcx), %zmm010659; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm2210660; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm2210661; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm1410662; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm2410663; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1410664; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm3010665; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm3010666; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm1010667; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1010668; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, %zmm610669; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm610670; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2110671; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdx), %zmm1310672; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rcx), %zmm010673; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm1510674; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm1510675; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm1210676; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1210677; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm310678; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm310679; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm1110680; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1110681; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm910682; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm910683; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1310684; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdx), %zmm110685; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rcx), %zmm010686; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2010687; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2410688; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2910689; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm410690; AVX512DQ-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm810691; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm110692; AVX512DQ-FCP-NEXT: movb $-110, %al10693; AVX512DQ-FCP-NEXT: kmovw %eax, %k210694; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10695; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k2}10696; AVX512DQ-FCP-NEXT: movb $36, %al10697; AVX512DQ-FCP-NEXT: kmovw %eax, %k110698; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, %zmm17 {%k1}10699; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm31, %zmm23 {%k1}10700; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, %zmm27 {%k2}10701; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload10702; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm19 {%k1}10703; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm5 {%k1}10704; AVX512DQ-FCP-NEXT: vmovdqa64 (%r8), %zmm010705; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]10706; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1610707; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm16, (%rsp) # 64-byte Spill10708; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]10709; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1710710; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10711; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm18 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]10712; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2310713; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm25 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]10714; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2710715; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10716; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]10717; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1910718; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10719; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm31 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]10720; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm510721; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload10722; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm27 {%k2}10723; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload10724; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm22 {%k1}10725; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10726; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}10727; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload10728; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm16 {%k2}10729; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload10730; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm10 {%k1}10731; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10732; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}10733; AVX512DQ-FCP-NEXT: vmovdqa64 64(%r8), %zmm010734; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2710735; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm2210736; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm3010737; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm1610738; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, %zmm1910739; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1010740; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, %zmm1410741; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm1710742; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm2110743; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload10744; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, %zmm16 {%k2}10745; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload10746; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, %zmm15 {%k1}10747; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10748; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}10749; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm26 {%k2}10750; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm28 {%k1}10751; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10752; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}10753; AVX512DQ-FCP-NEXT: vmovdqa64 128(%r8), %zmm010754; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1610755; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1510756; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm310757; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2610758; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm2810759; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm1310760; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10761; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm6 {%k2}10762; AVX512DQ-FCP-NEXT: vmovdqa64 192(%r8), %zmm010763; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm610764; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm910765; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload10766; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, %zmm2 {%k1}10767; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm210768; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm1010769; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload10770; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm29 {%k1}10771; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2910772; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10773; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k2}10774; AVX512DQ-FCP-NEXT: vmovdqa64 (%r9), %zmm210775; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm610776; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm1210777; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]10778; AVX512DQ-FCP-NEXT: vmovdqu64 (%rsp), %zmm18 # 64-byte Reload10779; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1810780; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload10781; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm6 {%k1}10782; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]10783; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload10784; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2010785; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm610786; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm1410787; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]10788; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2310789; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload10790; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm1 {%k1}10791; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]10792; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload10793; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2410794; AVX512DQ-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm110795; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]10796; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload10797; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2510798; AVX512DQ-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]10799; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm510800; AVX512DQ-FCP-NEXT: vmovdqa64 64(%r9), %zmm210801; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm2710802; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2210803; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm3010804; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1910805; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1710806; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm2110807; AVX512DQ-FCP-NEXT: vmovdqa64 128(%r9), %zmm210808; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1610809; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1510810; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm310811; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2610812; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2810813; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm1310814; AVX512DQ-FCP-NEXT: vmovdqa64 192(%r9), %zmm210815; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm910816; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1010817; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2910818; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1210819; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1410820; AVX512DQ-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm110821; AVX512DQ-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax10822; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 1472(%rax)10823; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, 1408(%rax)10824; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, 1344(%rax)10825; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm29, 1280(%rax)10826; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 1216(%rax)10827; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, 1152(%rax)10828; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, 1088(%rax)10829; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm28, 1024(%rax)10830; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, 960(%rax)10831; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 896(%rax)10832; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 832(%rax)10833; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, 768(%rax)10834; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, 704(%rax)10835; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, 640(%rax)10836; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, 576(%rax)10837; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm30, 512(%rax)10838; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, 448(%rax)10839; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, 384(%rax)10840; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)10841; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, 256(%rax)10842; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, 192(%rax)10843; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, 128(%rax)10844; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, 64(%rax)10845; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, (%rax)10846; AVX512DQ-FCP-NEXT: addq $1160, %rsp # imm = 0x48810847; AVX512DQ-FCP-NEXT: vzeroupper10848; AVX512DQ-FCP-NEXT: retq10849;10850; AVX512BW-LABEL: store_i32_stride6_vf64:10851; AVX512BW: # %bb.0:10852; AVX512BW-NEXT: subq $456, %rsp # imm = 0x1C810853; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm910854; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm3010855; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm1110856; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm1010857; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm810858; AVX512BW-NEXT: vmovdqa64 128(%rsi), %zmm410859; AVX512BW-NEXT: vmovdqa64 192(%rdx), %zmm1510860; AVX512BW-NEXT: vmovdqa64 128(%rdx), %zmm2810861; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm1710862; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm2410863; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm2210864; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm1810865; AVX512BW-NEXT: vmovdqa64 128(%rcx), %zmm1610866; AVX512BW-NEXT: vmovdqa64 192(%rcx), %zmm1310867; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]10868; AVX512BW-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]10869; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm010870; AVX512BW-NEXT: vpermt2d %zmm10, %zmm29, %zmm010871; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm310872; AVX512BW-NEXT: vmovdqa (%rdx), %ymm1410873; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]10874; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]10875; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm2010876; AVX512BW-NEXT: vpermt2d %zmm22, %zmm0, %zmm2010877; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]10878; AVX512BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]10879; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm2310880; AVX512BW-NEXT: vpermt2d %zmm22, %zmm6, %zmm2310881; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]10882; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm510883; AVX512BW-NEXT: vpermt2d %zmm22, %zmm2, %zmm510884; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10885; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm2510886; AVX512BW-NEXT: vpermt2d %zmm18, %zmm0, %zmm2510887; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm2610888; AVX512BW-NEXT: vpermt2d %zmm18, %zmm6, %zmm2610889; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm510890; AVX512BW-NEXT: vpermt2d %zmm18, %zmm2, %zmm510891; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10892; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm510893; AVX512BW-NEXT: vpermt2d %zmm16, %zmm0, %zmm510894; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10895; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm510896; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm2710897; AVX512BW-NEXT: vpermt2d %zmm16, %zmm6, %zmm2710898; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm010899; AVX512BW-NEXT: vpermt2d %zmm16, %zmm2, %zmm010900; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10901; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]10902; AVX512BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]10903; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm1910904; AVX512BW-NEXT: vpermt2d %zmm22, %zmm21, %zmm1910905; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]10906; AVX512BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]10907; AVX512BW-NEXT: vpermt2d %zmm22, %zmm0, %zmm2410908; AVX512BW-NEXT: vmovdqa64 %zmm17, %zmm2210909; AVX512BW-NEXT: vpermt2d %zmm18, %zmm21, %zmm2210910; AVX512BW-NEXT: vpermt2d %zmm18, %zmm0, %zmm1710911; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm1810912; AVX512BW-NEXT: vpermt2d %zmm16, %zmm21, %zmm1810913; AVX512BW-NEXT: vpermt2d %zmm16, %zmm0, %zmm2810914; AVX512BW-NEXT: vmovdqa 64(%rdx), %ymm110915; AVX512BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm510916; AVX512BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10917; AVX512BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm610918; AVX512BW-NEXT: vmovdqu64 %zmm6, (%rsp) # 64-byte Spill10919; AVX512BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm210920; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10921; AVX512BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm2110922; AVX512BW-NEXT: vpermt2d %zmm13, %zmm0, %zmm1510923; AVX512BW-NEXT: vmovdqa 128(%rdx), %ymm010924; AVX512BW-NEXT: vpmovsxbd {{.*#+}} ymm2 = [3,11,0,8,7,15,4,12]10925; AVX512BW-NEXT: vpermt2d (%rcx), %ymm2, %ymm1410926; AVX512BW-NEXT: movb $36, %al10927; AVX512BW-NEXT: kmovd %eax, %k110928; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm14[0,1,0,1,2,3,6,7]10929; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm1310930; AVX512BW-NEXT: vpermt2d %zmm8, %zmm29, %zmm1310931; AVX512BW-NEXT: vpermt2d 64(%rcx), %ymm2, %ymm110932; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm13 {%k1} = zmm1[0,1,0,1,2,3,6,7]10933; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm1410934; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm110935; AVX512BW-NEXT: vpermt2d %zmm4, %zmm29, %zmm1410936; AVX512BW-NEXT: vpermt2d 128(%rcx), %ymm2, %ymm010937; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm0[0,1,0,1,2,3,6,7]10938; AVX512BW-NEXT: vmovdqa 192(%rdx), %ymm010939; AVX512BW-NEXT: vpermt2d 192(%rcx), %ymm2, %ymm010940; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm1210941; AVX512BW-NEXT: vmovdqa64 192(%rsi), %zmm710942; AVX512BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm2910943; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm29 {%k1} = zmm0[0,1,0,1,2,3,6,7]10944; AVX512BW-NEXT: vmovdqa64 (%r8), %zmm410945; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]10946; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm310947; AVX512BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10948; AVX512BW-NEXT: vmovdqa64 64(%r8), %zmm310949; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1310950; AVX512BW-NEXT: vmovdqa64 128(%r8), %zmm210951; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1410952; AVX512BW-NEXT: vmovdqa64 192(%r8), %zmm610953; AVX512BW-NEXT: vpermt2d %zmm6, %zmm0, %zmm2910954; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm1610955; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm31 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]10956; AVX512BW-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3]10957; AVX512BW-NEXT: vpermt2d %zmm10, %zmm31, %zmm1610958; AVX512BW-NEXT: movb $-110, %al10959; AVX512BW-NEXT: kmovd %eax, %k210960; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm16 {%k2}10961; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm2010962; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]10963; AVX512BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]10964; AVX512BW-NEXT: vpermt2d %zmm10, %zmm5, %zmm2010965; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm20 {%k2}10966; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm2310967; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm11[2],zmm10[2],zmm11[3],zmm10[3],zmm11[6],zmm10[6],zmm11[7],zmm10[7],zmm11[10],zmm10[10],zmm11[11],zmm10[11],zmm11[14],zmm10[14],zmm11[15],zmm10[15]10968; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill10969; AVX512BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]10970; AVX512BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]10971; AVX512BW-NEXT: vpermt2d %zmm10, %zmm11, %zmm2310972; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10973; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}10974; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm1010975; AVX512BW-NEXT: vpermt2d %zmm8, %zmm31, %zmm1010976; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm10 {%k2}10977; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm2510978; AVX512BW-NEXT: vpermt2d %zmm8, %zmm5, %zmm2510979; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm25 {%k2}10980; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm2610981; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm30 = zmm30[2],zmm8[2],zmm30[3],zmm8[3],zmm30[6],zmm8[6],zmm30[7],zmm8[7],zmm30[10],zmm8[10],zmm30[11],zmm8[11],zmm30[14],zmm8[14],zmm30[15],zmm8[15]10982; AVX512BW-NEXT: vpermt2d %zmm8, %zmm11, %zmm2610983; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload10984; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}10985; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm010986; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm810987; AVX512BW-NEXT: vpermt2d %zmm1, %zmm31, %zmm810988; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload10989; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm8 {%k2}10990; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm910991; AVX512BW-NEXT: vpermt2d %zmm1, %zmm5, %zmm910992; AVX512BW-NEXT: vmovdqa64 %zmm27, %zmm9 {%k2}10993; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm2710994; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm0[2],zmm1[2],zmm0[3],zmm1[3],zmm0[6],zmm1[6],zmm0[7],zmm1[7],zmm0[10],zmm1[10],zmm0[11],zmm1[11],zmm0[14],zmm1[14],zmm0[15],zmm1[15]10995; AVX512BW-NEXT: vpermt2d %zmm1, %zmm11, %zmm2710996; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload10997; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm27 {%k1}10998; AVX512BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm3110999; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11000; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm31 {%k2}11001; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]11002; AVX512BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm1611003; AVX512BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm1011004; AVX512BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm811005; AVX512BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm3111006; AVX512BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm511007; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload11008; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm5 {%k2}11009; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]11010; AVX512BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2011011; AVX512BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2511012; AVX512BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm911013; AVX512BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm511014; AVX512BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm1111015; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11016; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm11 {%k1}11017; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]11018; AVX512BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2311019; AVX512BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2611020; AVX512BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm2711021; AVX512BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm1111022; AVX512BW-NEXT: vmovdqa (%rdi), %ymm111023; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11024; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm1[2,3,2,3,2,3,2,3]11025; AVX512BW-NEXT: vmovdqa 64(%rdi), %ymm111026; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11027; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm22 {%k1} = zmm1[2,3,2,3,2,3,2,3]11028; AVX512BW-NEXT: vmovdqa 128(%rdi), %ymm111029; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11030; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm1[2,3,2,3,2,3,2,3]11031; AVX512BW-NEXT: vmovdqa 192(%rdi), %ymm111032; AVX512BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11033; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm1[2,3,2,3,2,3,2,3]11034; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]11035; AVX512BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm1911036; AVX512BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2211037; AVX512BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm1811038; AVX512BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm2111039; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11040; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm1[6,7,6,7,6,7,6,7]11041; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]11042; AVX512BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2411043; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm30[6,7,6,7,6,7,6,7]11044; AVX512BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm1711045; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm28 {%k1} = zmm0[6,7,6,7,6,7,6,7]11046; AVX512BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm2811047; AVX512BW-NEXT: vmovdqa64 (%r9), %zmm211048; AVX512BW-NEXT: vpunpckhdq {{.*#+}} zmm3 = zmm12[2],zmm7[2],zmm12[3],zmm7[3],zmm12[6],zmm7[6],zmm12[7],zmm7[7],zmm12[10],zmm7[10],zmm12[11],zmm7[11],zmm12[14],zmm7[14],zmm12[15],zmm7[15]11049; AVX512BW-NEXT: vmovdqa64 64(%r9), %zmm411050; AVX512BW-NEXT: vshufi64x2 {{.*#+}} zmm15 {%k1} = zmm3[6,7,6,7,6,7,6,7]11051; AVX512BW-NEXT: vmovdqa64 128(%r9), %zmm311052; AVX512BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm1511053; AVX512BW-NEXT: vmovdqa64 192(%r9), %zmm111054; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]11055; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11056; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm611057; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1311058; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1411059; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm2911060; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]11061; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1611062; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1011063; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm811064; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm3111065; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]11066; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2011067; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2511068; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm911069; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm511070; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]11071; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2311072; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2611073; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm2711074; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm1111075; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]11076; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1911077; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2211078; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1811079; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm2111080; AVX512BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]11081; AVX512BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2411082; AVX512BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1711083; AVX512BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm2811084; AVX512BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm1511085; AVX512BW-NEXT: movq {{[0-9]+}}(%rsp), %rax11086; AVX512BW-NEXT: vmovdqa64 %zmm15, 1472(%rax)11087; AVX512BW-NEXT: vmovdqa64 %zmm11, 1408(%rax)11088; AVX512BW-NEXT: vmovdqa64 %zmm5, 1344(%rax)11089; AVX512BW-NEXT: vmovdqa64 %zmm31, 1152(%rax)11090; AVX512BW-NEXT: vmovdqa64 %zmm28, 1088(%rax)11091; AVX512BW-NEXT: vmovdqa64 %zmm27, 1024(%rax)11092; AVX512BW-NEXT: vmovdqa64 %zmm9, 960(%rax)11093; AVX512BW-NEXT: vmovdqa64 %zmm8, 768(%rax)11094; AVX512BW-NEXT: vmovdqa64 %zmm17, 704(%rax)11095; AVX512BW-NEXT: vmovdqa64 %zmm26, 640(%rax)11096; AVX512BW-NEXT: vmovdqa64 %zmm25, 576(%rax)11097; AVX512BW-NEXT: vmovdqa64 %zmm10, 384(%rax)11098; AVX512BW-NEXT: vmovdqa64 %zmm24, 320(%rax)11099; AVX512BW-NEXT: vmovdqa64 %zmm23, 256(%rax)11100; AVX512BW-NEXT: vmovdqa64 %zmm20, 192(%rax)11101; AVX512BW-NEXT: vmovdqa64 %zmm16, (%rax)11102; AVX512BW-NEXT: vmovdqa64 %zmm21, 1280(%rax)11103; AVX512BW-NEXT: vmovdqa64 %zmm29, 1216(%rax)11104; AVX512BW-NEXT: vmovdqa64 %zmm18, 896(%rax)11105; AVX512BW-NEXT: vmovdqa64 %zmm14, 832(%rax)11106; AVX512BW-NEXT: vmovdqa64 %zmm22, 512(%rax)11107; AVX512BW-NEXT: vmovdqa64 %zmm13, 448(%rax)11108; AVX512BW-NEXT: vmovdqa64 %zmm19, 128(%rax)11109; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%rax)11110; AVX512BW-NEXT: addq $456, %rsp # imm = 0x1C811111; AVX512BW-NEXT: vzeroupper11112; AVX512BW-NEXT: retq11113;11114; AVX512BW-FCP-LABEL: store_i32_stride6_vf64:11115; AVX512BW-FCP: # %bb.0:11116; AVX512BW-FCP-NEXT: subq $1160, %rsp # imm = 0x48811117; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm811118; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm511119; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm311120; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm211121; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm011122; AVX512BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm2411123; AVX512BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm2911124; AVX512BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm2311125; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm411126; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm2111127; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]11128; AVX512BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]11129; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm611130; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm20, %zmm611131; AVX512BW-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11132; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]11133; AVX512BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]11134; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm111135; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm111136; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm1611137; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]11138; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]11139; AVX512BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]11140; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm111141; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm10, %zmm111142; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm1711143; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm1 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]11144; AVX512BW-FCP-NEXT: # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]11145; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm3111146; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm2511147; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm1, %zmm3111148; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm811149; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]11150; AVX512BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]11151; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm111152; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm11, %zmm111153; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2711154; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]11155; AVX512BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]11156; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm111157; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm12, %zmm111158; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11159; AVX512BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm30 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]11160; AVX512BW-FCP-NEXT: # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]11161; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm30, %zmm2511162; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011163; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm7, %zmm011164; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11165; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011166; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm10, %zmm011167; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11168; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011169; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm8, %zmm011170; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11171; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011172; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm11, %zmm011173; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11174; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011175; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm12, %zmm011176; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11177; AVX512BW-FCP-NEXT: vpermt2d %zmm24, %zmm30, %zmm511178; AVX512BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11179; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm011180; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111181; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm7, %zmm111182; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11183; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111184; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm10, %zmm111185; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11186; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111187; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm8, %zmm111188; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11189; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm2611190; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm11, %zmm2611191; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm2811192; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm12, %zmm2811193; AVX512BW-FCP-NEXT: vpermt2d %zmm29, %zmm30, %zmm011194; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11195; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm1911196; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm1911197; AVX512BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm711198; AVX512BW-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11199; AVX512BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1011200; AVX512BW-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11201; AVX512BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm811202; AVX512BW-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11203; AVX512BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1111204; AVX512BW-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11205; AVX512BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1211206; AVX512BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11207; AVX512BW-FCP-NEXT: vpermt2d %zmm23, %zmm30, %zmm211208; AVX512BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11209; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]11210; AVX512BW-FCP-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]11211; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm511212; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm2311213; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm29, %zmm2311214; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm4 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]11215; AVX512BW-FCP-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3]11216; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm1811217; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm4, %zmm1811218; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]11219; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm711220; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm8, %zmm711221; AVX512BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]11222; AVX512BW-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]11223; AVX512BW-FCP-NEXT: vpermt2d %zmm21, %zmm2, %zmm511224; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm2111225; AVX512BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm011226; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm2211227; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm2211228; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm1411229; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm2411230; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1411231; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm3011232; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm3011233; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm1011234; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1011235; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm611236; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm611237; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2111238; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm1311239; AVX512BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm011240; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1511241; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm1511242; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1211243; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1211244; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm311245; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm311246; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1111247; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1111248; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm911249; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm911250; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1311251; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm111252; AVX512BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm011253; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2011254; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2411255; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2911256; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm411257; AVX512BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm811258; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm111259; AVX512BW-FCP-NEXT: movb $-110, %al11260; AVX512BW-FCP-NEXT: kmovd %eax, %k211261; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11262; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k2}11263; AVX512BW-FCP-NEXT: movb $36, %al11264; AVX512BW-FCP-NEXT: kmovd %eax, %k111265; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm17 {%k1}11266; AVX512BW-FCP-NEXT: vmovdqa64 %zmm31, %zmm23 {%k1}11267; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm27 {%k2}11268; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload11269; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm19 {%k1}11270; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm5 {%k1}11271; AVX512BW-FCP-NEXT: vmovdqa64 (%r8), %zmm011272; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]11273; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1611274; AVX512BW-FCP-NEXT: vmovdqu64 %zmm16, (%rsp) # 64-byte Spill11275; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]11276; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1711277; AVX512BW-FCP-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11278; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm18 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]11279; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2311280; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm25 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]11281; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2711282; AVX512BW-FCP-NEXT: vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11283; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]11284; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1911285; AVX512BW-FCP-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11286; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm31 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]11287; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm511288; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload11289; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm27 {%k2}11290; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload11291; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm22 {%k1}11292; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11293; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}11294; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload11295; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm16 {%k2}11296; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload11297; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm10 {%k1}11298; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11299; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}11300; AVX512BW-FCP-NEXT: vmovdqa64 64(%r8), %zmm011301; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2711302; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm2211303; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm3011304; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm1611305; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm1911306; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1011307; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm1411308; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm1711309; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm2111310; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload11311; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, %zmm16 {%k2}11312; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload11313; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm15 {%k1}11314; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11315; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}11316; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm26 {%k2}11317; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm28 {%k1}11318; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11319; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}11320; AVX512BW-FCP-NEXT: vmovdqa64 128(%r8), %zmm011321; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1611322; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1511323; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm311324; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2611325; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm2811326; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm1311327; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11328; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm6 {%k2}11329; AVX512BW-FCP-NEXT: vmovdqa64 192(%r8), %zmm011330; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm611331; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm911332; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload11333; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm2 {%k1}11334; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm211335; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm1011336; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload11337; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm29 {%k1}11338; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2911339; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11340; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k2}11341; AVX512BW-FCP-NEXT: vmovdqa64 (%r9), %zmm211342; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm611343; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm1211344; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]11345; AVX512BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm18 # 64-byte Reload11346; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1811347; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11348; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm6 {%k1}11349; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]11350; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload11351; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2011352; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm611353; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm1411354; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]11355; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2311356; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload11357; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm1 {%k1}11358; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]11359; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload11360; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2411361; AVX512BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm111362; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]11363; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload11364; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2511365; AVX512BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]11366; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm511367; AVX512BW-FCP-NEXT: vmovdqa64 64(%r9), %zmm211368; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm2711369; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2211370; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm3011371; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1911372; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1711373; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm2111374; AVX512BW-FCP-NEXT: vmovdqa64 128(%r9), %zmm211375; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1611376; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1511377; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm311378; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2611379; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2811380; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm1311381; AVX512BW-FCP-NEXT: vmovdqa64 192(%r9), %zmm211382; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm911383; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1011384; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2911385; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1211386; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1411387; AVX512BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm111388; AVX512BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax11389; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 1472(%rax)11390; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, 1408(%rax)11391; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, 1344(%rax)11392; AVX512BW-FCP-NEXT: vmovdqa64 %zmm29, 1280(%rax)11393; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 1216(%rax)11394; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, 1152(%rax)11395; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, 1088(%rax)11396; AVX512BW-FCP-NEXT: vmovdqa64 %zmm28, 1024(%rax)11397; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, 960(%rax)11398; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 896(%rax)11399; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 832(%rax)11400; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, 768(%rax)11401; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, 704(%rax)11402; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, 640(%rax)11403; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, 576(%rax)11404; AVX512BW-FCP-NEXT: vmovdqa64 %zmm30, 512(%rax)11405; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, 448(%rax)11406; AVX512BW-FCP-NEXT: vmovdqa64 %zmm27, 384(%rax)11407; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)11408; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, 256(%rax)11409; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, 192(%rax)11410; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, 128(%rax)11411; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, 64(%rax)11412; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, (%rax)11413; AVX512BW-FCP-NEXT: addq $1160, %rsp # imm = 0x48811414; AVX512BW-FCP-NEXT: vzeroupper11415; AVX512BW-FCP-NEXT: retq11416;11417; AVX512DQ-BW-LABEL: store_i32_stride6_vf64:11418; AVX512DQ-BW: # %bb.0:11419; AVX512DQ-BW-NEXT: subq $456, %rsp # imm = 0x1C811420; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm911421; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm3011422; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm1111423; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm1011424; AVX512DQ-BW-NEXT: vmovdqa64 64(%rsi), %zmm811425; AVX512DQ-BW-NEXT: vmovdqa64 128(%rsi), %zmm411426; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdx), %zmm1511427; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdx), %zmm2811428; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %zmm1711429; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm2411430; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm2211431; AVX512DQ-BW-NEXT: vmovdqa64 64(%rcx), %zmm1811432; AVX512DQ-BW-NEXT: vmovdqa64 128(%rcx), %zmm1611433; AVX512DQ-BW-NEXT: vmovdqa64 192(%rcx), %zmm1311434; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]11435; AVX512DQ-BW-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]11436; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm011437; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm29, %zmm011438; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm311439; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %ymm1411440; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]11441; AVX512DQ-BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]11442; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, %zmm2011443; AVX512DQ-BW-NEXT: vpermt2d %zmm22, %zmm0, %zmm2011444; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm6 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]11445; AVX512DQ-BW-NEXT: # zmm6 = mem[0,1,2,3,0,1,2,3]11446; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, %zmm2311447; AVX512DQ-BW-NEXT: vpermt2d %zmm22, %zmm6, %zmm2311448; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm2 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]11449; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, %zmm511450; AVX512DQ-BW-NEXT: vpermt2d %zmm22, %zmm2, %zmm511451; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11452; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm2511453; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm0, %zmm2511454; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm2611455; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm6, %zmm2611456; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm511457; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm2, %zmm511458; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11459; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, %zmm511460; AVX512DQ-BW-NEXT: vpermt2d %zmm16, %zmm0, %zmm511461; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11462; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm511463; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, %zmm2711464; AVX512DQ-BW-NEXT: vpermt2d %zmm16, %zmm6, %zmm2711465; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, %zmm011466; AVX512DQ-BW-NEXT: vpermt2d %zmm16, %zmm2, %zmm011467; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11468; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm21 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]11469; AVX512DQ-BW-NEXT: # zmm21 = mem[0,1,2,3,0,1,2,3]11470; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, %zmm1911471; AVX512DQ-BW-NEXT: vpermt2d %zmm22, %zmm21, %zmm1911472; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]11473; AVX512DQ-BW-NEXT: # zmm0 = mem[0,1,2,3,0,1,2,3]11474; AVX512DQ-BW-NEXT: vpermt2d %zmm22, %zmm0, %zmm2411475; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, %zmm2211476; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm21, %zmm2211477; AVX512DQ-BW-NEXT: vpermt2d %zmm18, %zmm0, %zmm1711478; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, %zmm1811479; AVX512DQ-BW-NEXT: vpermt2d %zmm16, %zmm21, %zmm1811480; AVX512DQ-BW-NEXT: vpermt2d %zmm16, %zmm0, %zmm2811481; AVX512DQ-BW-NEXT: vmovdqa 64(%rdx), %ymm111482; AVX512DQ-BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm511483; AVX512DQ-BW-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11484; AVX512DQ-BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm611485; AVX512DQ-BW-NEXT: vmovdqu64 %zmm6, (%rsp) # 64-byte Spill11486; AVX512DQ-BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm211487; AVX512DQ-BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11488; AVX512DQ-BW-NEXT: vpermi2d %zmm13, %zmm15, %zmm2111489; AVX512DQ-BW-NEXT: vpermt2d %zmm13, %zmm0, %zmm1511490; AVX512DQ-BW-NEXT: vmovdqa 128(%rdx), %ymm011491; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} ymm2 = [3,11,0,8,7,15,4,12]11492; AVX512DQ-BW-NEXT: vpermt2d (%rcx), %ymm2, %ymm1411493; AVX512DQ-BW-NEXT: movb $36, %al11494; AVX512DQ-BW-NEXT: kmovd %eax, %k111495; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm14[0,1,0,1,2,3,6,7]11496; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm1311497; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm29, %zmm1311498; AVX512DQ-BW-NEXT: vpermt2d 64(%rcx), %ymm2, %ymm111499; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm13 {%k1} = zmm1[0,1,0,1,2,3,6,7]11500; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm1411501; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm111502; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm29, %zmm1411503; AVX512DQ-BW-NEXT: vpermt2d 128(%rcx), %ymm2, %ymm011504; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm14 {%k1} = zmm0[0,1,0,1,2,3,6,7]11505; AVX512DQ-BW-NEXT: vmovdqa 192(%rdx), %ymm011506; AVX512DQ-BW-NEXT: vpermt2d 192(%rcx), %ymm2, %ymm011507; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm1211508; AVX512DQ-BW-NEXT: vmovdqa64 192(%rsi), %zmm711509; AVX512DQ-BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm2911510; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm29 {%k1} = zmm0[0,1,0,1,2,3,6,7]11511; AVX512DQ-BW-NEXT: vmovdqa64 (%r8), %zmm411512; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]11513; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm311514; AVX512DQ-BW-NEXT: vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11515; AVX512DQ-BW-NEXT: vmovdqa64 64(%r8), %zmm311516; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1311517; AVX512DQ-BW-NEXT: vmovdqa64 128(%r8), %zmm211518; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1411519; AVX512DQ-BW-NEXT: vmovdqa64 192(%r8), %zmm611520; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm0, %zmm2911521; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm1611522; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm31 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]11523; AVX512DQ-BW-NEXT: # zmm31 = mem[0,1,2,3,0,1,2,3]11524; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm31, %zmm1611525; AVX512DQ-BW-NEXT: movb $-110, %al11526; AVX512DQ-BW-NEXT: kmovd %eax, %k211527; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm16 {%k2}11528; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm2011529; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm5 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]11530; AVX512DQ-BW-NEXT: # zmm5 = mem[0,1,2,3,0,1,2,3]11531; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm5, %zmm2011532; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, %zmm20 {%k2}11533; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm2311534; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm11[2],zmm10[2],zmm11[3],zmm10[3],zmm11[6],zmm10[6],zmm11[7],zmm10[7],zmm11[10],zmm10[10],zmm11[11],zmm10[11],zmm11[14],zmm10[14],zmm11[15],zmm10[15]11535; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11536; AVX512DQ-BW-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]11537; AVX512DQ-BW-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]11538; AVX512DQ-BW-NEXT: vpermt2d %zmm10, %zmm11, %zmm2311539; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11540; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}11541; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm1011542; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm31, %zmm1011543; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm10 {%k2}11544; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm2511545; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm5, %zmm2511546; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm25 {%k2}11547; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm2611548; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm30 = zmm30[2],zmm8[2],zmm30[3],zmm8[3],zmm30[6],zmm8[6],zmm30[7],zmm8[7],zmm30[10],zmm8[10],zmm30[11],zmm8[11],zmm30[14],zmm8[14],zmm30[15],zmm8[15]11549; AVX512DQ-BW-NEXT: vpermt2d %zmm8, %zmm11, %zmm2611550; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11551; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}11552; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm011553; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm811554; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm31, %zmm811555; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload11556; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm8 {%k2}11557; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm911558; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm5, %zmm911559; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, %zmm9 {%k2}11560; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm2711561; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm0 = zmm0[2],zmm1[2],zmm0[3],zmm1[3],zmm0[6],zmm1[6],zmm0[7],zmm1[7],zmm0[10],zmm1[10],zmm0[11],zmm1[11],zmm0[14],zmm1[14],zmm0[15],zmm1[15]11562; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm11, %zmm2711563; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11564; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm27 {%k1}11565; AVX512DQ-BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm3111566; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11567; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm31 {%k2}11568; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]11569; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm1611570; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm1011571; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm811572; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm3111573; AVX512DQ-BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm511574; AVX512DQ-BW-NEXT: vmovdqu64 (%rsp), %zmm1 # 64-byte Reload11575; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm5 {%k2}11576; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]11577; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2011578; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2511579; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm911580; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm511581; AVX512DQ-BW-NEXT: vpermi2d %zmm7, %zmm12, %zmm1111582; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11583; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm11 {%k1}11584; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]11585; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2311586; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2611587; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm2711588; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm1111589; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm111590; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11591; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm19 {%k1} = zmm1[2,3,2,3,2,3,2,3]11592; AVX512DQ-BW-NEXT: vmovdqa 64(%rdi), %ymm111593; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11594; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm22 {%k1} = zmm1[2,3,2,3,2,3,2,3]11595; AVX512DQ-BW-NEXT: vmovdqa 128(%rdi), %ymm111596; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11597; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm18 {%k1} = zmm1[2,3,2,3,2,3,2,3]11598; AVX512DQ-BW-NEXT: vmovdqa 192(%rdi), %ymm111599; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} ymm1 = ymm1[2],mem[2],ymm1[3],mem[3],ymm1[6],mem[6],ymm1[7],mem[7]11600; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm21 {%k1} = zmm1[2,3,2,3,2,3,2,3]11601; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]11602; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm1911603; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm2211604; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm1811605; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm2111606; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload11607; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm24 {%k1} = zmm1[6,7,6,7,6,7,6,7]11608; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm1 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]11609; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm1, %zmm2411610; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm17 {%k1} = zmm30[6,7,6,7,6,7,6,7]11611; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm1, %zmm1711612; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm28 {%k1} = zmm0[6,7,6,7,6,7,6,7]11613; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm1, %zmm2811614; AVX512DQ-BW-NEXT: vmovdqa64 (%r9), %zmm211615; AVX512DQ-BW-NEXT: vpunpckhdq {{.*#+}} zmm3 = zmm12[2],zmm7[2],zmm12[3],zmm7[3],zmm12[6],zmm7[6],zmm12[7],zmm7[7],zmm12[10],zmm7[10],zmm12[11],zmm7[11],zmm12[14],zmm7[14],zmm12[15],zmm7[15]11616; AVX512DQ-BW-NEXT: vmovdqa64 64(%r9), %zmm411617; AVX512DQ-BW-NEXT: vshufi64x2 {{.*#+}} zmm15 {%k1} = zmm3[6,7,6,7,6,7,6,7]11618; AVX512DQ-BW-NEXT: vmovdqa64 128(%r9), %zmm311619; AVX512DQ-BW-NEXT: vpermt2d %zmm6, %zmm1, %zmm1511620; AVX512DQ-BW-NEXT: vmovdqa64 192(%r9), %zmm111621; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]11622; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11623; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm611624; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1311625; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1411626; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm2911627; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]11628; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1611629; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1011630; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm811631; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm3111632; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]11633; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2011634; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2511635; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm911636; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm511637; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]11638; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2311639; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2611640; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm2711641; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm1111642; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]11643; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm1911644; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm2211645; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm1811646; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm2111647; AVX512DQ-BW-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]11648; AVX512DQ-BW-NEXT: vpermt2d %zmm2, %zmm0, %zmm2411649; AVX512DQ-BW-NEXT: vpermt2d %zmm4, %zmm0, %zmm1711650; AVX512DQ-BW-NEXT: vpermt2d %zmm3, %zmm0, %zmm2811651; AVX512DQ-BW-NEXT: vpermt2d %zmm1, %zmm0, %zmm1511652; AVX512DQ-BW-NEXT: movq {{[0-9]+}}(%rsp), %rax11653; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 1472(%rax)11654; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 1408(%rax)11655; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, 1344(%rax)11656; AVX512DQ-BW-NEXT: vmovdqa64 %zmm31, 1152(%rax)11657; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, 1088(%rax)11658; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, 1024(%rax)11659; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, 960(%rax)11660; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, 768(%rax)11661; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 704(%rax)11662; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, 640(%rax)11663; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, 576(%rax)11664; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, 384(%rax)11665; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, 320(%rax)11666; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, 256(%rax)11667; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, 192(%rax)11668; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, (%rax)11669; AVX512DQ-BW-NEXT: vmovdqa64 %zmm21, 1280(%rax)11670; AVX512DQ-BW-NEXT: vmovdqa64 %zmm29, 1216(%rax)11671; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 896(%rax)11672; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, 832(%rax)11673; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, 512(%rax)11674; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, 448(%rax)11675; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, 128(%rax)11676; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, 64(%rax)11677; AVX512DQ-BW-NEXT: addq $456, %rsp # imm = 0x1C811678; AVX512DQ-BW-NEXT: vzeroupper11679; AVX512DQ-BW-NEXT: retq11680;11681; AVX512DQ-BW-FCP-LABEL: store_i32_stride6_vf64:11682; AVX512DQ-BW-FCP: # %bb.0:11683; AVX512DQ-BW-FCP-NEXT: subq $1160, %rsp # imm = 0x48811684; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm811685; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm511686; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm311687; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm211688; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm011689; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm2411690; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm2911691; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm2311692; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm411693; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm2111694; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm20 = [1,17,0,16,0,0,2,18,1,17,0,16,0,0,2,18]11695; AVX512DQ-BW-FCP-NEXT: # zmm20 = mem[0,1,2,3,0,1,2,3]11696; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm611697; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm20, %zmm611698; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11699; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,0,0,2,18,1,17,0,16,0,0,2,18,1,17]11700; AVX512DQ-BW-FCP-NEXT: # zmm7 = mem[0,1,2,3,0,1,2,3]11701; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm111702; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm111703; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm1611704; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm9 = [3,19,0,16,3,19,0,16,7,23,4,20,0,0,0,0]11705; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm10 = [4,20,3,19,0,0,5,21,4,20,3,19,0,0,5,21]11706; AVX512DQ-BW-FCP-NEXT: # zmm10 = mem[0,1,2,3,0,1,2,3]11707; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm111708; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm10, %zmm111709; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm1711710; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm1 = [6,22,7,23,6,22,7,23,6,22,7,23,6,22,7,23]11711; AVX512DQ-BW-FCP-NEXT: # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]11712; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm3111713; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm2511714; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm1, %zmm3111715; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm811716; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm11 = [8,24,0,0,10,26,9,25,8,24,0,0,10,26,9,25]11717; AVX512DQ-BW-FCP-NEXT: # zmm11 = mem[0,1,2,3,0,1,2,3]11718; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm111719; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm11, %zmm111720; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm2711721; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm12 = [12,28,11,27,0,0,13,29,12,28,11,27,0,0,13,29]11722; AVX512DQ-BW-FCP-NEXT: # zmm12 = mem[0,1,2,3,0,1,2,3]11723; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm111724; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm12, %zmm111725; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11726; AVX512DQ-BW-FCP-NEXT: vbroadcasti32x4 {{.*#+}} zmm30 = [14,30,15,31,14,30,15,31,14,30,15,31,14,30,15,31]11727; AVX512DQ-BW-FCP-NEXT: # zmm30 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]11728; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm30, %zmm2511729; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011730; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm7, %zmm011731; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11732; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011733; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm10, %zmm011734; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11735; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011736; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm8, %zmm011737; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11738; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011739; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm11, %zmm011740; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11741; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm011742; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm12, %zmm011743; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11744; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm24, %zmm30, %zmm511745; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11746; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm011747; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111748; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm7, %zmm111749; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11750; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111751; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm10, %zmm111752; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11753; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm111754; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm8, %zmm111755; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11756; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm2611757; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm11, %zmm2611758; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, %zmm2811759; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm12, %zmm2811760; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm29, %zmm30, %zmm011761; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11762; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm1911763; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm9, %zmm1911764; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm711765; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11766; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1011767; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11768; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm811769; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11770; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1111771; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11772; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm23, %zmm2, %zmm1211773; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11774; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm23, %zmm30, %zmm211775; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11776; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm29 = [5,21,0,0,7,23,6,22,5,21,0,0,7,23,6,22]11777; AVX512DQ-BW-FCP-NEXT: # zmm29 = mem[0,1,2,3,0,1,2,3]11778; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm511779; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm2311780; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm29, %zmm2311781; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm4 = [9,25,8,24,0,0,10,26,9,25,8,24,0,0,10,26]11782; AVX512DQ-BW-FCP-NEXT: # zmm4 = mem[0,1,2,3,0,1,2,3]11783; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm1811784; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm4, %zmm1811785; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [3,19,0,16,11,27,8,24,15,31,12,28,15,31,12,28]11786; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm711787; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm8, %zmm711788; AVX512DQ-BW-FCP-NEXT: vbroadcasti64x4 {{.*#+}} zmm2 = [13,29,0,0,15,31,14,30,13,29,0,0,15,31,14,30]11789; AVX512DQ-BW-FCP-NEXT: # zmm2 = mem[0,1,2,3,0,1,2,3]11790; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm21, %zmm2, %zmm511791; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm2111792; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm011793; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm2211794; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm2211795; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm1411796; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm2411797; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1411798; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm3011799; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm3011800; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm1011801; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1011802; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, %zmm611803; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm611804; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2111805; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm1311806; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm011807; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1511808; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm20, %zmm1511809; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1211810; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm9, %zmm1211811; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm311812; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm29, %zmm311813; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm1111814; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm4, %zmm1111815; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm911816; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm8, %zmm911817; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1311818; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm111819; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm011820; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2011821; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2411822; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm2911823; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm411824; AVX512DQ-BW-FCP-NEXT: vpermi2d %zmm0, %zmm1, %zmm811825; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm111826; AVX512DQ-BW-FCP-NEXT: movb $-110, %al11827; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k211828; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11829; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k2}11830; AVX512DQ-BW-FCP-NEXT: movb $36, %al11831; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k111832; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm17 {%k1}11833; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm31, %zmm23 {%k1}11834; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm27 {%k2}11835; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload11836; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm19 {%k1}11837; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm5 {%k1}11838; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r8), %zmm011839; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm2 = [0,1,2,3,16,0,6,7,8,9,17,0,12,13,14,15]11840; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1611841; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm16, (%rsp) # 64-byte Spill11842; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [18,0,2,3,4,5,19,0,8,9,10,11,20,0,14,15]11843; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1711844; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11845; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm18 = [0,1,21,0,4,5,6,7,22,0,10,11,12,13,23,0]11846; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2311847; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm25 = [0,1,2,3,24,0,6,7,8,9,25,0,12,13,14,15]11848; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2711849; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11850; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm17 = [26,0,2,3,4,5,27,0,8,9,10,11,28,0,14,15]11851; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1911852; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill11853; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm31 = [0,1,29,0,4,5,6,7,30,0,10,11,12,13,31,0]11854; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm511855; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload11856; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm27 {%k2}11857; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload11858; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm22 {%k1}11859; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11860; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}11861; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload11862; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm16 {%k2}11863; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload11864; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm10 {%k1}11865; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11866; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}11867; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%r8), %zmm011868; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm2711869; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm2211870; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm3011871; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm1611872; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm1911873; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm17, %zmm1011874; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, %zmm1411875; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm1711876; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm2111877; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload11878; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, %zmm16 {%k2}11879; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload11880; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm15 {%k1}11881; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11882; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}11883; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm26 {%k2}11884; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm28 {%k1}11885; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload11886; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}11887; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%r8), %zmm011888; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm1611889; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm1511890; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm311891; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm2611892; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm2811893; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm1311894; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11895; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm6 {%k2}11896; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%r8), %zmm011897; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm2, %zmm611898; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm911899; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload11900; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm2 {%k1}11901; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm7, %zmm211902; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm1011903; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload11904; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm29 {%k1}11905; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm18, %zmm2911906; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11907; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k2}11908; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%r9), %zmm211909; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm25, %zmm611910; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm1211911; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,16,6,7,8,9,10,17,12,13,14,15]11912; AVX512DQ-BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm18 # 64-byte Reload11913; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1811914; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload11915; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm6 {%k1}11916; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm11 = [0,18,2,3,4,5,6,19,8,9,10,11,12,20,14,15]11917; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload11918; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2011919; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm14, %zmm611920; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm1411921; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm6 = [0,1,2,21,4,5,6,7,8,22,10,11,12,13,14,23]11922; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2311923; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload11924; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm1 {%k1}11925; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm7 = [0,1,2,3,4,24,6,7,8,9,10,25,12,13,14,15]11926; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload11927; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2411928; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm0, %zmm31, %zmm111929; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm0 = [0,26,2,3,4,5,6,27,8,9,10,11,12,28,14,15]11930; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload11931; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2511932; AVX512DQ-BW-FCP-NEXT: vpmovsxbd {{.*#+}} zmm8 = [0,1,2,29,4,5,6,7,8,30,10,11,12,13,14,31]11933; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm511934; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%r9), %zmm211935; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm2711936; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm2211937; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm3011938; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1911939; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1711940; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm2111941; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%r9), %zmm211942; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm1611943; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1511944; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm311945; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm2611946; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm2811947; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm1311948; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%r9), %zmm211949; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm4, %zmm911950; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm11, %zmm1011951; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm6, %zmm2911952; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm7, %zmm1211953; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm0, %zmm1411954; AVX512DQ-BW-FCP-NEXT: vpermt2d %zmm2, %zmm8, %zmm111955; AVX512DQ-BW-FCP-NEXT: movq {{[0-9]+}}(%rsp), %rax11956; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 1472(%rax)11957; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, 1408(%rax)11958; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, 1344(%rax)11959; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm29, 1280(%rax)11960; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 1216(%rax)11961; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, 1152(%rax)11962; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, 1088(%rax)11963; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm28, 1024(%rax)11964; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, 960(%rax)11965; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 896(%rax)11966; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 832(%rax)11967; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, 768(%rax)11968; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, 704(%rax)11969; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, 640(%rax)11970; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, 576(%rax)11971; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm30, 512(%rax)11972; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, 448(%rax)11973; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm27, 384(%rax)11974; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, 320(%rax)11975; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, 256(%rax)11976; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, 192(%rax)11977; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, 128(%rax)11978; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, 64(%rax)11979; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, (%rax)11980; AVX512DQ-BW-FCP-NEXT: addq $1160, %rsp # imm = 0x48811981; AVX512DQ-BW-FCP-NEXT: vzeroupper11982; AVX512DQ-BW-FCP-NEXT: retq11983 %in.vec0 = load <64 x i32>, ptr %in.vecptr0, align 6411984 %in.vec1 = load <64 x i32>, ptr %in.vecptr1, align 6411985 %in.vec2 = load <64 x i32>, ptr %in.vecptr2, align 6411986 %in.vec3 = load <64 x i32>, ptr %in.vecptr3, align 6411987 %in.vec4 = load <64 x i32>, ptr %in.vecptr4, align 6411988 %in.vec5 = load <64 x i32>, ptr %in.vecptr5, align 6411989 %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>11990 %2 = shufflevector <64 x i32> %in.vec2, <64 x i32> %in.vec3, <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>11991 %3 = shufflevector <64 x i32> %in.vec4, <64 x i32> %in.vec5, <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>11992 %4 = shufflevector <128 x i32> %1, <128 x i32> %2, <256 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, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>11993 %5 = shufflevector <128 x i32> %3, <128 x i32> poison, <256 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 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, 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>11994 %6 = shufflevector <256 x i32> %4, <256 x i32> %5, <384 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, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 256, i32 257, i32 258, i32 259, i32 260, i32 261, i32 262, i32 263, i32 264, i32 265, i32 266, i32 267, i32 268, i32 269, i32 270, i32 271, i32 272, i32 273, i32 274, i32 275, i32 276, i32 277, i32 278, i32 279, i32 280, i32 281, i32 282, i32 283, i32 284, i32 285, i32 286, i32 287, i32 288, i32 289, i32 290, i32 291, i32 292, i32 293, i32 294, i32 295, i32 296, i32 297, i32 298, i32 299, i32 300, i32 301, i32 302, i32 303, i32 304, i32 305, i32 306, i32 307, i32 308, i32 309, i32 310, i32 311, i32 312, i32 313, i32 314, i32 315, i32 316, i32 317, i32 318, i32 319, i32 320, i32 321, i32 322, i32 323, i32 324, i32 325, i32 326, i32 327, i32 328, i32 329, i32 330, i32 331, i32 332, i32 333, i32 334, i32 335, i32 336, i32 337, i32 338, i32 339, i32 340, i32 341, i32 342, i32 343, i32 344, i32 345, i32 346, i32 347, i32 348, i32 349, i32 350, i32 351, i32 352, i32 353, i32 354, i32 355, i32 356, i32 357, i32 358, i32 359, i32 360, i32 361, i32 362, i32 363, i32 364, i32 365, i32 366, i32 367, i32 368, i32 369, i32 370, i32 371, i32 372, i32 373, i32 374, i32 375, i32 376, i32 377, i32 378, i32 379, i32 380, i32 381, i32 382, i32 383>11995 %interleaved.vec = shufflevector <384 x i32> %6, <384 x i32> poison, <384 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 320, i32 1, i32 65, i32 129, i32 193, i32 257, i32 321, i32 2, i32 66, i32 130, i32 194, i32 258, i32 322, i32 3, i32 67, i32 131, i32 195, i32 259, i32 323, i32 4, i32 68, i32 132, i32 196, i32 260, i32 324, i32 5, i32 69, i32 133, i32 197, i32 261, i32 325, i32 6, i32 70, i32 134, i32 198, i32 262, i32 326, i32 7, i32 71, i32 135, i32 199, i32 263, i32 327, i32 8, i32 72, i32 136, i32 200, i32 264, i32 328, i32 9, i32 73, i32 137, i32 201, i32 265, i32 329, i32 10, i32 74, i32 138, i32 202, i32 266, i32 330, i32 11, i32 75, i32 139, i32 203, i32 267, i32 331, i32 12, i32 76, i32 140, i32 204, i32 268, i32 332, i32 13, i32 77, i32 141, i32 205, i32 269, i32 333, i32 14, i32 78, i32 142, i32 206, i32 270, i32 334, i32 15, i32 79, i32 143, i32 207, i32 271, i32 335, i32 16, i32 80, i32 144, i32 208, i32 272, i32 336, i32 17, i32 81, i32 145, i32 209, i32 273, i32 337, i32 18, i32 82, i32 146, i32 210, i32 274, i32 338, i32 19, i32 83, i32 147, i32 211, i32 275, i32 339, i32 20, i32 84, i32 148, i32 212, i32 276, i32 340, i32 21, i32 85, i32 149, i32 213, i32 277, i32 341, i32 22, i32 86, i32 150, i32 214, i32 278, i32 342, i32 23, i32 87, i32 151, i32 215, i32 279, i32 343, i32 24, i32 88, i32 152, i32 216, i32 280, i32 344, i32 25, i32 89, i32 153, i32 217, i32 281, i32 345, i32 26, i32 90, i32 154, i32 218, i32 282, i32 346, i32 27, i32 91, i32 155, i32 219, i32 283, i32 347, i32 28, i32 92, i32 156, i32 220, i32 284, i32 348, i32 29, i32 93, i32 157, i32 221, i32 285, i32 349, i32 30, i32 94, i32 158, i32 222, i32 286, i32 350, i32 31, i32 95, i32 159, i32 223, i32 287, i32 351, i32 32, i32 96, i32 160, i32 224, i32 288, i32 352, i32 33, i32 97, i32 161, i32 225, i32 289, i32 353, i32 34, i32 98, i32 162, i32 226, i32 290, i32 354, i32 35, i32 99, i32 163, i32 227, i32 291, i32 355, i32 36, i32 100, i32 164, i32 228, i32 292, i32 356, i32 37, i32 101, i32 165, i32 229, i32 293, i32 357, i32 38, i32 102, i32 166, i32 230, i32 294, i32 358, i32 39, i32 103, i32 167, i32 231, i32 295, i32 359, i32 40, i32 104, i32 168, i32 232, i32 296, i32 360, i32 41, i32 105, i32 169, i32 233, i32 297, i32 361, i32 42, i32 106, i32 170, i32 234, i32 298, i32 362, i32 43, i32 107, i32 171, i32 235, i32 299, i32 363, i32 44, i32 108, i32 172, i32 236, i32 300, i32 364, i32 45, i32 109, i32 173, i32 237, i32 301, i32 365, i32 46, i32 110, i32 174, i32 238, i32 302, i32 366, i32 47, i32 111, i32 175, i32 239, i32 303, i32 367, i32 48, i32 112, i32 176, i32 240, i32 304, i32 368, i32 49, i32 113, i32 177, i32 241, i32 305, i32 369, i32 50, i32 114, i32 178, i32 242, i32 306, i32 370, i32 51, i32 115, i32 179, i32 243, i32 307, i32 371, i32 52, i32 116, i32 180, i32 244, i32 308, i32 372, i32 53, i32 117, i32 181, i32 245, i32 309, i32 373, i32 54, i32 118, i32 182, i32 246, i32 310, i32 374, i32 55, i32 119, i32 183, i32 247, i32 311, i32 375, i32 56, i32 120, i32 184, i32 248, i32 312, i32 376, i32 57, i32 121, i32 185, i32 249, i32 313, i32 377, i32 58, i32 122, i32 186, i32 250, i32 314, i32 378, i32 59, i32 123, i32 187, i32 251, i32 315, i32 379, i32 60, i32 124, i32 188, i32 252, i32 316, i32 380, i32 61, i32 125, i32 189, i32 253, i32 317, i32 381, i32 62, i32 126, i32 190, i32 254, i32 318, i32 382, i32 63, i32 127, i32 191, i32 255, i32 319, i32 383>11996 store <384 x i32> %interleaved.vec, ptr %out.vec, align 6411997 ret void11998}11999