9099 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_i64_stride4_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {19; SSE-LABEL: store_i64_stride4_vf2:20; SSE: # %bb.0:21; SSE-NEXT: movaps (%rdi), %xmm022; SSE-NEXT: movaps (%rsi), %xmm123; SSE-NEXT: movaps (%rdx), %xmm224; SSE-NEXT: movaps (%rcx), %xmm325; SSE-NEXT: movaps %xmm0, %xmm426; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm1[0]27; SSE-NEXT: movaps %xmm2, %xmm528; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]29; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]30; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]31; SSE-NEXT: movaps %xmm0, 32(%r8)32; SSE-NEXT: movaps %xmm2, 48(%r8)33; SSE-NEXT: movaps %xmm5, 16(%r8)34; SSE-NEXT: movaps %xmm4, (%r8)35; SSE-NEXT: retq36;37; AVX-LABEL: store_i64_stride4_vf2:38; AVX: # %bb.0:39; AVX-NEXT: vmovaps (%rdi), %xmm040; AVX-NEXT: vmovaps (%rsi), %xmm141; AVX-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm142; AVX-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm043; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]44; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]45; AVX-NEXT: vmovaps %ymm0, 32(%r8)46; AVX-NEXT: vmovaps %ymm2, (%r8)47; AVX-NEXT: vzeroupper48; AVX-NEXT: retq49;50; AVX2-LABEL: store_i64_stride4_vf2:51; AVX2: # %bb.0:52; AVX2-NEXT: vmovaps (%rdi), %xmm053; AVX2-NEXT: vmovaps (%rdx), %xmm154; AVX2-NEXT: vinsertf128 $1, (%rsi), %ymm0, %ymm055; AVX2-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm156; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]57; AVX2-NEXT: vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]58; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]59; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]60; AVX2-NEXT: vmovaps %ymm0, 32(%r8)61; AVX2-NEXT: vmovaps %ymm2, (%r8)62; AVX2-NEXT: vzeroupper63; AVX2-NEXT: retq64;65; AVX2-FP-LABEL: store_i64_stride4_vf2:66; AVX2-FP: # %bb.0:67; AVX2-FP-NEXT: vmovaps (%rdi), %xmm068; AVX2-FP-NEXT: vmovaps (%rdx), %xmm169; AVX2-FP-NEXT: vinsertf128 $1, (%rsi), %ymm0, %ymm070; AVX2-FP-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm171; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]72; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]73; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]74; AVX2-FP-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]75; AVX2-FP-NEXT: vmovaps %ymm0, 32(%r8)76; AVX2-FP-NEXT: vmovaps %ymm2, (%r8)77; AVX2-FP-NEXT: vzeroupper78; AVX2-FP-NEXT: retq79;80; AVX2-FCP-LABEL: store_i64_stride4_vf2:81; AVX2-FCP: # %bb.0:82; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm083; AVX2-FCP-NEXT: vmovaps (%rdx), %xmm184; AVX2-FCP-NEXT: vinsertf128 $1, (%rsi), %ymm0, %ymm085; AVX2-FCP-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm186; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]87; AVX2-FCP-NEXT: vpermpd {{.*#+}} ymm2 = ymm2[0,2,1,3]88; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]89; AVX2-FCP-NEXT: vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]90; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%r8)91; AVX2-FCP-NEXT: vmovaps %ymm2, (%r8)92; AVX2-FCP-NEXT: vzeroupper93; AVX2-FCP-NEXT: retq94;95; AVX512-LABEL: store_i64_stride4_vf2:96; AVX512: # %bb.0:97; AVX512-NEXT: vmovdqa (%rdi), %xmm098; AVX512-NEXT: vmovdqa (%rdx), %xmm199; AVX512-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1100; AVX512-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0101; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]102; AVX512-NEXT: vpermi2q %zmm1, %zmm0, %zmm2103; AVX512-NEXT: vmovdqa64 %zmm2, (%r8)104; AVX512-NEXT: vzeroupper105; AVX512-NEXT: retq106;107; AVX512-FCP-LABEL: store_i64_stride4_vf2:108; AVX512-FCP: # %bb.0:109; AVX512-FCP-NEXT: vmovdqa (%rdi), %xmm0110; AVX512-FCP-NEXT: vmovdqa (%rdx), %xmm1111; AVX512-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1112; AVX512-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0113; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]114; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2115; AVX512-FCP-NEXT: vmovdqa64 %zmm2, (%r8)116; AVX512-FCP-NEXT: vzeroupper117; AVX512-FCP-NEXT: retq118;119; AVX512DQ-LABEL: store_i64_stride4_vf2:120; AVX512DQ: # %bb.0:121; AVX512DQ-NEXT: vmovdqa (%rdi), %xmm0122; AVX512DQ-NEXT: vmovdqa (%rdx), %xmm1123; AVX512DQ-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1124; AVX512DQ-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0125; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]126; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm2127; AVX512DQ-NEXT: vmovdqa64 %zmm2, (%r8)128; AVX512DQ-NEXT: vzeroupper129; AVX512DQ-NEXT: retq130;131; AVX512DQ-FCP-LABEL: store_i64_stride4_vf2:132; AVX512DQ-FCP: # %bb.0:133; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %xmm0134; AVX512DQ-FCP-NEXT: vmovdqa (%rdx), %xmm1135; AVX512DQ-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1136; AVX512DQ-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0137; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]138; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2139; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, (%r8)140; AVX512DQ-FCP-NEXT: vzeroupper141; AVX512DQ-FCP-NEXT: retq142;143; AVX512BW-LABEL: store_i64_stride4_vf2:144; AVX512BW: # %bb.0:145; AVX512BW-NEXT: vmovdqa (%rdi), %xmm0146; AVX512BW-NEXT: vmovdqa (%rdx), %xmm1147; AVX512BW-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1148; AVX512BW-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0149; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]150; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2151; AVX512BW-NEXT: vmovdqa64 %zmm2, (%r8)152; AVX512BW-NEXT: vzeroupper153; AVX512BW-NEXT: retq154;155; AVX512BW-FCP-LABEL: store_i64_stride4_vf2:156; AVX512BW-FCP: # %bb.0:157; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %xmm0158; AVX512BW-FCP-NEXT: vmovdqa (%rdx), %xmm1159; AVX512BW-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1160; AVX512BW-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0161; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]162; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2163; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, (%r8)164; AVX512BW-FCP-NEXT: vzeroupper165; AVX512BW-FCP-NEXT: retq166;167; AVX512DQ-BW-LABEL: store_i64_stride4_vf2:168; AVX512DQ-BW: # %bb.0:169; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %xmm0170; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %xmm1171; AVX512DQ-BW-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1172; AVX512DQ-BW-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0173; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]174; AVX512DQ-BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2175; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, (%r8)176; AVX512DQ-BW-NEXT: vzeroupper177; AVX512DQ-BW-NEXT: retq178;179; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf2:180; AVX512DQ-BW-FCP: # %bb.0:181; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %xmm0182; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdx), %xmm1183; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, (%rcx), %ymm1, %ymm1184; AVX512DQ-BW-FCP-NEXT: vinserti128 $1, (%rsi), %ymm0, %ymm0185; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,2,8,10,1,3,9,11]186; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2187; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, (%r8)188; AVX512DQ-BW-FCP-NEXT: vzeroupper189; AVX512DQ-BW-FCP-NEXT: retq190 %in.vec0 = load <2 x i64>, ptr %in.vecptr0, align 64191 %in.vec1 = load <2 x i64>, ptr %in.vecptr1, align 64192 %in.vec2 = load <2 x i64>, ptr %in.vecptr2, align 64193 %in.vec3 = load <2 x i64>, ptr %in.vecptr3, align 64194 %1 = shufflevector <2 x i64> %in.vec0, <2 x i64> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>195 %2 = shufflevector <2 x i64> %in.vec2, <2 x i64> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>196 %3 = shufflevector <4 x i64> %1, <4 x i64> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>197 %interleaved.vec = shufflevector <8 x i64> %3, <8 x i64> poison, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 1, i32 3, i32 5, i32 7>198 store <8 x i64> %interleaved.vec, ptr %out.vec, align 64199 ret void200}201 202define void @store_i64_stride4_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {203; SSE-LABEL: store_i64_stride4_vf4:204; SSE: # %bb.0:205; SSE-NEXT: movaps (%rdi), %xmm0206; SSE-NEXT: movaps 16(%rdi), %xmm1207; SSE-NEXT: movaps (%rsi), %xmm2208; SSE-NEXT: movaps 16(%rsi), %xmm3209; SSE-NEXT: movaps (%rdx), %xmm4210; SSE-NEXT: movaps 16(%rdx), %xmm5211; SSE-NEXT: movaps (%rcx), %xmm6212; SSE-NEXT: movaps 16(%rcx), %xmm7213; SSE-NEXT: movaps %xmm4, %xmm8214; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm6[0]215; SSE-NEXT: movaps %xmm0, %xmm9216; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm2[0]217; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm6[1]218; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]219; SSE-NEXT: movaps %xmm5, %xmm2220; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm7[0]221; SSE-NEXT: movaps %xmm1, %xmm6222; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm3[0]223; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]224; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]225; SSE-NEXT: movaps %xmm1, 96(%r8)226; SSE-NEXT: movaps %xmm5, 112(%r8)227; SSE-NEXT: movaps %xmm6, 64(%r8)228; SSE-NEXT: movaps %xmm2, 80(%r8)229; SSE-NEXT: movaps %xmm0, 32(%r8)230; SSE-NEXT: movaps %xmm4, 48(%r8)231; SSE-NEXT: movaps %xmm9, (%r8)232; SSE-NEXT: movaps %xmm8, 16(%r8)233; SSE-NEXT: retq234;235; AVX-LABEL: store_i64_stride4_vf4:236; AVX: # %bb.0:237; AVX-NEXT: vmovaps (%rdi), %ymm0238; AVX-NEXT: vmovaps (%rsi), %ymm1239; AVX-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm2240; AVX-NEXT: vinsertf128 $1, (%rcx), %ymm1, %ymm3241; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],mem[2,3]242; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],mem[2,3]243; AVX-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]244; AVX-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]245; AVX-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]246; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]247; AVX-NEXT: vmovaps %ymm5, 64(%r8)248; AVX-NEXT: vmovaps %ymm0, 96(%r8)249; AVX-NEXT: vmovaps %ymm2, 32(%r8)250; AVX-NEXT: vmovaps %ymm4, (%r8)251; AVX-NEXT: vzeroupper252; AVX-NEXT: retq253;254; AVX2-LABEL: store_i64_stride4_vf4:255; AVX2: # %bb.0:256; AVX2-NEXT: vmovaps (%rdi), %ymm0257; AVX2-NEXT: vmovaps (%rsi), %ymm1258; AVX2-NEXT: vmovaps (%rdx), %ymm2259; AVX2-NEXT: vmovaps (%rcx), %ymm3260; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]261; AVX2-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]262; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]263; AVX2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]264; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]265; AVX2-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]266; AVX2-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]267; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]268; AVX2-NEXT: vmovaps %ymm0, 96(%r8)269; AVX2-NEXT: vmovaps %ymm3, 64(%r8)270; AVX2-NEXT: vmovaps %ymm4, 32(%r8)271; AVX2-NEXT: vmovaps %ymm2, (%r8)272; AVX2-NEXT: vzeroupper273; AVX2-NEXT: retq274;275; AVX2-FP-LABEL: store_i64_stride4_vf4:276; AVX2-FP: # %bb.0:277; AVX2-FP-NEXT: vmovaps (%rdi), %ymm0278; AVX2-FP-NEXT: vmovaps (%rsi), %ymm1279; AVX2-FP-NEXT: vmovaps (%rdx), %ymm2280; AVX2-FP-NEXT: vmovaps (%rcx), %ymm3281; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]282; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]283; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]284; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]285; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]286; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]287; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]288; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]289; AVX2-FP-NEXT: vmovaps %ymm0, 96(%r8)290; AVX2-FP-NEXT: vmovaps %ymm3, 64(%r8)291; AVX2-FP-NEXT: vmovaps %ymm4, 32(%r8)292; AVX2-FP-NEXT: vmovaps %ymm2, (%r8)293; AVX2-FP-NEXT: vzeroupper294; AVX2-FP-NEXT: retq295;296; AVX2-FCP-LABEL: store_i64_stride4_vf4:297; AVX2-FCP: # %bb.0:298; AVX2-FCP-NEXT: vmovaps (%rdi), %ymm0299; AVX2-FCP-NEXT: vmovaps (%rsi), %ymm1300; AVX2-FCP-NEXT: vmovaps (%rdx), %ymm2301; AVX2-FCP-NEXT: vmovaps (%rcx), %ymm3302; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]303; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]304; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]305; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]306; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]307; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]308; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]309; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]310; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%r8)311; AVX2-FCP-NEXT: vmovaps %ymm3, 64(%r8)312; AVX2-FCP-NEXT: vmovaps %ymm4, 32(%r8)313; AVX2-FCP-NEXT: vmovaps %ymm2, (%r8)314; AVX2-FCP-NEXT: vzeroupper315; AVX2-FCP-NEXT: retq316;317; AVX512-LABEL: store_i64_stride4_vf4:318; AVX512: # %bb.0:319; AVX512-NEXT: vmovdqa (%rdi), %ymm0320; AVX512-NEXT: vmovdqa (%rsi), %ymm1321; AVX512-NEXT: vmovdqa (%rdx), %ymm2322; AVX512-NEXT: vmovdqa (%rcx), %ymm3323; AVX512-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]324; AVX512-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]325; AVX512-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]326; AVX512-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]327; AVX512-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]328; AVX512-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]329; AVX512-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]330; AVX512-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]331; AVX512-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm1332; AVX512-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm0333; AVX512-NEXT: vmovdqa64 %zmm0, 64(%r8)334; AVX512-NEXT: vmovdqa64 %zmm1, (%r8)335; AVX512-NEXT: vzeroupper336; AVX512-NEXT: retq337;338; AVX512-FCP-LABEL: store_i64_stride4_vf4:339; AVX512-FCP: # %bb.0:340; AVX512-FCP-NEXT: vmovdqa (%rdi), %ymm0341; AVX512-FCP-NEXT: vmovdqa (%rsi), %ymm1342; AVX512-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm1343; AVX512-FCP-NEXT: vinserti64x4 $1, (%rdx), %zmm0, %zmm0344; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,8,4,12,1,9,5,13]345; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2346; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm3 = [2,10,6,14,3,11,7,15]347; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm3348; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 64(%r8)349; AVX512-FCP-NEXT: vmovdqa64 %zmm2, (%r8)350; AVX512-FCP-NEXT: vzeroupper351; AVX512-FCP-NEXT: retq352;353; AVX512DQ-LABEL: store_i64_stride4_vf4:354; AVX512DQ: # %bb.0:355; AVX512DQ-NEXT: vmovdqa (%rdi), %ymm0356; AVX512DQ-NEXT: vmovdqa (%rsi), %ymm1357; AVX512DQ-NEXT: vmovdqa (%rdx), %ymm2358; AVX512DQ-NEXT: vmovdqa (%rcx), %ymm3359; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]360; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]361; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]362; AVX512DQ-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]363; AVX512DQ-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]364; AVX512DQ-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]365; AVX512DQ-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]366; AVX512DQ-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]367; AVX512DQ-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm1368; AVX512DQ-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm0369; AVX512DQ-NEXT: vmovdqa64 %zmm0, 64(%r8)370; AVX512DQ-NEXT: vmovdqa64 %zmm1, (%r8)371; AVX512DQ-NEXT: vzeroupper372; AVX512DQ-NEXT: retq373;374; AVX512DQ-FCP-LABEL: store_i64_stride4_vf4:375; AVX512DQ-FCP: # %bb.0:376; AVX512DQ-FCP-NEXT: vmovdqa (%rdi), %ymm0377; AVX512DQ-FCP-NEXT: vmovdqa (%rsi), %ymm1378; AVX512DQ-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm1379; AVX512DQ-FCP-NEXT: vinserti64x4 $1, (%rdx), %zmm0, %zmm0380; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,8,4,12,1,9,5,13]381; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2382; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm3 = [2,10,6,14,3,11,7,15]383; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm3384; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 64(%r8)385; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, (%r8)386; AVX512DQ-FCP-NEXT: vzeroupper387; AVX512DQ-FCP-NEXT: retq388;389; AVX512BW-LABEL: store_i64_stride4_vf4:390; AVX512BW: # %bb.0:391; AVX512BW-NEXT: vmovdqa (%rdi), %ymm0392; AVX512BW-NEXT: vmovdqa (%rsi), %ymm1393; AVX512BW-NEXT: vmovdqa (%rdx), %ymm2394; AVX512BW-NEXT: vmovdqa (%rcx), %ymm3395; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]396; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]397; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]398; AVX512BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]399; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]400; AVX512BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]401; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]402; AVX512BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]403; AVX512BW-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm1404; AVX512BW-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm0405; AVX512BW-NEXT: vmovdqa64 %zmm0, 64(%r8)406; AVX512BW-NEXT: vmovdqa64 %zmm1, (%r8)407; AVX512BW-NEXT: vzeroupper408; AVX512BW-NEXT: retq409;410; AVX512BW-FCP-LABEL: store_i64_stride4_vf4:411; AVX512BW-FCP: # %bb.0:412; AVX512BW-FCP-NEXT: vmovdqa (%rdi), %ymm0413; AVX512BW-FCP-NEXT: vmovdqa (%rsi), %ymm1414; AVX512BW-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm1415; AVX512BW-FCP-NEXT: vinserti64x4 $1, (%rdx), %zmm0, %zmm0416; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,8,4,12,1,9,5,13]417; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2418; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm3 = [2,10,6,14,3,11,7,15]419; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm3420; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 64(%r8)421; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, (%r8)422; AVX512BW-FCP-NEXT: vzeroupper423; AVX512BW-FCP-NEXT: retq424;425; AVX512DQ-BW-LABEL: store_i64_stride4_vf4:426; AVX512DQ-BW: # %bb.0:427; AVX512DQ-BW-NEXT: vmovdqa (%rdi), %ymm0428; AVX512DQ-BW-NEXT: vmovdqa (%rsi), %ymm1429; AVX512DQ-BW-NEXT: vmovdqa (%rdx), %ymm2430; AVX512DQ-BW-NEXT: vmovdqa (%rcx), %ymm3431; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm4 = ymm0[0,1],ymm2[0,1]432; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm5 = ymm1[0,1],ymm3[0,1]433; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]434; AVX512DQ-BW-NEXT: vperm2i128 {{.*#+}} ymm1 = ymm1[2,3],ymm3[2,3]435; AVX512DQ-BW-NEXT: vpunpcklqdq {{.*#+}} ymm2 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]436; AVX512DQ-BW-NEXT: vpunpcklqdq {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]437; AVX512DQ-BW-NEXT: vpunpckhqdq {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]438; AVX512DQ-BW-NEXT: vpunpckhqdq {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]439; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm4, %zmm2, %zmm1440; AVX512DQ-BW-NEXT: vinserti64x4 $1, %ymm0, %zmm3, %zmm0441; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 64(%r8)442; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, (%r8)443; AVX512DQ-BW-NEXT: vzeroupper444; AVX512DQ-BW-NEXT: retq445;446; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf4:447; AVX512DQ-BW-FCP: # %bb.0:448; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rdi), %ymm0449; AVX512DQ-BW-FCP-NEXT: vmovdqa (%rsi), %ymm1450; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, (%rcx), %zmm1, %zmm1451; AVX512DQ-BW-FCP-NEXT: vinserti64x4 $1, (%rdx), %zmm0, %zmm0452; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [0,8,4,12,1,9,5,13]453; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2454; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm3 = [2,10,6,14,3,11,7,15]455; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm3456; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 64(%r8)457; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, (%r8)458; AVX512DQ-BW-FCP-NEXT: vzeroupper459; AVX512DQ-BW-FCP-NEXT: retq460 %in.vec0 = load <4 x i64>, ptr %in.vecptr0, align 64461 %in.vec1 = load <4 x i64>, ptr %in.vecptr1, align 64462 %in.vec2 = load <4 x i64>, ptr %in.vecptr2, align 64463 %in.vec3 = load <4 x i64>, ptr %in.vecptr3, align 64464 %1 = shufflevector <4 x i64> %in.vec0, <4 x i64> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>465 %2 = shufflevector <4 x i64> %in.vec2, <4 x i64> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>466 %3 = shufflevector <8 x i64> %1, <8 x i64> %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>467 %interleaved.vec = shufflevector <16 x i64> %3, <16 x i64> poison, <16 x i32> <i32 0, i32 4, i32 8, i32 12, i32 1, i32 5, i32 9, i32 13, i32 2, i32 6, i32 10, i32 14, i32 3, i32 7, i32 11, i32 15>468 store <16 x i64> %interleaved.vec, ptr %out.vec, align 64469 ret void470}471 472define void @store_i64_stride4_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {473; SSE-LABEL: store_i64_stride4_vf8:474; SSE: # %bb.0:475; SSE-NEXT: movaps (%rdi), %xmm5476; SSE-NEXT: movaps 16(%rdi), %xmm1477; SSE-NEXT: movaps 32(%rdi), %xmm3478; SSE-NEXT: movaps 48(%rdi), %xmm0479; SSE-NEXT: movaps (%rsi), %xmm10480; SSE-NEXT: movaps 16(%rsi), %xmm14481; SSE-NEXT: movaps 32(%rsi), %xmm11482; SSE-NEXT: movaps (%rdx), %xmm2483; SSE-NEXT: movaps 16(%rdx), %xmm4484; SSE-NEXT: movaps 32(%rdx), %xmm7485; SSE-NEXT: movaps 48(%rdx), %xmm9486; SSE-NEXT: movaps (%rcx), %xmm8487; SSE-NEXT: movaps 16(%rcx), %xmm13488; SSE-NEXT: movaps 32(%rcx), %xmm15489; SSE-NEXT: movaps 48(%rcx), %xmm12490; SSE-NEXT: movaps %xmm2, %xmm6491; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm8[0]492; SSE-NEXT: movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill493; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm8[1]494; SSE-NEXT: movaps %xmm5, %xmm8495; SSE-NEXT: movlhps {{.*#+}} xmm8 = xmm8[0],xmm10[0]496; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm10[1]497; SSE-NEXT: movaps %xmm4, %xmm10498; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm13[0]499; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm13[1]500; SSE-NEXT: movaps %xmm1, %xmm13501; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm14[0]502; SSE-NEXT: unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]503; SSE-NEXT: movaps %xmm7, %xmm14504; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm15[0]505; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm15[1]506; SSE-NEXT: movaps %xmm3, %xmm15507; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm11[0]508; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm11[1]509; SSE-NEXT: movaps %xmm9, %xmm11510; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm12[0]511; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm12[1]512; SSE-NEXT: movaps 48(%rsi), %xmm12513; SSE-NEXT: movaps %xmm0, %xmm6514; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm12[0]515; SSE-NEXT: unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm12[1]516; SSE-NEXT: movaps %xmm0, 224(%r8)517; SSE-NEXT: movaps %xmm9, 240(%r8)518; SSE-NEXT: movaps %xmm6, 192(%r8)519; SSE-NEXT: movaps %xmm11, 208(%r8)520; SSE-NEXT: movaps %xmm3, 160(%r8)521; SSE-NEXT: movaps %xmm7, 176(%r8)522; SSE-NEXT: movaps %xmm15, 128(%r8)523; SSE-NEXT: movaps %xmm14, 144(%r8)524; SSE-NEXT: movaps %xmm1, 96(%r8)525; SSE-NEXT: movaps %xmm4, 112(%r8)526; SSE-NEXT: movaps %xmm13, 64(%r8)527; SSE-NEXT: movaps %xmm10, 80(%r8)528; SSE-NEXT: movaps %xmm5, 32(%r8)529; SSE-NEXT: movaps %xmm2, 48(%r8)530; SSE-NEXT: movaps %xmm8, (%r8)531; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload532; SSE-NEXT: movaps %xmm0, 16(%r8)533; SSE-NEXT: retq534;535; AVX-LABEL: store_i64_stride4_vf8:536; AVX: # %bb.0:537; AVX-NEXT: vmovaps (%rdx), %ymm2538; AVX-NEXT: vmovaps 32(%rdx), %ymm1539; AVX-NEXT: vmovaps (%rcx), %ymm3540; AVX-NEXT: vmovaps 32(%rcx), %ymm4541; AVX-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]542; AVX-NEXT: vmovaps 48(%rsi), %xmm5543; AVX-NEXT: vmovaps 48(%rdi), %xmm6544; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]545; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]546; AVX-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]547; AVX-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm6[1],xmm5[1]548; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4,5,6,7]549; AVX-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]550; AVX-NEXT: vmovaps 16(%rsi), %xmm5551; AVX-NEXT: vmovaps 16(%rdi), %xmm6552; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]553; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]554; AVX-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]555; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]556; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]557; AVX-NEXT: vmovaps 32(%rcx), %xmm3558; AVX-NEXT: vmovaps 32(%rdx), %xmm5559; AVX-NEXT: vmovlhps {{.*#+}} xmm6 = xmm5[0],xmm3[0]560; AVX-NEXT: vmovaps 32(%rsi), %xmm7561; AVX-NEXT: vmovaps 32(%rdi), %xmm8562; AVX-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]563; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm5[1],xmm3[1]564; AVX-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]565; AVX-NEXT: vmovaps (%rcx), %xmm7566; AVX-NEXT: vmovaps (%rdx), %xmm8567; AVX-NEXT: vmovlhps {{.*#+}} xmm10 = xmm8[0],xmm7[0]568; AVX-NEXT: vmovaps (%rsi), %xmm11569; AVX-NEXT: vmovaps (%rdi), %xmm12570; AVX-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]571; AVX-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm7[1]572; AVX-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]573; AVX-NEXT: vmovaps %xmm8, 32(%r8)574; AVX-NEXT: vmovaps %xmm7, 48(%r8)575; AVX-NEXT: vmovaps %xmm13, (%r8)576; AVX-NEXT: vmovaps %xmm10, 16(%r8)577; AVX-NEXT: vmovaps %xmm5, 160(%r8)578; AVX-NEXT: vmovaps %xmm3, 176(%r8)579; AVX-NEXT: vmovaps %xmm9, 128(%r8)580; AVX-NEXT: vmovaps %xmm6, 144(%r8)581; AVX-NEXT: vmovaps %ymm2, 96(%r8)582; AVX-NEXT: vmovaps %ymm4, 64(%r8)583; AVX-NEXT: vmovaps %ymm1, 224(%r8)584; AVX-NEXT: vmovaps %ymm0, 192(%r8)585; AVX-NEXT: vzeroupper586; AVX-NEXT: retq587;588; AVX2-LABEL: store_i64_stride4_vf8:589; AVX2: # %bb.0:590; AVX2-NEXT: vmovaps (%rdi), %ymm0591; AVX2-NEXT: vmovaps 32(%rdi), %ymm1592; AVX2-NEXT: vmovaps (%rsi), %ymm2593; AVX2-NEXT: vmovaps 32(%rsi), %ymm3594; AVX2-NEXT: vmovaps (%rdx), %ymm4595; AVX2-NEXT: vmovaps 32(%rdx), %ymm5596; AVX2-NEXT: vmovaps (%rcx), %ymm6597; AVX2-NEXT: vmovaps 32(%rcx), %ymm7598; AVX2-NEXT: vmovaps (%rsi), %xmm8599; AVX2-NEXT: vmovaps 32(%rsi), %xmm9600; AVX2-NEXT: vinsertf128 $1, (%rcx), %ymm8, %ymm8601; AVX2-NEXT: vmovaps (%rdi), %xmm10602; AVX2-NEXT: vmovaps 32(%rdi), %xmm11603; AVX2-NEXT: vinsertf128 $1, (%rdx), %ymm10, %ymm10604; AVX2-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]605; AVX2-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]606; AVX2-NEXT: vinsertf128 $1, 32(%rcx), %ymm9, %ymm9607; AVX2-NEXT: vinsertf128 $1, 32(%rdx), %ymm11, %ymm10608; AVX2-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]609; AVX2-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]610; AVX2-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]611; AVX2-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]612; AVX2-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm13[2,3],ymm10[2,3]613; AVX2-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]614; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]615; AVX2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm5[2,3]616; AVX2-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]617; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]618; AVX2-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]619; AVX2-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]620; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]621; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]622; AVX2-NEXT: vmovaps %ymm0, 96(%r8)623; AVX2-NEXT: vmovaps %ymm3, 64(%r8)624; AVX2-NEXT: vmovaps %ymm1, 224(%r8)625; AVX2-NEXT: vmovaps %ymm10, 192(%r8)626; AVX2-NEXT: vmovaps %ymm9, 160(%r8)627; AVX2-NEXT: vmovaps %ymm11, 128(%r8)628; AVX2-NEXT: vmovaps %ymm8, (%r8)629; AVX2-NEXT: vmovaps %ymm12, 32(%r8)630; AVX2-NEXT: vzeroupper631; AVX2-NEXT: retq632;633; AVX2-FP-LABEL: store_i64_stride4_vf8:634; AVX2-FP: # %bb.0:635; AVX2-FP-NEXT: vmovaps (%rdi), %ymm0636; AVX2-FP-NEXT: vmovaps 32(%rdi), %ymm1637; AVX2-FP-NEXT: vmovaps (%rsi), %ymm2638; AVX2-FP-NEXT: vmovaps 32(%rsi), %ymm3639; AVX2-FP-NEXT: vmovaps (%rdx), %ymm4640; AVX2-FP-NEXT: vmovaps 32(%rdx), %ymm5641; AVX2-FP-NEXT: vmovaps (%rcx), %ymm6642; AVX2-FP-NEXT: vmovaps 32(%rcx), %ymm7643; AVX2-FP-NEXT: vmovaps (%rsi), %xmm8644; AVX2-FP-NEXT: vmovaps 32(%rsi), %xmm9645; AVX2-FP-NEXT: vinsertf128 $1, (%rcx), %ymm8, %ymm8646; AVX2-FP-NEXT: vmovaps (%rdi), %xmm10647; AVX2-FP-NEXT: vmovaps 32(%rdi), %xmm11648; AVX2-FP-NEXT: vinsertf128 $1, (%rdx), %ymm10, %ymm10649; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]650; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]651; AVX2-FP-NEXT: vinsertf128 $1, 32(%rcx), %ymm9, %ymm9652; AVX2-FP-NEXT: vinsertf128 $1, 32(%rdx), %ymm11, %ymm10653; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]654; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]655; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]656; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]657; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm13[2,3],ymm10[2,3]658; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]659; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]660; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm5[2,3]661; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]662; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]663; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]664; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]665; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]666; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]667; AVX2-FP-NEXT: vmovaps %ymm0, 96(%r8)668; AVX2-FP-NEXT: vmovaps %ymm3, 64(%r8)669; AVX2-FP-NEXT: vmovaps %ymm1, 224(%r8)670; AVX2-FP-NEXT: vmovaps %ymm10, 192(%r8)671; AVX2-FP-NEXT: vmovaps %ymm9, 160(%r8)672; AVX2-FP-NEXT: vmovaps %ymm11, 128(%r8)673; AVX2-FP-NEXT: vmovaps %ymm8, (%r8)674; AVX2-FP-NEXT: vmovaps %ymm12, 32(%r8)675; AVX2-FP-NEXT: vzeroupper676; AVX2-FP-NEXT: retq677;678; AVX2-FCP-LABEL: store_i64_stride4_vf8:679; AVX2-FCP: # %bb.0:680; AVX2-FCP-NEXT: vmovaps (%rdi), %ymm0681; AVX2-FCP-NEXT: vmovaps 32(%rdi), %ymm1682; AVX2-FCP-NEXT: vmovaps (%rsi), %ymm2683; AVX2-FCP-NEXT: vmovaps 32(%rsi), %ymm3684; AVX2-FCP-NEXT: vmovaps (%rdx), %ymm4685; AVX2-FCP-NEXT: vmovaps 32(%rdx), %ymm5686; AVX2-FCP-NEXT: vmovaps (%rcx), %ymm6687; AVX2-FCP-NEXT: vmovaps 32(%rcx), %ymm7688; AVX2-FCP-NEXT: vmovaps (%rsi), %xmm8689; AVX2-FCP-NEXT: vmovaps 32(%rsi), %xmm9690; AVX2-FCP-NEXT: vinsertf128 $1, (%rcx), %ymm8, %ymm8691; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm10692; AVX2-FCP-NEXT: vmovaps 32(%rdi), %xmm11693; AVX2-FCP-NEXT: vinsertf128 $1, (%rdx), %ymm10, %ymm10694; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]695; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]696; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rcx), %ymm9, %ymm9697; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rdx), %ymm11, %ymm10698; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]699; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]700; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm5[0],ymm7[0],ymm5[2],ymm7[2]701; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]702; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm13[2,3],ymm10[2,3]703; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm7[1],ymm5[3],ymm7[3]704; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]705; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm5[2,3]706; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]707; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]708; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]709; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm6[1],ymm4[3],ymm6[3]710; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]711; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm4[2,3]712; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%r8)713; AVX2-FCP-NEXT: vmovaps %ymm3, 64(%r8)714; AVX2-FCP-NEXT: vmovaps %ymm1, 224(%r8)715; AVX2-FCP-NEXT: vmovaps %ymm10, 192(%r8)716; AVX2-FCP-NEXT: vmovaps %ymm9, 160(%r8)717; AVX2-FCP-NEXT: vmovaps %ymm11, 128(%r8)718; AVX2-FCP-NEXT: vmovaps %ymm8, (%r8)719; AVX2-FCP-NEXT: vmovaps %ymm12, 32(%r8)720; AVX2-FCP-NEXT: vzeroupper721; AVX2-FCP-NEXT: retq722;723; AVX512-LABEL: store_i64_stride4_vf8:724; AVX512: # %bb.0:725; AVX512-NEXT: vmovdqa64 (%rdi), %zmm0726; AVX512-NEXT: vmovdqa64 (%rsi), %zmm1727; AVX512-NEXT: vmovdqa64 (%rdx), %zmm2728; AVX512-NEXT: vmovdqa64 (%rcx), %zmm3729; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]730; AVX512-NEXT: vpermi2q %zmm3, %zmm2, %zmm4731; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]732; AVX512-NEXT: vpermi2q %zmm1, %zmm0, %zmm5733; AVX512-NEXT: movb $-52, %al734; AVX512-NEXT: kmovw %eax, %k1735; AVX512-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}736; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]737; AVX512-NEXT: vpermi2q %zmm3, %zmm2, %zmm4738; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]739; AVX512-NEXT: vpermi2q %zmm1, %zmm0, %zmm6740; AVX512-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}741; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]742; AVX512-NEXT: vpermi2q %zmm3, %zmm2, %zmm4743; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]744; AVX512-NEXT: vpermi2q %zmm1, %zmm0, %zmm7745; AVX512-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}746; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]747; AVX512-NEXT: vpermi2q %zmm3, %zmm2, %zmm4748; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]749; AVX512-NEXT: vpermi2q %zmm1, %zmm0, %zmm2750; AVX512-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}751; AVX512-NEXT: vmovdqa64 %zmm2, 192(%r8)752; AVX512-NEXT: vmovdqa64 %zmm7, 128(%r8)753; AVX512-NEXT: vmovdqa64 %zmm6, 64(%r8)754; AVX512-NEXT: vmovdqa64 %zmm5, (%r8)755; AVX512-NEXT: vzeroupper756; AVX512-NEXT: retq757;758; AVX512-FCP-LABEL: store_i64_stride4_vf8:759; AVX512-FCP: # %bb.0:760; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm0761; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm1762; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm2763; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm3764; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]765; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4766; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]767; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm5768; AVX512-FCP-NEXT: movb $-52, %al769; AVX512-FCP-NEXT: kmovw %eax, %k1770; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}771; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]772; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4773; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]774; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm6775; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}776; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]777; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4778; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]779; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm7780; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}781; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]782; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4783; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]784; AVX512-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2785; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}786; AVX512-FCP-NEXT: vmovdqa64 %zmm2, 192(%r8)787; AVX512-FCP-NEXT: vmovdqa64 %zmm7, 128(%r8)788; AVX512-FCP-NEXT: vmovdqa64 %zmm6, 64(%r8)789; AVX512-FCP-NEXT: vmovdqa64 %zmm5, (%r8)790; AVX512-FCP-NEXT: vzeroupper791; AVX512-FCP-NEXT: retq792;793; AVX512DQ-LABEL: store_i64_stride4_vf8:794; AVX512DQ: # %bb.0:795; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm0796; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm1797; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm2798; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm3799; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]800; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm2, %zmm4801; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]802; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm5803; AVX512DQ-NEXT: movb $-52, %al804; AVX512DQ-NEXT: kmovw %eax, %k1805; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}806; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]807; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm2, %zmm4808; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]809; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm6810; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}811; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]812; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm2, %zmm4813; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]814; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm7815; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}816; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]817; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm2, %zmm4818; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]819; AVX512DQ-NEXT: vpermi2q %zmm1, %zmm0, %zmm2820; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}821; AVX512DQ-NEXT: vmovdqa64 %zmm2, 192(%r8)822; AVX512DQ-NEXT: vmovdqa64 %zmm7, 128(%r8)823; AVX512DQ-NEXT: vmovdqa64 %zmm6, 64(%r8)824; AVX512DQ-NEXT: vmovdqa64 %zmm5, (%r8)825; AVX512DQ-NEXT: vzeroupper826; AVX512DQ-NEXT: retq827;828; AVX512DQ-FCP-LABEL: store_i64_stride4_vf8:829; AVX512DQ-FCP: # %bb.0:830; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm0831; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm1832; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm2833; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm3834; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]835; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4836; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]837; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm5838; AVX512DQ-FCP-NEXT: movb $-52, %al839; AVX512DQ-FCP-NEXT: kmovw %eax, %k1840; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}841; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]842; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4843; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]844; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm6845; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}846; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]847; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4848; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]849; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm7850; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}851; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]852; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4853; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]854; AVX512DQ-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2855; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}856; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, 192(%r8)857; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, 128(%r8)858; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, 64(%r8)859; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, (%r8)860; AVX512DQ-FCP-NEXT: vzeroupper861; AVX512DQ-FCP-NEXT: retq862;863; AVX512BW-LABEL: store_i64_stride4_vf8:864; AVX512BW: # %bb.0:865; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm0866; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm1867; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm2868; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm3869; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]870; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4871; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]872; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm5873; AVX512BW-NEXT: movb $-52, %al874; AVX512BW-NEXT: kmovd %eax, %k1875; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}876; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]877; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4878; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]879; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm6880; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}881; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]882; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4883; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]884; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm7885; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}886; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]887; AVX512BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4888; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]889; AVX512BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2890; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}891; AVX512BW-NEXT: vmovdqa64 %zmm2, 192(%r8)892; AVX512BW-NEXT: vmovdqa64 %zmm7, 128(%r8)893; AVX512BW-NEXT: vmovdqa64 %zmm6, 64(%r8)894; AVX512BW-NEXT: vmovdqa64 %zmm5, (%r8)895; AVX512BW-NEXT: vzeroupper896; AVX512BW-NEXT: retq897;898; AVX512BW-FCP-LABEL: store_i64_stride4_vf8:899; AVX512BW-FCP: # %bb.0:900; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0901; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm1902; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm2903; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm3904; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]905; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4906; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]907; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm5908; AVX512BW-FCP-NEXT: movb $-52, %al909; AVX512BW-FCP-NEXT: kmovd %eax, %k1910; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}911; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]912; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4913; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]914; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm6915; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}916; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]917; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4918; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]919; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm7920; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}921; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]922; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4923; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]924; AVX512BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2925; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}926; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, 192(%r8)927; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, 128(%r8)928; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, 64(%r8)929; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, (%r8)930; AVX512BW-FCP-NEXT: vzeroupper931; AVX512BW-FCP-NEXT: retq932;933; AVX512DQ-BW-LABEL: store_i64_stride4_vf8:934; AVX512DQ-BW: # %bb.0:935; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm0936; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm1937; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm2938; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm3939; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]940; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4941; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]942; AVX512DQ-BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm5943; AVX512DQ-BW-NEXT: movb $-52, %al944; AVX512DQ-BW-NEXT: kmovd %eax, %k1945; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}946; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]947; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4948; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]949; AVX512DQ-BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm6950; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}951; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]952; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4953; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]954; AVX512DQ-BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm7955; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}956; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]957; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm2, %zmm4958; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]959; AVX512DQ-BW-NEXT: vpermi2q %zmm1, %zmm0, %zmm2960; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}961; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, 192(%r8)962; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, 128(%r8)963; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, 64(%r8)964; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, (%r8)965; AVX512DQ-BW-NEXT: vzeroupper966; AVX512DQ-BW-NEXT: retq967;968; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf8:969; AVX512DQ-BW-FCP: # %bb.0:970; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm0971; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm1972; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm2973; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm3974; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,0,8,0,0,1,9]975; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4976; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [0,8,0,0,1,9,0,0]977; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm5978; AVX512DQ-BW-FCP-NEXT: movb $-52, %al979; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k1980; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm5 {%k1}981; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,2,10,0,0,3,11]982; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4983; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [2,10,0,0,3,11,0,0]984; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm6985; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm6 {%k1}986; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,4,12,0,0,5,13]987; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4988; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [4,12,0,0,5,13,0,0]989; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm7990; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm7 {%k1}991; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm4 = [0,0,6,14,0,0,7,15]992; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm2, %zmm4993; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,7,15,0,0]994; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm1, %zmm0, %zmm2995; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm2 {%k1}996; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, 192(%r8)997; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, 128(%r8)998; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, 64(%r8)999; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, (%r8)1000; AVX512DQ-BW-FCP-NEXT: vzeroupper1001; AVX512DQ-BW-FCP-NEXT: retq1002 %in.vec0 = load <8 x i64>, ptr %in.vecptr0, align 641003 %in.vec1 = load <8 x i64>, ptr %in.vecptr1, align 641004 %in.vec2 = load <8 x i64>, ptr %in.vecptr2, align 641005 %in.vec3 = load <8 x i64>, ptr %in.vecptr3, align 641006 %1 = shufflevector <8 x i64> %in.vec0, <8 x i64> %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>1007 %2 = shufflevector <8 x i64> %in.vec2, <8 x i64> %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>1008 %3 = shufflevector <16 x i64> %1, <16 x i64> %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>1009 %interleaved.vec = shufflevector <32 x i64> %3, <32 x i64> poison, <32 x i32> <i32 0, i32 8, i32 16, i32 24, i32 1, i32 9, i32 17, i32 25, i32 2, i32 10, i32 18, i32 26, i32 3, i32 11, i32 19, i32 27, i32 4, i32 12, i32 20, i32 28, i32 5, i32 13, i32 21, i32 29, i32 6, i32 14, i32 22, i32 30, i32 7, i32 15, i32 23, i32 31>1010 store <32 x i64> %interleaved.vec, ptr %out.vec, align 641011 ret void1012}1013 1014define void @store_i64_stride4_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {1015; SSE-LABEL: store_i64_stride4_vf16:1016; SSE: # %bb.0:1017; SSE-NEXT: subq $152, %rsp1018; SSE-NEXT: movaps (%rdi), %xmm71019; SSE-NEXT: movaps 16(%rdi), %xmm81020; SSE-NEXT: movaps 32(%rdi), %xmm91021; SSE-NEXT: movaps 48(%rdi), %xmm101022; SSE-NEXT: movaps (%rsi), %xmm31023; SSE-NEXT: movaps 16(%rsi), %xmm21024; SSE-NEXT: movaps 32(%rsi), %xmm11025; SSE-NEXT: movaps 48(%rsi), %xmm01026; SSE-NEXT: movaps (%rdx), %xmm111027; SSE-NEXT: movaps 16(%rdx), %xmm121028; SSE-NEXT: movaps 32(%rdx), %xmm141029; SSE-NEXT: movaps 48(%rdx), %xmm151030; SSE-NEXT: movaps (%rcx), %xmm41031; SSE-NEXT: movaps 16(%rcx), %xmm51032; SSE-NEXT: movaps 32(%rcx), %xmm61033; SSE-NEXT: movaps %xmm7, %xmm131034; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm3[0]1035; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1036; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]1037; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1038; SSE-NEXT: movaps %xmm11, %xmm71039; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm4[0]1040; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1041; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]1042; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1043; SSE-NEXT: movaps %xmm8, %xmm31044; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]1045; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1046; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]1047; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1048; SSE-NEXT: movaps %xmm12, %xmm31049; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm5[0]1050; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1051; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]1052; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1053; SSE-NEXT: movaps %xmm9, %xmm21054; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]1055; SSE-NEXT: movaps %xmm2, (%rsp) # 16-byte Spill1056; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]1057; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1058; SSE-NEXT: movaps %xmm14, %xmm11059; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]1060; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1061; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm6[1]1062; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1063; SSE-NEXT: movaps %xmm10, %xmm11064; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1065; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1066; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]1067; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1068; SSE-NEXT: movaps 48(%rcx), %xmm01069; SSE-NEXT: movaps %xmm15, %xmm11070; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1071; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1072; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]1073; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1074; SSE-NEXT: movaps 64(%rdi), %xmm141075; SSE-NEXT: movaps 64(%rsi), %xmm01076; SSE-NEXT: movaps %xmm14, %xmm11077; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]1078; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1079; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]1080; SSE-NEXT: movaps 64(%rdx), %xmm121081; SSE-NEXT: movaps 64(%rcx), %xmm01082; SSE-NEXT: movaps %xmm12, %xmm151083; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm0[0]1084; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]1085; SSE-NEXT: movaps 80(%rdi), %xmm111086; SSE-NEXT: movaps 80(%rsi), %xmm01087; SSE-NEXT: movaps %xmm11, %xmm131088; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]1089; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]1090; SSE-NEXT: movaps 80(%rdx), %xmm71091; SSE-NEXT: movaps 80(%rcx), %xmm11092; SSE-NEXT: movaps %xmm7, %xmm101093; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm1[0]1094; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm1[1]1095; SSE-NEXT: movaps 96(%rdi), %xmm81096; SSE-NEXT: movaps 96(%rsi), %xmm01097; SSE-NEXT: movaps %xmm8, %xmm91098; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]1099; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]1100; SSE-NEXT: movaps 96(%rdx), %xmm51101; SSE-NEXT: movaps 96(%rcx), %xmm01102; SSE-NEXT: movaps %xmm5, %xmm61103; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]1104; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]1105; SSE-NEXT: movaps 112(%rdi), %xmm21106; SSE-NEXT: movaps 112(%rsi), %xmm31107; SSE-NEXT: movaps %xmm2, %xmm41108; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]1109; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]1110; SSE-NEXT: movaps 112(%rdx), %xmm31111; SSE-NEXT: movaps 112(%rcx), %xmm11112; SSE-NEXT: movaps %xmm3, %xmm01113; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]1114; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]1115; SSE-NEXT: movaps %xmm3, 496(%r8)1116; SSE-NEXT: movaps %xmm2, 480(%r8)1117; SSE-NEXT: movaps %xmm0, 464(%r8)1118; SSE-NEXT: movaps %xmm4, 448(%r8)1119; SSE-NEXT: movaps %xmm5, 432(%r8)1120; SSE-NEXT: movaps %xmm8, 416(%r8)1121; SSE-NEXT: movaps %xmm6, 400(%r8)1122; SSE-NEXT: movaps %xmm9, 384(%r8)1123; SSE-NEXT: movaps %xmm7, 368(%r8)1124; SSE-NEXT: movaps %xmm11, 352(%r8)1125; SSE-NEXT: movaps %xmm10, 336(%r8)1126; SSE-NEXT: movaps %xmm13, 320(%r8)1127; SSE-NEXT: movaps %xmm12, 304(%r8)1128; SSE-NEXT: movaps %xmm14, 288(%r8)1129; SSE-NEXT: movaps %xmm15, 272(%r8)1130; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1131; SSE-NEXT: movaps %xmm0, 256(%r8)1132; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1133; SSE-NEXT: movaps %xmm0, 240(%r8)1134; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1135; SSE-NEXT: movaps %xmm0, 224(%r8)1136; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1137; SSE-NEXT: movaps %xmm0, 208(%r8)1138; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1139; SSE-NEXT: movaps %xmm0, 192(%r8)1140; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1141; SSE-NEXT: movaps %xmm0, 176(%r8)1142; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1143; SSE-NEXT: movaps %xmm0, 160(%r8)1144; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1145; SSE-NEXT: movaps %xmm0, 144(%r8)1146; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload1147; SSE-NEXT: movaps %xmm0, 128(%r8)1148; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1149; SSE-NEXT: movaps %xmm0, 112(%r8)1150; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1151; SSE-NEXT: movaps %xmm0, 96(%r8)1152; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1153; SSE-NEXT: movaps %xmm0, 80(%r8)1154; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1155; SSE-NEXT: movaps %xmm0, 64(%r8)1156; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1157; SSE-NEXT: movaps %xmm0, 48(%r8)1158; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1159; SSE-NEXT: movaps %xmm0, 32(%r8)1160; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1161; SSE-NEXT: movaps %xmm0, 16(%r8)1162; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1163; SSE-NEXT: movaps %xmm0, (%r8)1164; SSE-NEXT: addq $152, %rsp1165; SSE-NEXT: retq1166;1167; AVX-LABEL: store_i64_stride4_vf16:1168; AVX: # %bb.0:1169; AVX-NEXT: subq $152, %rsp1170; AVX-NEXT: vmovaps 96(%rdx), %ymm71171; AVX-NEXT: vmovaps 64(%rdx), %ymm51172; AVX-NEXT: vmovaps 32(%rdx), %ymm31173; AVX-NEXT: vmovaps (%rdx), %ymm11174; AVX-NEXT: vmovaps 96(%rcx), %ymm81175; AVX-NEXT: vmovaps 64(%rcx), %ymm61176; AVX-NEXT: vmovaps 32(%rcx), %ymm41177; AVX-NEXT: vmovaps (%rcx), %ymm21178; AVX-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]1179; AVX-NEXT: vmovaps 16(%rsi), %xmm91180; AVX-NEXT: vmovaps 16(%rdi), %xmm101181; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]1182; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm0[4,5,6,7]1183; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1184; AVX-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]1185; AVX-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm10[1],xmm9[1]1186; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm1[4,5,6,7]1187; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1188; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]1189; AVX-NEXT: vmovaps 48(%rsi), %xmm91190; AVX-NEXT: vmovaps 48(%rdi), %xmm101191; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]1192; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm2[4,5,6,7]1193; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1194; AVX-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm4[1],ymm3[3],ymm4[3]1195; AVX-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm10[1],xmm9[1]1196; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm3[4,5,6,7]1197; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1198; AVX-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]1199; AVX-NEXT: vmovaps 80(%rsi), %xmm91200; AVX-NEXT: vmovaps 80(%rdi), %xmm101201; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]1202; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm4[4,5,6,7]1203; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1204; AVX-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm6[1],ymm5[3],ymm6[3]1205; AVX-NEXT: vunpckhpd {{.*#+}} xmm6 = xmm10[1],xmm9[1]1206; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm5[4,5,6,7]1207; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1208; AVX-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]1209; AVX-NEXT: vmovaps 112(%rsi), %xmm91210; AVX-NEXT: vmovaps 112(%rdi), %xmm101211; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm9[0]1212; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3],ymm6[4,5,6,7]1213; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1214; AVX-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm8[1],ymm7[3],ymm8[3]1215; AVX-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm10[1],xmm9[1]1216; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm7[4,5,6,7]1217; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1218; AVX-NEXT: vmovaps 64(%rsi), %xmm101219; AVX-NEXT: vmovaps 64(%rdi), %xmm111220; AVX-NEXT: vmovlhps {{.*#+}} xmm0 = xmm11[0],xmm10[0]1221; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1222; AVX-NEXT: vmovaps 32(%rcx), %xmm141223; AVX-NEXT: vmovaps 64(%rcx), %xmm121224; AVX-NEXT: vmovaps 64(%rdx), %xmm131225; AVX-NEXT: vmovlhps {{.*#+}} xmm9 = xmm13[0],xmm12[0]1226; AVX-NEXT: vunpckhpd {{.*#+}} xmm10 = xmm11[1],xmm10[1]1227; AVX-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm13[1],xmm12[1]1228; AVX-NEXT: vmovaps 32(%rsi), %xmm131229; AVX-NEXT: vmovaps 32(%rdi), %xmm151230; AVX-NEXT: vmovlhps {{.*#+}} xmm12 = xmm15[0],xmm13[0]1231; AVX-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm15[1],xmm13[1]1232; AVX-NEXT: vmovaps 32(%rdx), %xmm151233; AVX-NEXT: vmovlhps {{.*#+}} xmm8 = xmm15[0],xmm14[0]1234; AVX-NEXT: vunpckhpd {{.*#+}} xmm14 = xmm15[1],xmm14[1]1235; AVX-NEXT: vmovaps 96(%rsi), %xmm151236; AVX-NEXT: vmovaps 96(%rdi), %xmm01237; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm0[0],xmm15[0]1238; AVX-NEXT: vunpckhpd {{.*#+}} xmm6 = xmm0[1],xmm15[1]1239; AVX-NEXT: vmovaps 96(%rcx), %xmm151240; AVX-NEXT: vmovaps 96(%rdx), %xmm01241; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm0[0],xmm15[0]1242; AVX-NEXT: vunpckhpd {{.*#+}} xmm4 = xmm0[1],xmm15[1]1243; AVX-NEXT: vmovaps (%rsi), %xmm151244; AVX-NEXT: vmovaps (%rdi), %xmm01245; AVX-NEXT: vmovlhps {{.*#+}} xmm3 = xmm0[0],xmm15[0]1246; AVX-NEXT: vunpckhpd {{.*#+}} xmm2 = xmm0[1],xmm15[1]1247; AVX-NEXT: vmovaps (%rcx), %xmm151248; AVX-NEXT: vmovaps (%rdx), %xmm01249; AVX-NEXT: vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm15[0]1250; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm15[1]1251; AVX-NEXT: vmovaps %xmm0, 48(%r8)1252; AVX-NEXT: vmovaps %xmm2, 32(%r8)1253; AVX-NEXT: vmovaps %xmm1, 16(%r8)1254; AVX-NEXT: vmovaps %xmm3, (%r8)1255; AVX-NEXT: vmovaps %xmm4, 432(%r8)1256; AVX-NEXT: vmovaps %xmm6, 416(%r8)1257; AVX-NEXT: vmovaps %xmm5, 400(%r8)1258; AVX-NEXT: vmovaps %xmm7, 384(%r8)1259; AVX-NEXT: vmovaps %xmm14, 176(%r8)1260; AVX-NEXT: vmovaps %xmm13, 160(%r8)1261; AVX-NEXT: vmovaps %xmm8, 144(%r8)1262; AVX-NEXT: vmovaps %xmm12, 128(%r8)1263; AVX-NEXT: vmovaps %xmm11, 304(%r8)1264; AVX-NEXT: vmovaps %xmm10, 288(%r8)1265; AVX-NEXT: vmovaps %xmm9, 272(%r8)1266; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1267; AVX-NEXT: vmovaps %xmm0, 256(%r8)1268; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1269; AVX-NEXT: vmovaps %ymm0, 480(%r8)1270; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1271; AVX-NEXT: vmovaps %ymm0, 448(%r8)1272; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1273; AVX-NEXT: vmovaps %ymm0, 352(%r8)1274; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1275; AVX-NEXT: vmovaps %ymm0, 320(%r8)1276; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1277; AVX-NEXT: vmovaps %ymm0, 224(%r8)1278; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1279; AVX-NEXT: vmovaps %ymm0, 192(%r8)1280; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1281; AVX-NEXT: vmovaps %ymm0, 96(%r8)1282; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1283; AVX-NEXT: vmovaps %ymm0, 64(%r8)1284; AVX-NEXT: addq $152, %rsp1285; AVX-NEXT: vzeroupper1286; AVX-NEXT: retq1287;1288; AVX2-LABEL: store_i64_stride4_vf16:1289; AVX2: # %bb.0:1290; AVX2-NEXT: pushq %rax1291; AVX2-NEXT: vmovaps 32(%rdi), %ymm41292; AVX2-NEXT: vmovaps (%rdi), %ymm81293; AVX2-NEXT: vmovaps 32(%rsi), %ymm51294; AVX2-NEXT: vmovaps (%rsi), %ymm91295; AVX2-NEXT: vmovaps (%rdx), %ymm111296; AVX2-NEXT: vmovaps (%rcx), %ymm131297; AVX2-NEXT: vmovaps (%rsi), %xmm01298; AVX2-NEXT: vmovaps 32(%rsi), %xmm21299; AVX2-NEXT: vmovaps 64(%rsi), %xmm61300; AVX2-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm11301; AVX2-NEXT: vmovaps (%rdi), %xmm01302; AVX2-NEXT: vmovaps 32(%rdi), %xmm31303; AVX2-NEXT: vmovaps 64(%rdi), %xmm71304; AVX2-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm101305; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]1306; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1307; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm1[1],ymm10[3],ymm1[3]1308; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1309; AVX2-NEXT: vinsertf128 $1, 32(%rcx), %ymm2, %ymm101310; AVX2-NEXT: vinsertf128 $1, 32(%rdx), %ymm3, %ymm31311; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm10[0],ymm3[2],ymm10[2]1312; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1313; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm10[1],ymm3[3],ymm10[3]1314; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1315; AVX2-NEXT: vinsertf128 $1, 64(%rcx), %ymm6, %ymm101316; AVX2-NEXT: vinsertf128 $1, 64(%rdx), %ymm7, %ymm71317; AVX2-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]1318; AVX2-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]1319; AVX2-NEXT: vmovaps 96(%rsi), %xmm101320; AVX2-NEXT: vinsertf128 $1, 96(%rcx), %ymm10, %ymm121321; AVX2-NEXT: vmovaps 96(%rdi), %xmm101322; AVX2-NEXT: vinsertf128 $1, 96(%rdx), %ymm10, %ymm141323; AVX2-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm14[0],ymm12[0],ymm14[2],ymm12[2]1324; AVX2-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm12[1],ymm14[3],ymm12[3]1325; AVX2-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]1326; AVX2-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]1327; AVX2-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm15[2,3],ymm14[2,3]1328; AVX2-NEXT: vmovaps 32(%rdx), %ymm151329; AVX2-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]1330; AVX2-NEXT: vmovaps 32(%rcx), %ymm131331; AVX2-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm9[1],ymm8[3],ymm9[3]1332; AVX2-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm8[2,3],ymm11[2,3]1333; AVX2-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm15[0],ymm13[0],ymm15[2],ymm13[2]1334; AVX2-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]1335; AVX2-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm11[2,3],ymm9[2,3]1336; AVX2-NEXT: vmovaps 64(%rdi), %ymm111337; AVX2-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm15[1],ymm13[1],ymm15[3],ymm13[3]1338; AVX2-NEXT: vmovaps 64(%rsi), %ymm151339; AVX2-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]1340; AVX2-NEXT: vmovaps 64(%rdx), %ymm51341; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm13[2,3]1342; AVX2-NEXT: vmovaps 64(%rcx), %ymm131343; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm13[0],ymm5[2],ymm13[2]1344; AVX2-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]1345; AVX2-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm0[2,3]1346; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm13[1],ymm5[3],ymm13[3]1347; AVX2-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm15[1],ymm11[3],ymm15[3]1348; AVX2-NEXT: vmovaps 96(%rdi), %ymm111349; AVX2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]1350; AVX2-NEXT: vmovaps 96(%rsi), %ymm51351; AVX2-NEXT: vmovaps 96(%rdx), %ymm131352; AVX2-NEXT: vmovaps 96(%rcx), %ymm151353; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]1354; AVX2-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm11[0],ymm5[0],ymm11[2],ymm5[2]1355; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]1356; AVX2-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]1357; AVX2-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]1358; AVX2-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]1359; AVX2-NEXT: vmovaps %ymm3, 480(%r8)1360; AVX2-NEXT: vmovaps %ymm0, 448(%r8)1361; AVX2-NEXT: vmovaps %ymm1, 352(%r8)1362; AVX2-NEXT: vmovaps %ymm2, 320(%r8)1363; AVX2-NEXT: vmovaps %ymm4, 224(%r8)1364; AVX2-NEXT: vmovaps %ymm9, 192(%r8)1365; AVX2-NEXT: vmovaps %ymm8, 96(%r8)1366; AVX2-NEXT: vmovaps %ymm14, 64(%r8)1367; AVX2-NEXT: vmovaps %ymm12, 416(%r8)1368; AVX2-NEXT: vmovaps %ymm10, 384(%r8)1369; AVX2-NEXT: vmovaps %ymm7, 288(%r8)1370; AVX2-NEXT: vmovaps %ymm6, 256(%r8)1371; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1372; AVX2-NEXT: vmovaps %ymm0, 160(%r8)1373; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1374; AVX2-NEXT: vmovaps %ymm0, 128(%r8)1375; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1376; AVX2-NEXT: vmovaps %ymm0, 32(%r8)1377; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1378; AVX2-NEXT: vmovaps %ymm0, (%r8)1379; AVX2-NEXT: popq %rax1380; AVX2-NEXT: vzeroupper1381; AVX2-NEXT: retq1382;1383; AVX2-FP-LABEL: store_i64_stride4_vf16:1384; AVX2-FP: # %bb.0:1385; AVX2-FP-NEXT: pushq %rax1386; AVX2-FP-NEXT: vmovaps 32(%rdi), %ymm41387; AVX2-FP-NEXT: vmovaps (%rdi), %ymm81388; AVX2-FP-NEXT: vmovaps 32(%rsi), %ymm51389; AVX2-FP-NEXT: vmovaps (%rsi), %ymm91390; AVX2-FP-NEXT: vmovaps (%rdx), %ymm111391; AVX2-FP-NEXT: vmovaps (%rcx), %ymm131392; AVX2-FP-NEXT: vmovaps (%rsi), %xmm01393; AVX2-FP-NEXT: vmovaps 32(%rsi), %xmm21394; AVX2-FP-NEXT: vmovaps 64(%rsi), %xmm61395; AVX2-FP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm11396; AVX2-FP-NEXT: vmovaps (%rdi), %xmm01397; AVX2-FP-NEXT: vmovaps 32(%rdi), %xmm31398; AVX2-FP-NEXT: vmovaps 64(%rdi), %xmm71399; AVX2-FP-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm101400; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]1401; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1402; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm1[1],ymm10[3],ymm1[3]1403; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1404; AVX2-FP-NEXT: vinsertf128 $1, 32(%rcx), %ymm2, %ymm101405; AVX2-FP-NEXT: vinsertf128 $1, 32(%rdx), %ymm3, %ymm31406; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm10[0],ymm3[2],ymm10[2]1407; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1408; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm10[1],ymm3[3],ymm10[3]1409; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1410; AVX2-FP-NEXT: vinsertf128 $1, 64(%rcx), %ymm6, %ymm101411; AVX2-FP-NEXT: vinsertf128 $1, 64(%rdx), %ymm7, %ymm71412; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]1413; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]1414; AVX2-FP-NEXT: vmovaps 96(%rsi), %xmm101415; AVX2-FP-NEXT: vinsertf128 $1, 96(%rcx), %ymm10, %ymm121416; AVX2-FP-NEXT: vmovaps 96(%rdi), %xmm101417; AVX2-FP-NEXT: vinsertf128 $1, 96(%rdx), %ymm10, %ymm141418; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm14[0],ymm12[0],ymm14[2],ymm12[2]1419; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm12[1],ymm14[3],ymm12[3]1420; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]1421; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]1422; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm15[2,3],ymm14[2,3]1423; AVX2-FP-NEXT: vmovaps 32(%rdx), %ymm151424; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]1425; AVX2-FP-NEXT: vmovaps 32(%rcx), %ymm131426; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm9[1],ymm8[3],ymm9[3]1427; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm8[2,3],ymm11[2,3]1428; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm15[0],ymm13[0],ymm15[2],ymm13[2]1429; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]1430; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm11[2,3],ymm9[2,3]1431; AVX2-FP-NEXT: vmovaps 64(%rdi), %ymm111432; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm15[1],ymm13[1],ymm15[3],ymm13[3]1433; AVX2-FP-NEXT: vmovaps 64(%rsi), %ymm151434; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]1435; AVX2-FP-NEXT: vmovaps 64(%rdx), %ymm51436; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm13[2,3]1437; AVX2-FP-NEXT: vmovaps 64(%rcx), %ymm131438; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm13[0],ymm5[2],ymm13[2]1439; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]1440; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm0[2,3]1441; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm13[1],ymm5[3],ymm13[3]1442; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm15[1],ymm11[3],ymm15[3]1443; AVX2-FP-NEXT: vmovaps 96(%rdi), %ymm111444; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]1445; AVX2-FP-NEXT: vmovaps 96(%rsi), %ymm51446; AVX2-FP-NEXT: vmovaps 96(%rdx), %ymm131447; AVX2-FP-NEXT: vmovaps 96(%rcx), %ymm151448; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]1449; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm11[0],ymm5[0],ymm11[2],ymm5[2]1450; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]1451; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]1452; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]1453; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]1454; AVX2-FP-NEXT: vmovaps %ymm3, 480(%r8)1455; AVX2-FP-NEXT: vmovaps %ymm0, 448(%r8)1456; AVX2-FP-NEXT: vmovaps %ymm1, 352(%r8)1457; AVX2-FP-NEXT: vmovaps %ymm2, 320(%r8)1458; AVX2-FP-NEXT: vmovaps %ymm4, 224(%r8)1459; AVX2-FP-NEXT: vmovaps %ymm9, 192(%r8)1460; AVX2-FP-NEXT: vmovaps %ymm8, 96(%r8)1461; AVX2-FP-NEXT: vmovaps %ymm14, 64(%r8)1462; AVX2-FP-NEXT: vmovaps %ymm12, 416(%r8)1463; AVX2-FP-NEXT: vmovaps %ymm10, 384(%r8)1464; AVX2-FP-NEXT: vmovaps %ymm7, 288(%r8)1465; AVX2-FP-NEXT: vmovaps %ymm6, 256(%r8)1466; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1467; AVX2-FP-NEXT: vmovaps %ymm0, 160(%r8)1468; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1469; AVX2-FP-NEXT: vmovaps %ymm0, 128(%r8)1470; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1471; AVX2-FP-NEXT: vmovaps %ymm0, 32(%r8)1472; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1473; AVX2-FP-NEXT: vmovaps %ymm0, (%r8)1474; AVX2-FP-NEXT: popq %rax1475; AVX2-FP-NEXT: vzeroupper1476; AVX2-FP-NEXT: retq1477;1478; AVX2-FCP-LABEL: store_i64_stride4_vf16:1479; AVX2-FCP: # %bb.0:1480; AVX2-FCP-NEXT: pushq %rax1481; AVX2-FCP-NEXT: vmovaps 32(%rdi), %ymm41482; AVX2-FCP-NEXT: vmovaps (%rdi), %ymm81483; AVX2-FCP-NEXT: vmovaps 32(%rsi), %ymm51484; AVX2-FCP-NEXT: vmovaps (%rsi), %ymm91485; AVX2-FCP-NEXT: vmovaps (%rdx), %ymm111486; AVX2-FCP-NEXT: vmovaps (%rcx), %ymm131487; AVX2-FCP-NEXT: vmovaps (%rsi), %xmm01488; AVX2-FCP-NEXT: vmovaps 32(%rsi), %xmm21489; AVX2-FCP-NEXT: vmovaps 64(%rsi), %xmm61490; AVX2-FCP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm11491; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm01492; AVX2-FCP-NEXT: vmovaps 32(%rdi), %xmm31493; AVX2-FCP-NEXT: vmovaps 64(%rdi), %xmm71494; AVX2-FCP-NEXT: vinsertf128 $1, (%rdx), %ymm0, %ymm101495; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]1496; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1497; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm1[1],ymm10[3],ymm1[3]1498; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1499; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rcx), %ymm2, %ymm101500; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rdx), %ymm3, %ymm31501; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm10[0],ymm3[2],ymm10[2]1502; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1503; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm10[1],ymm3[3],ymm10[3]1504; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1505; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rcx), %ymm6, %ymm101506; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rdx), %ymm7, %ymm71507; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]1508; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]1509; AVX2-FCP-NEXT: vmovaps 96(%rsi), %xmm101510; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rcx), %ymm10, %ymm121511; AVX2-FCP-NEXT: vmovaps 96(%rdi), %xmm101512; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rdx), %ymm10, %ymm141513; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm10 = ymm14[0],ymm12[0],ymm14[2],ymm12[2]1514; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm12[1],ymm14[3],ymm12[3]1515; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]1516; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm8[0],ymm9[0],ymm8[2],ymm9[2]1517; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm14 = ymm15[2,3],ymm14[2,3]1518; AVX2-FCP-NEXT: vmovaps 32(%rdx), %ymm151519; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]1520; AVX2-FCP-NEXT: vmovaps 32(%rcx), %ymm131521; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm9[1],ymm8[3],ymm9[3]1522; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm8[2,3],ymm11[2,3]1523; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm9 = ymm15[0],ymm13[0],ymm15[2],ymm13[2]1524; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]1525; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm11[2,3],ymm9[2,3]1526; AVX2-FCP-NEXT: vmovaps 64(%rdi), %ymm111527; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm15[1],ymm13[1],ymm15[3],ymm13[3]1528; AVX2-FCP-NEXT: vmovaps 64(%rsi), %ymm151529; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]1530; AVX2-FCP-NEXT: vmovaps 64(%rdx), %ymm51531; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm13[2,3]1532; AVX2-FCP-NEXT: vmovaps 64(%rcx), %ymm131533; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm13[0],ymm5[2],ymm13[2]1534; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]1535; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm0[2,3]1536; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm13[1],ymm5[3],ymm13[3]1537; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm15[1],ymm11[3],ymm15[3]1538; AVX2-FCP-NEXT: vmovaps 96(%rdi), %ymm111539; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]1540; AVX2-FCP-NEXT: vmovaps 96(%rsi), %ymm51541; AVX2-FCP-NEXT: vmovaps 96(%rdx), %ymm131542; AVX2-FCP-NEXT: vmovaps 96(%rcx), %ymm151543; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]1544; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm11[0],ymm5[0],ymm11[2],ymm5[2]1545; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm3[2,3],ymm0[2,3]1546; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]1547; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm11[1],ymm5[1],ymm11[3],ymm5[3]1548; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm5[2,3],ymm3[2,3]1549; AVX2-FCP-NEXT: vmovaps %ymm3, 480(%r8)1550; AVX2-FCP-NEXT: vmovaps %ymm0, 448(%r8)1551; AVX2-FCP-NEXT: vmovaps %ymm1, 352(%r8)1552; AVX2-FCP-NEXT: vmovaps %ymm2, 320(%r8)1553; AVX2-FCP-NEXT: vmovaps %ymm4, 224(%r8)1554; AVX2-FCP-NEXT: vmovaps %ymm9, 192(%r8)1555; AVX2-FCP-NEXT: vmovaps %ymm8, 96(%r8)1556; AVX2-FCP-NEXT: vmovaps %ymm14, 64(%r8)1557; AVX2-FCP-NEXT: vmovaps %ymm12, 416(%r8)1558; AVX2-FCP-NEXT: vmovaps %ymm10, 384(%r8)1559; AVX2-FCP-NEXT: vmovaps %ymm7, 288(%r8)1560; AVX2-FCP-NEXT: vmovaps %ymm6, 256(%r8)1561; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1562; AVX2-FCP-NEXT: vmovaps %ymm0, 160(%r8)1563; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1564; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%r8)1565; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1566; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%r8)1567; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1568; AVX2-FCP-NEXT: vmovaps %ymm0, (%r8)1569; AVX2-FCP-NEXT: popq %rax1570; AVX2-FCP-NEXT: vzeroupper1571; AVX2-FCP-NEXT: retq1572;1573; AVX512-LABEL: store_i64_stride4_vf16:1574; AVX512: # %bb.0:1575; AVX512-NEXT: vmovdqa64 (%rdi), %zmm01576; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm11577; AVX512-NEXT: vmovdqa64 (%rsi), %zmm21578; AVX512-NEXT: vmovdqa64 64(%rsi), %zmm31579; AVX512-NEXT: vmovdqa64 (%rdx), %zmm41580; AVX512-NEXT: vmovdqa64 64(%rdx), %zmm51581; AVX512-NEXT: vmovdqa64 (%rcx), %zmm61582; AVX512-NEXT: vmovdqa64 64(%rcx), %zmm71583; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1584; AVX512-NEXT: vmovdqa64 %zmm4, %zmm91585; AVX512-NEXT: vpermt2q %zmm6, %zmm8, %zmm91586; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1587; AVX512-NEXT: vmovdqa64 %zmm0, %zmm111588; AVX512-NEXT: vpermt2q %zmm2, %zmm10, %zmm111589; AVX512-NEXT: movb $-52, %al1590; AVX512-NEXT: kmovw %eax, %k11591; AVX512-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1592; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1593; AVX512-NEXT: vmovdqa64 %zmm4, %zmm121594; AVX512-NEXT: vpermt2q %zmm6, %zmm9, %zmm121595; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1596; AVX512-NEXT: vmovdqa64 %zmm0, %zmm141597; AVX512-NEXT: vpermt2q %zmm2, %zmm13, %zmm141598; AVX512-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1599; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1600; AVX512-NEXT: vmovdqa64 %zmm4, %zmm151601; AVX512-NEXT: vpermt2q %zmm6, %zmm12, %zmm151602; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1603; AVX512-NEXT: vmovdqa64 %zmm0, %zmm171604; AVX512-NEXT: vpermt2q %zmm2, %zmm16, %zmm171605; AVX512-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1606; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1607; AVX512-NEXT: vpermt2q %zmm6, %zmm15, %zmm41608; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1609; AVX512-NEXT: vpermt2q %zmm2, %zmm6, %zmm01610; AVX512-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1611; AVX512-NEXT: vpermi2q %zmm7, %zmm5, %zmm81612; AVX512-NEXT: vpermi2q %zmm3, %zmm1, %zmm101613; AVX512-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1614; AVX512-NEXT: vpermi2q %zmm7, %zmm5, %zmm91615; AVX512-NEXT: vpermi2q %zmm3, %zmm1, %zmm131616; AVX512-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1617; AVX512-NEXT: vpermi2q %zmm7, %zmm5, %zmm121618; AVX512-NEXT: vpermi2q %zmm3, %zmm1, %zmm161619; AVX512-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1620; AVX512-NEXT: vpermt2q %zmm7, %zmm15, %zmm51621; AVX512-NEXT: vpermt2q %zmm3, %zmm6, %zmm11622; AVX512-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1623; AVX512-NEXT: vmovdqa64 %zmm1, 384(%r8)1624; AVX512-NEXT: vmovdqa64 %zmm16, 448(%r8)1625; AVX512-NEXT: vmovdqa64 %zmm13, 256(%r8)1626; AVX512-NEXT: vmovdqa64 %zmm10, 320(%r8)1627; AVX512-NEXT: vmovdqa64 %zmm0, 128(%r8)1628; AVX512-NEXT: vmovdqa64 %zmm17, 192(%r8)1629; AVX512-NEXT: vmovdqa64 %zmm14, (%r8)1630; AVX512-NEXT: vmovdqa64 %zmm11, 64(%r8)1631; AVX512-NEXT: vzeroupper1632; AVX512-NEXT: retq1633;1634; AVX512-FCP-LABEL: store_i64_stride4_vf16:1635; AVX512-FCP: # %bb.0:1636; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm01637; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11638; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm21639; AVX512-FCP-NEXT: vmovdqa64 64(%rsi), %zmm31640; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm41641; AVX512-FCP-NEXT: vmovdqa64 64(%rdx), %zmm51642; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm61643; AVX512-FCP-NEXT: vmovdqa64 64(%rcx), %zmm71644; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1645; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm91646; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm8, %zmm91647; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1648; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm111649; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm10, %zmm111650; AVX512-FCP-NEXT: movb $-52, %al1651; AVX512-FCP-NEXT: kmovw %eax, %k11652; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1653; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1654; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm121655; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm9, %zmm121656; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1657; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm141658; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm141659; AVX512-FCP-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1660; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1661; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm151662; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm12, %zmm151663; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1664; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm171665; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm16, %zmm171666; AVX512-FCP-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1667; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1668; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm15, %zmm41669; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1670; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm6, %zmm01671; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1672; AVX512-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm81673; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm101674; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1675; AVX512-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm91676; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm131677; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1678; AVX512-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm121679; AVX512-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm161680; AVX512-FCP-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1681; AVX512-FCP-NEXT: vpermt2q %zmm7, %zmm15, %zmm51682; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm6, %zmm11683; AVX512-FCP-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1684; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)1685; AVX512-FCP-NEXT: vmovdqa64 %zmm16, 448(%r8)1686; AVX512-FCP-NEXT: vmovdqa64 %zmm13, 256(%r8)1687; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 320(%r8)1688; AVX512-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)1689; AVX512-FCP-NEXT: vmovdqa64 %zmm17, 192(%r8)1690; AVX512-FCP-NEXT: vmovdqa64 %zmm14, (%r8)1691; AVX512-FCP-NEXT: vmovdqa64 %zmm11, 64(%r8)1692; AVX512-FCP-NEXT: vzeroupper1693; AVX512-FCP-NEXT: retq1694;1695; AVX512DQ-LABEL: store_i64_stride4_vf16:1696; AVX512DQ: # %bb.0:1697; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm01698; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm11699; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm21700; AVX512DQ-NEXT: vmovdqa64 64(%rsi), %zmm31701; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm41702; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %zmm51703; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm61704; AVX512DQ-NEXT: vmovdqa64 64(%rcx), %zmm71705; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1706; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm91707; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm8, %zmm91708; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1709; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm111710; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm10, %zmm111711; AVX512DQ-NEXT: movb $-52, %al1712; AVX512DQ-NEXT: kmovw %eax, %k11713; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1714; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1715; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm121716; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm9, %zmm121717; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1718; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm141719; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm13, %zmm141720; AVX512DQ-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1721; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1722; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm151723; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm12, %zmm151724; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1725; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm171726; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm16, %zmm171727; AVX512DQ-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1728; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1729; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm15, %zmm41730; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1731; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm6, %zmm01732; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1733; AVX512DQ-NEXT: vpermi2q %zmm7, %zmm5, %zmm81734; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm1, %zmm101735; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1736; AVX512DQ-NEXT: vpermi2q %zmm7, %zmm5, %zmm91737; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm1, %zmm131738; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1739; AVX512DQ-NEXT: vpermi2q %zmm7, %zmm5, %zmm121740; AVX512DQ-NEXT: vpermi2q %zmm3, %zmm1, %zmm161741; AVX512DQ-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1742; AVX512DQ-NEXT: vpermt2q %zmm7, %zmm15, %zmm51743; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm6, %zmm11744; AVX512DQ-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1745; AVX512DQ-NEXT: vmovdqa64 %zmm1, 384(%r8)1746; AVX512DQ-NEXT: vmovdqa64 %zmm16, 448(%r8)1747; AVX512DQ-NEXT: vmovdqa64 %zmm13, 256(%r8)1748; AVX512DQ-NEXT: vmovdqa64 %zmm10, 320(%r8)1749; AVX512DQ-NEXT: vmovdqa64 %zmm0, 128(%r8)1750; AVX512DQ-NEXT: vmovdqa64 %zmm17, 192(%r8)1751; AVX512DQ-NEXT: vmovdqa64 %zmm14, (%r8)1752; AVX512DQ-NEXT: vmovdqa64 %zmm11, 64(%r8)1753; AVX512DQ-NEXT: vzeroupper1754; AVX512DQ-NEXT: retq1755;1756; AVX512DQ-FCP-LABEL: store_i64_stride4_vf16:1757; AVX512DQ-FCP: # %bb.0:1758; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm01759; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11760; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm21761; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rsi), %zmm31762; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm41763; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdx), %zmm51764; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm61765; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rcx), %zmm71766; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1767; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm91768; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm8, %zmm91769; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1770; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm111771; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm10, %zmm111772; AVX512DQ-FCP-NEXT: movb $-52, %al1773; AVX512DQ-FCP-NEXT: kmovw %eax, %k11774; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1775; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1776; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm121777; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm9, %zmm121778; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1779; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm141780; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm141781; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1782; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1783; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm151784; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm12, %zmm151785; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1786; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm171787; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm16, %zmm171788; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1789; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1790; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm15, %zmm41791; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1792; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm6, %zmm01793; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1794; AVX512DQ-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm81795; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm101796; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1797; AVX512DQ-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm91798; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm131799; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1800; AVX512DQ-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm121801; AVX512DQ-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm161802; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1803; AVX512DQ-FCP-NEXT: vpermt2q %zmm7, %zmm15, %zmm51804; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm6, %zmm11805; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1806; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)1807; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, 448(%r8)1808; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, 256(%r8)1809; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 320(%r8)1810; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)1811; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, 192(%r8)1812; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, (%r8)1813; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, 64(%r8)1814; AVX512DQ-FCP-NEXT: vzeroupper1815; AVX512DQ-FCP-NEXT: retq1816;1817; AVX512BW-LABEL: store_i64_stride4_vf16:1818; AVX512BW: # %bb.0:1819; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm01820; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm11821; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm21822; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm31823; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm41824; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm51825; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm61826; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm71827; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1828; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm91829; AVX512BW-NEXT: vpermt2q %zmm6, %zmm8, %zmm91830; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1831; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm111832; AVX512BW-NEXT: vpermt2q %zmm2, %zmm10, %zmm111833; AVX512BW-NEXT: movb $-52, %al1834; AVX512BW-NEXT: kmovd %eax, %k11835; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1836; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1837; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm121838; AVX512BW-NEXT: vpermt2q %zmm6, %zmm9, %zmm121839; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1840; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm141841; AVX512BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm141842; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1843; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1844; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm151845; AVX512BW-NEXT: vpermt2q %zmm6, %zmm12, %zmm151846; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1847; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm171848; AVX512BW-NEXT: vpermt2q %zmm2, %zmm16, %zmm171849; AVX512BW-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1850; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1851; AVX512BW-NEXT: vpermt2q %zmm6, %zmm15, %zmm41852; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1853; AVX512BW-NEXT: vpermt2q %zmm2, %zmm6, %zmm01854; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1855; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm81856; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm101857; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1858; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm91859; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm131860; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1861; AVX512BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm121862; AVX512BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm161863; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1864; AVX512BW-NEXT: vpermt2q %zmm7, %zmm15, %zmm51865; AVX512BW-NEXT: vpermt2q %zmm3, %zmm6, %zmm11866; AVX512BW-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1867; AVX512BW-NEXT: vmovdqa64 %zmm1, 384(%r8)1868; AVX512BW-NEXT: vmovdqa64 %zmm16, 448(%r8)1869; AVX512BW-NEXT: vmovdqa64 %zmm13, 256(%r8)1870; AVX512BW-NEXT: vmovdqa64 %zmm10, 320(%r8)1871; AVX512BW-NEXT: vmovdqa64 %zmm0, 128(%r8)1872; AVX512BW-NEXT: vmovdqa64 %zmm17, 192(%r8)1873; AVX512BW-NEXT: vmovdqa64 %zmm14, (%r8)1874; AVX512BW-NEXT: vmovdqa64 %zmm11, 64(%r8)1875; AVX512BW-NEXT: vzeroupper1876; AVX512BW-NEXT: retq1877;1878; AVX512BW-FCP-LABEL: store_i64_stride4_vf16:1879; AVX512BW-FCP: # %bb.0:1880; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm01881; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm11882; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm21883; AVX512BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm31884; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm41885; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm51886; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm61887; AVX512BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm71888; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1889; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm91890; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm8, %zmm91891; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1892; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm111893; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm10, %zmm111894; AVX512BW-FCP-NEXT: movb $-52, %al1895; AVX512BW-FCP-NEXT: kmovd %eax, %k11896; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1897; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1898; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm121899; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm9, %zmm121900; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1901; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm141902; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm141903; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1904; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1905; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm151906; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm12, %zmm151907; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1908; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm171909; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm16, %zmm171910; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1911; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1912; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm15, %zmm41913; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1914; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm6, %zmm01915; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1916; AVX512BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm81917; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm101918; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1919; AVX512BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm91920; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm131921; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1922; AVX512BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm121923; AVX512BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm161924; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1925; AVX512BW-FCP-NEXT: vpermt2q %zmm7, %zmm15, %zmm51926; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm6, %zmm11927; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1928; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)1929; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, 448(%r8)1930; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, 256(%r8)1931; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 320(%r8)1932; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)1933; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, 192(%r8)1934; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, (%r8)1935; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, 64(%r8)1936; AVX512BW-FCP-NEXT: vzeroupper1937; AVX512BW-FCP-NEXT: retq1938;1939; AVX512DQ-BW-LABEL: store_i64_stride4_vf16:1940; AVX512DQ-BW: # %bb.0:1941; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm01942; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm11943; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm21944; AVX512DQ-BW-NEXT: vmovdqa64 64(%rsi), %zmm31945; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm41946; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %zmm51947; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm61948; AVX512DQ-BW-NEXT: vmovdqa64 64(%rcx), %zmm71949; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]1950; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm91951; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm8, %zmm91952; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]1953; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm111954; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm10, %zmm111955; AVX512DQ-BW-NEXT: movb $-52, %al1956; AVX512DQ-BW-NEXT: kmovd %eax, %k11957; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}1958; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]1959; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm121960; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm9, %zmm121961; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]1962; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm141963; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm141964; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}1965; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]1966; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm151967; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm12, %zmm151968; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]1969; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm171970; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm16, %zmm171971; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}1972; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]1973; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm15, %zmm41974; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]1975; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm6, %zmm01976; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}1977; AVX512DQ-BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm81978; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm101979; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}1980; AVX512DQ-BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm91981; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm131982; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}1983; AVX512DQ-BW-NEXT: vpermi2q %zmm7, %zmm5, %zmm121984; AVX512DQ-BW-NEXT: vpermi2q %zmm3, %zmm1, %zmm161985; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}1986; AVX512DQ-BW-NEXT: vpermt2q %zmm7, %zmm15, %zmm51987; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm6, %zmm11988; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}1989; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, 384(%r8)1990; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, 448(%r8)1991; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, 256(%r8)1992; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, 320(%r8)1993; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 128(%r8)1994; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 192(%r8)1995; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, (%r8)1996; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 64(%r8)1997; AVX512DQ-BW-NEXT: vzeroupper1998; AVX512DQ-BW-NEXT: retq1999;2000; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf16:2001; AVX512DQ-BW-FCP: # %bb.0:2002; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm02003; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm12004; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm22005; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm32006; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm42007; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm52008; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm62009; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm72010; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,3,11]2011; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm92012; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm8, %zmm92013; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm10 = [2,10,0,0,3,11,0,0]2014; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm112015; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm10, %zmm112016; AVX512DQ-BW-FCP-NEXT: movb $-52, %al2017; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k12018; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm11 {%k1}2019; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]2020; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm122021; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm9, %zmm122022; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,8,0,0,1,9,0,0]2023; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm142024; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm142025; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm14 {%k1}2026; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm12 = [0,0,6,14,0,0,7,15]2027; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm152028; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm12, %zmm152029; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,7,15,0,0]2030; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm172031; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm16, %zmm172032; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, %zmm17 {%k1}2033; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]2034; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm15, %zmm42035; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm6 = [4,12,0,0,5,13,0,0]2036; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm6, %zmm02037; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm0 {%k1}2038; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm82039; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm102040; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm10 {%k1}2041; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm92042; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm132043; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm13 {%k1}2044; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm7, %zmm5, %zmm122045; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm3, %zmm1, %zmm162046; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm16 {%k1}2047; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm7, %zmm15, %zmm52048; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm6, %zmm12049; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, %zmm1 {%k1}2050; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)2051; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, 448(%r8)2052; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, 256(%r8)2053; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 320(%r8)2054; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)2055; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, 192(%r8)2056; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, (%r8)2057; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, 64(%r8)2058; AVX512DQ-BW-FCP-NEXT: vzeroupper2059; AVX512DQ-BW-FCP-NEXT: retq2060 %in.vec0 = load <16 x i64>, ptr %in.vecptr0, align 642061 %in.vec1 = load <16 x i64>, ptr %in.vecptr1, align 642062 %in.vec2 = load <16 x i64>, ptr %in.vecptr2, align 642063 %in.vec3 = load <16 x i64>, ptr %in.vecptr3, align 642064 %1 = shufflevector <16 x i64> %in.vec0, <16 x i64> %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>2065 %2 = shufflevector <16 x i64> %in.vec2, <16 x i64> %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>2066 %3 = shufflevector <32 x i64> %1, <32 x i64> %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>2067 %interleaved.vec = shufflevector <64 x i64> %3, <64 x i64> poison, <64 x i32> <i32 0, i32 16, i32 32, i32 48, i32 1, i32 17, i32 33, i32 49, i32 2, i32 18, i32 34, i32 50, i32 3, i32 19, i32 35, i32 51, i32 4, i32 20, i32 36, i32 52, i32 5, i32 21, i32 37, i32 53, i32 6, i32 22, i32 38, i32 54, i32 7, i32 23, i32 39, i32 55, i32 8, i32 24, i32 40, i32 56, i32 9, i32 25, i32 41, i32 57, i32 10, i32 26, i32 42, i32 58, i32 11, i32 27, i32 43, i32 59, i32 12, i32 28, i32 44, i32 60, i32 13, i32 29, i32 45, i32 61, i32 14, i32 30, i32 46, i32 62, i32 15, i32 31, i32 47, i32 63>2068 store <64 x i64> %interleaved.vec, ptr %out.vec, align 642069 ret void2070}2071 2072define void @store_i64_stride4_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {2073; SSE-LABEL: store_i64_stride4_vf32:2074; SSE: # %bb.0:2075; SSE-NEXT: subq $664, %rsp # imm = 0x2982076; SSE-NEXT: movaps (%rdi), %xmm72077; SSE-NEXT: movaps 16(%rdi), %xmm82078; SSE-NEXT: movaps 32(%rdi), %xmm92079; SSE-NEXT: movaps 48(%rdi), %xmm102080; SSE-NEXT: movaps (%rsi), %xmm32081; SSE-NEXT: movaps 16(%rsi), %xmm22082; SSE-NEXT: movaps 32(%rsi), %xmm12083; SSE-NEXT: movaps 48(%rsi), %xmm02084; SSE-NEXT: movaps (%rdx), %xmm112085; SSE-NEXT: movaps 16(%rdx), %xmm122086; SSE-NEXT: movaps 32(%rdx), %xmm132087; SSE-NEXT: movaps 48(%rdx), %xmm142088; SSE-NEXT: movaps (%rcx), %xmm42089; SSE-NEXT: movaps 16(%rcx), %xmm52090; SSE-NEXT: movaps 32(%rcx), %xmm62091; SSE-NEXT: movaps %xmm7, %xmm152092; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]2093; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2094; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]2095; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2096; SSE-NEXT: movaps %xmm11, %xmm72097; SSE-NEXT: movlhps {{.*#+}} xmm7 = xmm7[0],xmm4[0]2098; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2099; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]2100; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2101; SSE-NEXT: movaps %xmm8, %xmm32102; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]2103; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2104; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]2105; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2106; SSE-NEXT: movaps %xmm12, %xmm22107; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm5[0]2108; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2109; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]2110; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2111; SSE-NEXT: movaps %xmm9, %xmm22112; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]2113; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2114; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]2115; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2116; SSE-NEXT: movaps %xmm13, %xmm12117; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]2118; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2119; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]2120; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2121; SSE-NEXT: movaps %xmm10, %xmm12122; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2123; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2124; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]2125; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2126; SSE-NEXT: movaps 48(%rcx), %xmm02127; SSE-NEXT: movaps %xmm14, %xmm12128; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2129; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2130; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]2131; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2132; SSE-NEXT: movaps 64(%rdi), %xmm22133; SSE-NEXT: movaps 64(%rsi), %xmm02134; SSE-NEXT: movaps %xmm2, %xmm12135; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2136; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2137; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2138; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2139; SSE-NEXT: movaps 64(%rdx), %xmm22140; SSE-NEXT: movaps 64(%rcx), %xmm02141; SSE-NEXT: movaps %xmm2, %xmm12142; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2143; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2144; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2145; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2146; SSE-NEXT: movaps 80(%rdi), %xmm22147; SSE-NEXT: movaps 80(%rsi), %xmm02148; SSE-NEXT: movaps %xmm2, %xmm12149; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2150; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2151; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2152; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2153; SSE-NEXT: movaps 80(%rdx), %xmm22154; SSE-NEXT: movaps 80(%rcx), %xmm02155; SSE-NEXT: movaps %xmm2, %xmm12156; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2157; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2158; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2159; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2160; SSE-NEXT: movaps 96(%rdi), %xmm22161; SSE-NEXT: movaps 96(%rsi), %xmm02162; SSE-NEXT: movaps %xmm2, %xmm12163; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2164; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2165; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2166; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2167; SSE-NEXT: movaps 96(%rdx), %xmm22168; SSE-NEXT: movaps 96(%rcx), %xmm02169; SSE-NEXT: movaps %xmm2, %xmm12170; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2171; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2172; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2173; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2174; SSE-NEXT: movaps 112(%rdi), %xmm22175; SSE-NEXT: movaps 112(%rsi), %xmm02176; SSE-NEXT: movaps %xmm2, %xmm12177; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2178; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2179; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2180; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2181; SSE-NEXT: movaps 112(%rdx), %xmm22182; SSE-NEXT: movaps 112(%rcx), %xmm02183; SSE-NEXT: movaps %xmm2, %xmm12184; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2185; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2186; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2187; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2188; SSE-NEXT: movaps 128(%rdi), %xmm22189; SSE-NEXT: movaps 128(%rsi), %xmm02190; SSE-NEXT: movaps %xmm2, %xmm12191; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2192; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2193; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2194; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2195; SSE-NEXT: movaps 128(%rdx), %xmm22196; SSE-NEXT: movaps 128(%rcx), %xmm02197; SSE-NEXT: movaps %xmm2, %xmm12198; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2199; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2200; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2201; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2202; SSE-NEXT: movaps 144(%rdi), %xmm22203; SSE-NEXT: movaps 144(%rsi), %xmm02204; SSE-NEXT: movaps %xmm2, %xmm12205; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2206; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2207; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2208; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2209; SSE-NEXT: movaps 144(%rdx), %xmm22210; SSE-NEXT: movaps 144(%rcx), %xmm02211; SSE-NEXT: movaps %xmm2, %xmm12212; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2213; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2214; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2215; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2216; SSE-NEXT: movaps 160(%rdi), %xmm22217; SSE-NEXT: movaps 160(%rsi), %xmm02218; SSE-NEXT: movaps %xmm2, %xmm12219; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2220; SSE-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill2221; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2222; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2223; SSE-NEXT: movaps 160(%rdx), %xmm22224; SSE-NEXT: movaps 160(%rcx), %xmm02225; SSE-NEXT: movaps %xmm2, %xmm12226; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2227; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2228; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2229; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2230; SSE-NEXT: movaps 176(%rdi), %xmm22231; SSE-NEXT: movaps 176(%rsi), %xmm02232; SSE-NEXT: movaps %xmm2, %xmm12233; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2234; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2235; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]2236; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2237; SSE-NEXT: movaps 176(%rdx), %xmm142238; SSE-NEXT: movaps 176(%rcx), %xmm02239; SSE-NEXT: movaps %xmm14, %xmm12240; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2241; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2242; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]2243; SSE-NEXT: movaps 192(%rdi), %xmm122244; SSE-NEXT: movaps 192(%rsi), %xmm02245; SSE-NEXT: movaps %xmm12, %xmm12246; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2247; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2248; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]2249; SSE-NEXT: movaps 192(%rdx), %xmm152250; SSE-NEXT: movaps 192(%rcx), %xmm02251; SSE-NEXT: movaps %xmm15, %xmm12252; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]2253; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2254; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]2255; SSE-NEXT: movaps 208(%rdi), %xmm102256; SSE-NEXT: movaps 208(%rsi), %xmm02257; SSE-NEXT: movaps %xmm10, %xmm132258; SSE-NEXT: movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]2259; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]2260; SSE-NEXT: movaps 208(%rdx), %xmm72261; SSE-NEXT: movaps 208(%rcx), %xmm02262; SSE-NEXT: movaps %xmm7, %xmm112263; SSE-NEXT: movlhps {{.*#+}} xmm11 = xmm11[0],xmm0[0]2264; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm0[1]2265; SSE-NEXT: movaps 224(%rdi), %xmm82266; SSE-NEXT: movaps 224(%rsi), %xmm02267; SSE-NEXT: movaps %xmm8, %xmm92268; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]2269; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]2270; SSE-NEXT: movaps 224(%rdx), %xmm42271; SSE-NEXT: movaps 224(%rcx), %xmm02272; SSE-NEXT: movaps %xmm4, %xmm62273; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]2274; SSE-NEXT: unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm0[1]2275; SSE-NEXT: movaps 240(%rdi), %xmm22276; SSE-NEXT: movaps 240(%rsi), %xmm32277; SSE-NEXT: movaps %xmm2, %xmm52278; SSE-NEXT: movlhps {{.*#+}} xmm5 = xmm5[0],xmm3[0]2279; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]2280; SSE-NEXT: movaps 240(%rdx), %xmm32281; SSE-NEXT: movaps 240(%rcx), %xmm12282; SSE-NEXT: movaps %xmm3, %xmm02283; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]2284; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]2285; SSE-NEXT: movaps %xmm3, 1008(%r8)2286; SSE-NEXT: movaps %xmm2, 992(%r8)2287; SSE-NEXT: movaps %xmm0, 976(%r8)2288; SSE-NEXT: movaps %xmm5, 960(%r8)2289; SSE-NEXT: movaps %xmm4, 944(%r8)2290; SSE-NEXT: movaps %xmm8, 928(%r8)2291; SSE-NEXT: movaps %xmm6, 912(%r8)2292; SSE-NEXT: movaps %xmm9, 896(%r8)2293; SSE-NEXT: movaps %xmm7, 880(%r8)2294; SSE-NEXT: movaps %xmm10, 864(%r8)2295; SSE-NEXT: movaps %xmm11, 848(%r8)2296; SSE-NEXT: movaps %xmm13, 832(%r8)2297; SSE-NEXT: movaps %xmm15, 816(%r8)2298; SSE-NEXT: movaps %xmm12, 800(%r8)2299; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2300; SSE-NEXT: movaps %xmm0, 784(%r8)2301; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2302; SSE-NEXT: movaps %xmm0, 768(%r8)2303; SSE-NEXT: movaps %xmm14, 752(%r8)2304; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2305; SSE-NEXT: movaps %xmm0, 736(%r8)2306; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2307; SSE-NEXT: movaps %xmm0, 720(%r8)2308; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2309; SSE-NEXT: movaps %xmm0, 704(%r8)2310; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2311; SSE-NEXT: movaps %xmm0, 688(%r8)2312; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2313; SSE-NEXT: movaps %xmm0, 672(%r8)2314; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2315; SSE-NEXT: movaps %xmm0, 656(%r8)2316; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload2317; SSE-NEXT: movaps %xmm0, 640(%r8)2318; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2319; SSE-NEXT: movaps %xmm0, 624(%r8)2320; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2321; SSE-NEXT: movaps %xmm0, 608(%r8)2322; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2323; SSE-NEXT: movaps %xmm0, 592(%r8)2324; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2325; SSE-NEXT: movaps %xmm0, 576(%r8)2326; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2327; SSE-NEXT: movaps %xmm0, 560(%r8)2328; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2329; SSE-NEXT: movaps %xmm0, 544(%r8)2330; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2331; SSE-NEXT: movaps %xmm0, 528(%r8)2332; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2333; SSE-NEXT: movaps %xmm0, 512(%r8)2334; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2335; SSE-NEXT: movaps %xmm0, 496(%r8)2336; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2337; SSE-NEXT: movaps %xmm0, 480(%r8)2338; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2339; SSE-NEXT: movaps %xmm0, 464(%r8)2340; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2341; SSE-NEXT: movaps %xmm0, 448(%r8)2342; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2343; SSE-NEXT: movaps %xmm0, 432(%r8)2344; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2345; SSE-NEXT: movaps %xmm0, 416(%r8)2346; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2347; SSE-NEXT: movaps %xmm0, 400(%r8)2348; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2349; SSE-NEXT: movaps %xmm0, 384(%r8)2350; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2351; SSE-NEXT: movaps %xmm0, 368(%r8)2352; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2353; SSE-NEXT: movaps %xmm0, 352(%r8)2354; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2355; SSE-NEXT: movaps %xmm0, 336(%r8)2356; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2357; SSE-NEXT: movaps %xmm0, 320(%r8)2358; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2359; SSE-NEXT: movaps %xmm0, 304(%r8)2360; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2361; SSE-NEXT: movaps %xmm0, 288(%r8)2362; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2363; SSE-NEXT: movaps %xmm0, 272(%r8)2364; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2365; SSE-NEXT: movaps %xmm0, 256(%r8)2366; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2367; SSE-NEXT: movaps %xmm0, 240(%r8)2368; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2369; SSE-NEXT: movaps %xmm0, 224(%r8)2370; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2371; SSE-NEXT: movaps %xmm0, 208(%r8)2372; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2373; SSE-NEXT: movaps %xmm0, 192(%r8)2374; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2375; SSE-NEXT: movaps %xmm0, 176(%r8)2376; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2377; SSE-NEXT: movaps %xmm0, 160(%r8)2378; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2379; SSE-NEXT: movaps %xmm0, 144(%r8)2380; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2381; SSE-NEXT: movaps %xmm0, 128(%r8)2382; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2383; SSE-NEXT: movaps %xmm0, 112(%r8)2384; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2385; SSE-NEXT: movaps %xmm0, 96(%r8)2386; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2387; SSE-NEXT: movaps %xmm0, 80(%r8)2388; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2389; SSE-NEXT: movaps %xmm0, 64(%r8)2390; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2391; SSE-NEXT: movaps %xmm0, 48(%r8)2392; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2393; SSE-NEXT: movaps %xmm0, 32(%r8)2394; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2395; SSE-NEXT: movaps %xmm0, 16(%r8)2396; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2397; SSE-NEXT: movaps %xmm0, (%r8)2398; SSE-NEXT: addq $664, %rsp # imm = 0x2982399; SSE-NEXT: retq2400;2401; AVX-LABEL: store_i64_stride4_vf32:2402; AVX: # %bb.0:2403; AVX-NEXT: subq $664, %rsp # imm = 0x2982404; AVX-NEXT: vmovaps 160(%rdx), %ymm02405; AVX-NEXT: vmovaps 128(%rdx), %ymm22406; AVX-NEXT: vmovaps 96(%rdx), %ymm42407; AVX-NEXT: vmovaps 64(%rdx), %ymm62408; AVX-NEXT: vmovaps 32(%rdx), %ymm72409; AVX-NEXT: vmovaps (%rdx), %ymm82410; AVX-NEXT: vmovaps 160(%rcx), %ymm12411; AVX-NEXT: vmovaps 128(%rcx), %ymm32412; AVX-NEXT: vmovaps 96(%rcx), %ymm52413; AVX-NEXT: vmovaps 64(%rcx), %ymm92414; AVX-NEXT: vmovaps 32(%rcx), %ymm102415; AVX-NEXT: vmovaps (%rcx), %ymm112416; AVX-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm8[0],ymm11[0],ymm8[2],ymm11[2]2417; AVX-NEXT: vmovaps 16(%rsi), %xmm132418; AVX-NEXT: vmovaps 16(%rdi), %xmm142419; AVX-NEXT: vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm13[0]2420; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm15[0,1,2,3],ymm12[4,5,6,7]2421; AVX-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2422; AVX-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm11[1],ymm8[3],ymm11[3]2423; AVX-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm14[1],xmm13[1]2424; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm8[4,5,6,7]2425; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2426; AVX-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]2427; AVX-NEXT: vmovaps 48(%rsi), %xmm112428; AVX-NEXT: vmovaps 48(%rdi), %xmm122429; AVX-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]2430; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]2431; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2432; AVX-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]2433; AVX-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]2434; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]2435; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2436; AVX-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm6[0],ymm9[0],ymm6[2],ymm9[2]2437; AVX-NEXT: vmovaps 80(%rsi), %xmm82438; AVX-NEXT: vmovaps 80(%rdi), %xmm102439; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm8[0]2440; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]2441; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2442; AVX-NEXT: vunpckhpd {{.*#+}} ymm6 = ymm6[1],ymm9[1],ymm6[3],ymm9[3]2443; AVX-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm10[1],xmm8[1]2444; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3],ymm6[4,5,6,7]2445; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2446; AVX-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]2447; AVX-NEXT: vmovaps 112(%rsi), %xmm72448; AVX-NEXT: vmovaps 112(%rdi), %xmm82449; AVX-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]2450; AVX-NEXT: vblendps {{.*#+}} ymm6 = ymm9[0,1,2,3],ymm6[4,5,6,7]2451; AVX-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2452; AVX-NEXT: vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]2453; AVX-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]2454; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]2455; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2456; AVX-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2457; AVX-NEXT: vmovaps 144(%rsi), %xmm52458; AVX-NEXT: vmovaps 144(%rdi), %xmm62459; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]2460; AVX-NEXT: vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]2461; AVX-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2462; AVX-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2463; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]2464; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3],ymm2[4,5,6,7]2465; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2466; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2467; AVX-NEXT: vmovaps 176(%rsi), %xmm32468; AVX-NEXT: vmovaps 176(%rdi), %xmm42469; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]2470; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]2471; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2472; AVX-NEXT: vmovaps 192(%rdx), %ymm22473; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2474; AVX-NEXT: vmovaps 192(%rcx), %ymm12475; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]2476; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]2477; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2478; AVX-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]2479; AVX-NEXT: vmovaps 208(%rsi), %xmm32480; AVX-NEXT: vmovaps 208(%rdi), %xmm42481; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]2482; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]2483; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2484; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]2485; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]2486; AVX-NEXT: vmovaps 224(%rdx), %ymm22487; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2488; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2489; AVX-NEXT: vmovaps 224(%rcx), %ymm02490; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]2491; AVX-NEXT: vmovaps 240(%rsi), %xmm32492; AVX-NEXT: vmovaps 240(%rdi), %xmm42493; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]2494; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]2495; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2496; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]2497; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]2498; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]2499; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2500; AVX-NEXT: vmovaps 128(%rsi), %xmm02501; AVX-NEXT: vmovaps 128(%rdi), %xmm12502; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2503; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2504; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2505; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2506; AVX-NEXT: vmovaps 128(%rcx), %xmm02507; AVX-NEXT: vmovaps 128(%rdx), %xmm12508; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2509; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2510; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2511; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2512; AVX-NEXT: vmovaps 64(%rsi), %xmm02513; AVX-NEXT: vmovaps 64(%rdi), %xmm12514; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2515; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2516; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2517; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2518; AVX-NEXT: vmovaps 64(%rcx), %xmm02519; AVX-NEXT: vmovaps 64(%rdx), %xmm12520; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2521; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2522; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2523; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2524; AVX-NEXT: vmovaps 32(%rsi), %xmm02525; AVX-NEXT: vmovaps 32(%rdi), %xmm12526; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2527; AVX-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill2528; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2529; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2530; AVX-NEXT: vmovaps 32(%rcx), %xmm02531; AVX-NEXT: vmovaps 32(%rdx), %xmm12532; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2533; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2534; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2535; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2536; AVX-NEXT: vmovaps 96(%rsi), %xmm02537; AVX-NEXT: vmovaps 96(%rdi), %xmm12538; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2539; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2540; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2541; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2542; AVX-NEXT: vmovaps 96(%rcx), %xmm02543; AVX-NEXT: vmovaps 96(%rdx), %xmm12544; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2545; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2546; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]2547; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2548; AVX-NEXT: vmovaps 160(%rsi), %xmm02549; AVX-NEXT: vmovaps 160(%rdi), %xmm12550; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]2551; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2552; AVX-NEXT: vunpckhpd {{.*#+}} xmm15 = xmm1[1],xmm0[1]2553; AVX-NEXT: vmovaps 160(%rcx), %xmm02554; AVX-NEXT: vmovaps 160(%rdx), %xmm12555; AVX-NEXT: vmovlhps {{.*#+}} xmm14 = xmm1[0],xmm0[0]2556; AVX-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm1[1],xmm0[1]2557; AVX-NEXT: vmovaps 224(%rsi), %xmm12558; AVX-NEXT: vmovaps 224(%rdi), %xmm02559; AVX-NEXT: vmovlhps {{.*#+}} xmm12 = xmm0[0],xmm1[0]2560; AVX-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm0[1],xmm1[1]2561; AVX-NEXT: vmovaps 224(%rcx), %xmm12562; AVX-NEXT: vmovaps 224(%rdx), %xmm02563; AVX-NEXT: vmovlhps {{.*#+}} xmm10 = xmm0[0],xmm1[0]2564; AVX-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm0[1],xmm1[1]2565; AVX-NEXT: vmovaps 192(%rsi), %xmm12566; AVX-NEXT: vmovaps 192(%rdi), %xmm02567; AVX-NEXT: vmovlhps {{.*#+}} xmm8 = xmm0[0],xmm1[0]2568; AVX-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm0[1],xmm1[1]2569; AVX-NEXT: vmovaps 192(%rcx), %xmm12570; AVX-NEXT: vmovaps 192(%rdx), %xmm02571; AVX-NEXT: vmovlhps {{.*#+}} xmm6 = xmm0[0],xmm1[0]2572; AVX-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm0[1],xmm1[1]2573; AVX-NEXT: vmovaps (%rsi), %xmm12574; AVX-NEXT: vmovaps (%rdi), %xmm02575; AVX-NEXT: vmovlhps {{.*#+}} xmm4 = xmm0[0],xmm1[0]2576; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm0[1],xmm1[1]2577; AVX-NEXT: vmovaps (%rcx), %xmm12578; AVX-NEXT: vmovaps (%rdx), %xmm02579; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]2580; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]2581; AVX-NEXT: vmovaps %xmm0, 48(%r8)2582; AVX-NEXT: vmovaps %xmm3, 32(%r8)2583; AVX-NEXT: vmovaps %xmm2, 16(%r8)2584; AVX-NEXT: vmovaps %xmm4, (%r8)2585; AVX-NEXT: vmovaps %xmm5, 816(%r8)2586; AVX-NEXT: vmovaps %xmm7, 800(%r8)2587; AVX-NEXT: vmovaps %xmm6, 784(%r8)2588; AVX-NEXT: vmovaps %xmm8, 768(%r8)2589; AVX-NEXT: vmovaps %xmm9, 944(%r8)2590; AVX-NEXT: vmovaps %xmm11, 928(%r8)2591; AVX-NEXT: vmovaps %xmm10, 912(%r8)2592; AVX-NEXT: vmovaps %xmm12, 896(%r8)2593; AVX-NEXT: vmovaps %xmm13, 688(%r8)2594; AVX-NEXT: vmovaps %xmm15, 672(%r8)2595; AVX-NEXT: vmovaps %xmm14, 656(%r8)2596; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2597; AVX-NEXT: vmovaps %xmm0, 640(%r8)2598; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2599; AVX-NEXT: vmovaps %xmm0, 432(%r8)2600; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2601; AVX-NEXT: vmovaps %xmm0, 416(%r8)2602; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2603; AVX-NEXT: vmovaps %xmm0, 400(%r8)2604; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2605; AVX-NEXT: vmovaps %xmm0, 384(%r8)2606; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2607; AVX-NEXT: vmovaps %xmm0, 176(%r8)2608; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2609; AVX-NEXT: vmovaps %xmm0, 160(%r8)2610; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2611; AVX-NEXT: vmovaps %xmm0, 144(%r8)2612; AVX-NEXT: vmovaps (%rsp), %xmm0 # 16-byte Reload2613; AVX-NEXT: vmovaps %xmm0, 128(%r8)2614; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2615; AVX-NEXT: vmovaps %xmm0, 304(%r8)2616; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2617; AVX-NEXT: vmovaps %xmm0, 288(%r8)2618; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2619; AVX-NEXT: vmovaps %xmm0, 272(%r8)2620; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2621; AVX-NEXT: vmovaps %xmm0, 256(%r8)2622; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2623; AVX-NEXT: vmovaps %xmm0, 560(%r8)2624; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2625; AVX-NEXT: vmovaps %xmm0, 544(%r8)2626; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2627; AVX-NEXT: vmovaps %xmm0, 528(%r8)2628; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2629; AVX-NEXT: vmovaps %xmm0, 512(%r8)2630; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2631; AVX-NEXT: vmovaps %ymm0, 992(%r8)2632; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2633; AVX-NEXT: vmovaps %ymm0, 960(%r8)2634; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2635; AVX-NEXT: vmovaps %ymm0, 864(%r8)2636; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2637; AVX-NEXT: vmovaps %ymm0, 832(%r8)2638; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2639; AVX-NEXT: vmovaps %ymm0, 736(%r8)2640; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2641; AVX-NEXT: vmovaps %ymm0, 704(%r8)2642; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2643; AVX-NEXT: vmovaps %ymm0, 608(%r8)2644; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2645; AVX-NEXT: vmovaps %ymm0, 576(%r8)2646; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2647; AVX-NEXT: vmovaps %ymm0, 480(%r8)2648; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2649; AVX-NEXT: vmovaps %ymm0, 448(%r8)2650; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2651; AVX-NEXT: vmovaps %ymm0, 352(%r8)2652; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2653; AVX-NEXT: vmovaps %ymm0, 320(%r8)2654; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2655; AVX-NEXT: vmovaps %ymm0, 224(%r8)2656; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2657; AVX-NEXT: vmovaps %ymm0, 192(%r8)2658; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2659; AVX-NEXT: vmovaps %ymm0, 96(%r8)2660; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2661; AVX-NEXT: vmovaps %ymm0, 64(%r8)2662; AVX-NEXT: addq $664, %rsp # imm = 0x2982663; AVX-NEXT: vzeroupper2664; AVX-NEXT: retq2665;2666; AVX2-LABEL: store_i64_stride4_vf32:2667; AVX2: # %bb.0:2668; AVX2-NEXT: subq $520, %rsp # imm = 0x2082669; AVX2-NEXT: vmovaps (%rsi), %xmm02670; AVX2-NEXT: vmovaps 32(%rsi), %xmm12671; AVX2-NEXT: vmovaps 64(%rsi), %xmm22672; AVX2-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm02673; AVX2-NEXT: vmovaps (%rdi), %xmm32674; AVX2-NEXT: vmovaps 32(%rdi), %xmm42675; AVX2-NEXT: vmovaps 64(%rdi), %xmm52676; AVX2-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm32677; AVX2-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]2678; AVX2-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2679; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]2680; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2681; AVX2-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm02682; AVX2-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm12683; AVX2-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2684; AVX2-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2685; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2686; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2687; AVX2-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm02688; AVX2-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm12689; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2690; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2691; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2692; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2693; AVX2-NEXT: vmovaps 96(%rsi), %xmm02694; AVX2-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm02695; AVX2-NEXT: vmovaps 96(%rdi), %xmm12696; AVX2-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm12697; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2698; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2699; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2700; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2701; AVX2-NEXT: vmovaps 128(%rsi), %xmm02702; AVX2-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm02703; AVX2-NEXT: vmovaps 128(%rdi), %xmm12704; AVX2-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm12705; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2706; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2707; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2708; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2709; AVX2-NEXT: vmovaps 160(%rsi), %xmm02710; AVX2-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm02711; AVX2-NEXT: vmovaps 160(%rdi), %xmm12712; AVX2-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm12713; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2714; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2715; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2716; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2717; AVX2-NEXT: vmovaps 192(%rsi), %xmm02718; AVX2-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm02719; AVX2-NEXT: vmovaps 192(%rdi), %xmm12720; AVX2-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm12721; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2722; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2723; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2724; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2725; AVX2-NEXT: vmovaps 224(%rsi), %xmm02726; AVX2-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm02727; AVX2-NEXT: vmovaps 224(%rdi), %xmm12728; AVX2-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm12729; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2730; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2731; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2732; AVX2-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill2733; AVX2-NEXT: vmovaps (%rdi), %ymm02734; AVX2-NEXT: vmovaps (%rsi), %ymm12735; AVX2-NEXT: vmovaps (%rdx), %ymm22736; AVX2-NEXT: vmovaps (%rcx), %ymm32737; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2738; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2739; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]2740; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2741; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2742; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2743; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]2744; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2745; AVX2-NEXT: vmovaps 32(%rdi), %ymm02746; AVX2-NEXT: vmovaps 32(%rsi), %ymm12747; AVX2-NEXT: vmovaps 32(%rdx), %ymm22748; AVX2-NEXT: vmovaps 32(%rcx), %ymm32749; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2750; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2751; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]2752; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2753; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2754; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2755; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]2756; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2757; AVX2-NEXT: vmovaps 64(%rdi), %ymm02758; AVX2-NEXT: vmovaps 64(%rsi), %ymm12759; AVX2-NEXT: vmovaps 64(%rdx), %ymm22760; AVX2-NEXT: vmovaps 64(%rcx), %ymm32761; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2762; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2763; AVX2-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]2764; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2765; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2766; AVX2-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]2767; AVX2-NEXT: vmovaps 96(%rdi), %ymm32768; AVX2-NEXT: vmovaps 96(%rsi), %ymm12769; AVX2-NEXT: vmovaps 96(%rdx), %ymm22770; AVX2-NEXT: vmovaps 96(%rcx), %ymm02771; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]2772; AVX2-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]2773; AVX2-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm11[2,3],ymm4[2,3]2774; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]2775; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]2776; AVX2-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]2777; AVX2-NEXT: vmovaps 128(%rdi), %ymm12778; AVX2-NEXT: vmovaps 128(%rsi), %ymm32779; AVX2-NEXT: vmovaps 128(%rdx), %ymm112780; AVX2-NEXT: vmovaps 128(%rcx), %ymm02781; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm0[0],ymm11[2],ymm0[2]2782; AVX2-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]2783; AVX2-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm13[2,3],ymm2[2,3]2784; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm0[1],ymm11[3],ymm0[3]2785; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]2786; AVX2-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]2787; AVX2-NEXT: vmovaps 160(%rdi), %ymm12788; AVX2-NEXT: vmovaps 160(%rsi), %ymm32789; AVX2-NEXT: vmovaps 160(%rdx), %ymm112790; AVX2-NEXT: vmovaps 160(%rcx), %ymm132791; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]2792; AVX2-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]2793; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm15[2,3],ymm0[2,3]2794; AVX2-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]2795; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]2796; AVX2-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm11[2,3]2797; AVX2-NEXT: vmovaps 192(%rdi), %ymm32798; AVX2-NEXT: vmovaps 192(%rsi), %ymm112799; AVX2-NEXT: vmovaps 192(%rdx), %ymm132800; AVX2-NEXT: vmovaps 192(%rcx), %ymm152801; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]2802; AVX2-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm3[0],ymm11[0],ymm3[2],ymm11[2]2803; AVX2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm14[2,3],ymm0[2,3]2804; AVX2-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]2805; AVX2-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm11[1],ymm3[3],ymm11[3]2806; AVX2-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm13[2,3]2807; AVX2-NEXT: vmovaps 224(%rdi), %ymm112808; AVX2-NEXT: vmovaps 224(%rsi), %ymm132809; AVX2-NEXT: vmovaps 224(%rdx), %ymm142810; AVX2-NEXT: vmovaps 224(%rcx), %ymm152811; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]2812; AVX2-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]2813; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3],ymm0[2,3]2814; AVX2-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]2815; AVX2-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]2816; AVX2-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm11[2,3],ymm12[2,3]2817; AVX2-NEXT: vmovaps %ymm11, 992(%r8)2818; AVX2-NEXT: vmovaps %ymm0, 960(%r8)2819; AVX2-NEXT: vmovaps %ymm3, 864(%r8)2820; AVX2-NEXT: vmovaps %ymm1, 832(%r8)2821; AVX2-NEXT: vmovaps %ymm2, 736(%r8)2822; AVX2-NEXT: vmovaps %ymm4, 704(%r8)2823; AVX2-NEXT: vmovaps %ymm5, 608(%r8)2824; AVX2-NEXT: vmovaps %ymm6, 576(%r8)2825; AVX2-NEXT: vmovaps %ymm7, 480(%r8)2826; AVX2-NEXT: vmovaps %ymm8, 448(%r8)2827; AVX2-NEXT: vmovaps %ymm9, 352(%r8)2828; AVX2-NEXT: vmovaps %ymm10, 320(%r8)2829; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2830; AVX2-NEXT: vmovaps %ymm0, 224(%r8)2831; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2832; AVX2-NEXT: vmovaps %ymm0, 192(%r8)2833; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2834; AVX2-NEXT: vmovaps %ymm0, 96(%r8)2835; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2836; AVX2-NEXT: vmovaps %ymm0, 64(%r8)2837; AVX2-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload2838; AVX2-NEXT: vmovaps %ymm0, 928(%r8)2839; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2840; AVX2-NEXT: vmovaps %ymm0, 896(%r8)2841; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2842; AVX2-NEXT: vmovaps %ymm0, 800(%r8)2843; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2844; AVX2-NEXT: vmovaps %ymm0, 768(%r8)2845; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2846; AVX2-NEXT: vmovaps %ymm0, 672(%r8)2847; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2848; AVX2-NEXT: vmovaps %ymm0, 640(%r8)2849; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2850; AVX2-NEXT: vmovaps %ymm0, 544(%r8)2851; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2852; AVX2-NEXT: vmovaps %ymm0, 512(%r8)2853; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2854; AVX2-NEXT: vmovaps %ymm0, 416(%r8)2855; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2856; AVX2-NEXT: vmovaps %ymm0, 384(%r8)2857; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2858; AVX2-NEXT: vmovaps %ymm0, 288(%r8)2859; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2860; AVX2-NEXT: vmovaps %ymm0, 256(%r8)2861; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2862; AVX2-NEXT: vmovaps %ymm0, 160(%r8)2863; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2864; AVX2-NEXT: vmovaps %ymm0, 128(%r8)2865; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2866; AVX2-NEXT: vmovaps %ymm0, 32(%r8)2867; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2868; AVX2-NEXT: vmovaps %ymm0, (%r8)2869; AVX2-NEXT: addq $520, %rsp # imm = 0x2082870; AVX2-NEXT: vzeroupper2871; AVX2-NEXT: retq2872;2873; AVX2-FP-LABEL: store_i64_stride4_vf32:2874; AVX2-FP: # %bb.0:2875; AVX2-FP-NEXT: subq $520, %rsp # imm = 0x2082876; AVX2-FP-NEXT: vmovaps (%rsi), %xmm02877; AVX2-FP-NEXT: vmovaps 32(%rsi), %xmm12878; AVX2-FP-NEXT: vmovaps 64(%rsi), %xmm22879; AVX2-FP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm02880; AVX2-FP-NEXT: vmovaps (%rdi), %xmm32881; AVX2-FP-NEXT: vmovaps 32(%rdi), %xmm42882; AVX2-FP-NEXT: vmovaps 64(%rdi), %xmm52883; AVX2-FP-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm32884; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]2885; AVX2-FP-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2886; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]2887; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2888; AVX2-FP-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm02889; AVX2-FP-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm12890; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2891; AVX2-FP-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2892; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2893; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2894; AVX2-FP-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm02895; AVX2-FP-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm12896; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2897; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2898; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2899; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2900; AVX2-FP-NEXT: vmovaps 96(%rsi), %xmm02901; AVX2-FP-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm02902; AVX2-FP-NEXT: vmovaps 96(%rdi), %xmm12903; AVX2-FP-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm12904; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2905; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2906; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2907; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2908; AVX2-FP-NEXT: vmovaps 128(%rsi), %xmm02909; AVX2-FP-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm02910; AVX2-FP-NEXT: vmovaps 128(%rdi), %xmm12911; AVX2-FP-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm12912; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2913; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2914; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2915; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2916; AVX2-FP-NEXT: vmovaps 160(%rsi), %xmm02917; AVX2-FP-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm02918; AVX2-FP-NEXT: vmovaps 160(%rdi), %xmm12919; AVX2-FP-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm12920; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2921; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2922; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2923; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2924; AVX2-FP-NEXT: vmovaps 192(%rsi), %xmm02925; AVX2-FP-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm02926; AVX2-FP-NEXT: vmovaps 192(%rdi), %xmm12927; AVX2-FP-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm12928; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2929; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2930; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2931; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2932; AVX2-FP-NEXT: vmovaps 224(%rsi), %xmm02933; AVX2-FP-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm02934; AVX2-FP-NEXT: vmovaps 224(%rdi), %xmm12935; AVX2-FP-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm12936; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]2937; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2938; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]2939; AVX2-FP-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill2940; AVX2-FP-NEXT: vmovaps (%rdi), %ymm02941; AVX2-FP-NEXT: vmovaps (%rsi), %ymm12942; AVX2-FP-NEXT: vmovaps (%rdx), %ymm22943; AVX2-FP-NEXT: vmovaps (%rcx), %ymm32944; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2945; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2946; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]2947; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2948; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2949; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2950; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]2951; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2952; AVX2-FP-NEXT: vmovaps 32(%rdi), %ymm02953; AVX2-FP-NEXT: vmovaps 32(%rsi), %ymm12954; AVX2-FP-NEXT: vmovaps 32(%rdx), %ymm22955; AVX2-FP-NEXT: vmovaps 32(%rcx), %ymm32956; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2957; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2958; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]2959; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2960; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2961; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2962; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]2963; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2964; AVX2-FP-NEXT: vmovaps 64(%rdi), %ymm02965; AVX2-FP-NEXT: vmovaps 64(%rsi), %ymm12966; AVX2-FP-NEXT: vmovaps 64(%rdx), %ymm22967; AVX2-FP-NEXT: vmovaps 64(%rcx), %ymm32968; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]2969; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]2970; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]2971; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]2972; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]2973; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]2974; AVX2-FP-NEXT: vmovaps 96(%rdi), %ymm32975; AVX2-FP-NEXT: vmovaps 96(%rsi), %ymm12976; AVX2-FP-NEXT: vmovaps 96(%rdx), %ymm22977; AVX2-FP-NEXT: vmovaps 96(%rcx), %ymm02978; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]2979; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]2980; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm11[2,3],ymm4[2,3]2981; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]2982; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]2983; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]2984; AVX2-FP-NEXT: vmovaps 128(%rdi), %ymm12985; AVX2-FP-NEXT: vmovaps 128(%rsi), %ymm32986; AVX2-FP-NEXT: vmovaps 128(%rdx), %ymm112987; AVX2-FP-NEXT: vmovaps 128(%rcx), %ymm02988; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm0[0],ymm11[2],ymm0[2]2989; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]2990; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm13[2,3],ymm2[2,3]2991; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm0[1],ymm11[3],ymm0[3]2992; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]2993; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]2994; AVX2-FP-NEXT: vmovaps 160(%rdi), %ymm12995; AVX2-FP-NEXT: vmovaps 160(%rsi), %ymm32996; AVX2-FP-NEXT: vmovaps 160(%rdx), %ymm112997; AVX2-FP-NEXT: vmovaps 160(%rcx), %ymm132998; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]2999; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]3000; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm15[2,3],ymm0[2,3]3001; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]3002; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]3003; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm11[2,3]3004; AVX2-FP-NEXT: vmovaps 192(%rdi), %ymm33005; AVX2-FP-NEXT: vmovaps 192(%rsi), %ymm113006; AVX2-FP-NEXT: vmovaps 192(%rdx), %ymm133007; AVX2-FP-NEXT: vmovaps 192(%rcx), %ymm153008; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]3009; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm3[0],ymm11[0],ymm3[2],ymm11[2]3010; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm14[2,3],ymm0[2,3]3011; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]3012; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm11[1],ymm3[3],ymm11[3]3013; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm13[2,3]3014; AVX2-FP-NEXT: vmovaps 224(%rdi), %ymm113015; AVX2-FP-NEXT: vmovaps 224(%rsi), %ymm133016; AVX2-FP-NEXT: vmovaps 224(%rdx), %ymm143017; AVX2-FP-NEXT: vmovaps 224(%rcx), %ymm153018; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]3019; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]3020; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3],ymm0[2,3]3021; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]3022; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]3023; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm11[2,3],ymm12[2,3]3024; AVX2-FP-NEXT: vmovaps %ymm11, 992(%r8)3025; AVX2-FP-NEXT: vmovaps %ymm0, 960(%r8)3026; AVX2-FP-NEXT: vmovaps %ymm3, 864(%r8)3027; AVX2-FP-NEXT: vmovaps %ymm1, 832(%r8)3028; AVX2-FP-NEXT: vmovaps %ymm2, 736(%r8)3029; AVX2-FP-NEXT: vmovaps %ymm4, 704(%r8)3030; AVX2-FP-NEXT: vmovaps %ymm5, 608(%r8)3031; AVX2-FP-NEXT: vmovaps %ymm6, 576(%r8)3032; AVX2-FP-NEXT: vmovaps %ymm7, 480(%r8)3033; AVX2-FP-NEXT: vmovaps %ymm8, 448(%r8)3034; AVX2-FP-NEXT: vmovaps %ymm9, 352(%r8)3035; AVX2-FP-NEXT: vmovaps %ymm10, 320(%r8)3036; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3037; AVX2-FP-NEXT: vmovaps %ymm0, 224(%r8)3038; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3039; AVX2-FP-NEXT: vmovaps %ymm0, 192(%r8)3040; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3041; AVX2-FP-NEXT: vmovaps %ymm0, 96(%r8)3042; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3043; AVX2-FP-NEXT: vmovaps %ymm0, 64(%r8)3044; AVX2-FP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload3045; AVX2-FP-NEXT: vmovaps %ymm0, 928(%r8)3046; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3047; AVX2-FP-NEXT: vmovaps %ymm0, 896(%r8)3048; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3049; AVX2-FP-NEXT: vmovaps %ymm0, 800(%r8)3050; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3051; AVX2-FP-NEXT: vmovaps %ymm0, 768(%r8)3052; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3053; AVX2-FP-NEXT: vmovaps %ymm0, 672(%r8)3054; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3055; AVX2-FP-NEXT: vmovaps %ymm0, 640(%r8)3056; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3057; AVX2-FP-NEXT: vmovaps %ymm0, 544(%r8)3058; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3059; AVX2-FP-NEXT: vmovaps %ymm0, 512(%r8)3060; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3061; AVX2-FP-NEXT: vmovaps %ymm0, 416(%r8)3062; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3063; AVX2-FP-NEXT: vmovaps %ymm0, 384(%r8)3064; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3065; AVX2-FP-NEXT: vmovaps %ymm0, 288(%r8)3066; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3067; AVX2-FP-NEXT: vmovaps %ymm0, 256(%r8)3068; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3069; AVX2-FP-NEXT: vmovaps %ymm0, 160(%r8)3070; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3071; AVX2-FP-NEXT: vmovaps %ymm0, 128(%r8)3072; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3073; AVX2-FP-NEXT: vmovaps %ymm0, 32(%r8)3074; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3075; AVX2-FP-NEXT: vmovaps %ymm0, (%r8)3076; AVX2-FP-NEXT: addq $520, %rsp # imm = 0x2083077; AVX2-FP-NEXT: vzeroupper3078; AVX2-FP-NEXT: retq3079;3080; AVX2-FCP-LABEL: store_i64_stride4_vf32:3081; AVX2-FCP: # %bb.0:3082; AVX2-FCP-NEXT: subq $520, %rsp # imm = 0x2083083; AVX2-FCP-NEXT: vmovaps (%rsi), %xmm03084; AVX2-FCP-NEXT: vmovaps 32(%rsi), %xmm13085; AVX2-FCP-NEXT: vmovaps 64(%rsi), %xmm23086; AVX2-FCP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm03087; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm33088; AVX2-FCP-NEXT: vmovaps 32(%rdi), %xmm43089; AVX2-FCP-NEXT: vmovaps 64(%rdi), %xmm53090; AVX2-FCP-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm33091; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]3092; AVX2-FCP-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3093; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]3094; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3095; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm03096; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm13097; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3098; AVX2-FCP-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3099; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3100; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3101; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm03102; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm13103; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3104; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3105; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3106; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3107; AVX2-FCP-NEXT: vmovaps 96(%rsi), %xmm03108; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm03109; AVX2-FCP-NEXT: vmovaps 96(%rdi), %xmm13110; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm13111; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3112; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3113; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3114; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3115; AVX2-FCP-NEXT: vmovaps 128(%rsi), %xmm03116; AVX2-FCP-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm03117; AVX2-FCP-NEXT: vmovaps 128(%rdi), %xmm13118; AVX2-FCP-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm13119; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3120; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3121; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3122; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3123; AVX2-FCP-NEXT: vmovaps 160(%rsi), %xmm03124; AVX2-FCP-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm03125; AVX2-FCP-NEXT: vmovaps 160(%rdi), %xmm13126; AVX2-FCP-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm13127; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3128; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3129; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3130; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3131; AVX2-FCP-NEXT: vmovaps 192(%rsi), %xmm03132; AVX2-FCP-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm03133; AVX2-FCP-NEXT: vmovaps 192(%rdi), %xmm13134; AVX2-FCP-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm13135; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3136; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3137; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3138; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3139; AVX2-FCP-NEXT: vmovaps 224(%rsi), %xmm03140; AVX2-FCP-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm03141; AVX2-FCP-NEXT: vmovaps 224(%rdi), %xmm13142; AVX2-FCP-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm13143; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]3144; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3145; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]3146; AVX2-FCP-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill3147; AVX2-FCP-NEXT: vmovaps (%rdi), %ymm03148; AVX2-FCP-NEXT: vmovaps (%rsi), %ymm13149; AVX2-FCP-NEXT: vmovaps (%rdx), %ymm23150; AVX2-FCP-NEXT: vmovaps (%rcx), %ymm33151; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]3152; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]3153; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]3154; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3155; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]3156; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]3157; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]3158; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3159; AVX2-FCP-NEXT: vmovaps 32(%rdi), %ymm03160; AVX2-FCP-NEXT: vmovaps 32(%rsi), %ymm13161; AVX2-FCP-NEXT: vmovaps 32(%rdx), %ymm23162; AVX2-FCP-NEXT: vmovaps 32(%rcx), %ymm33163; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]3164; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]3165; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]3166; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3167; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]3168; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]3169; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]3170; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3171; AVX2-FCP-NEXT: vmovaps 64(%rdi), %ymm03172; AVX2-FCP-NEXT: vmovaps 64(%rsi), %ymm13173; AVX2-FCP-NEXT: vmovaps 64(%rdx), %ymm23174; AVX2-FCP-NEXT: vmovaps 64(%rcx), %ymm33175; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]3176; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]3177; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]3178; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]3179; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]3180; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]3181; AVX2-FCP-NEXT: vmovaps 96(%rdi), %ymm33182; AVX2-FCP-NEXT: vmovaps 96(%rsi), %ymm13183; AVX2-FCP-NEXT: vmovaps 96(%rdx), %ymm23184; AVX2-FCP-NEXT: vmovaps 96(%rcx), %ymm03185; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]3186; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]3187; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm11[2,3],ymm4[2,3]3188; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]3189; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]3190; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]3191; AVX2-FCP-NEXT: vmovaps 128(%rdi), %ymm13192; AVX2-FCP-NEXT: vmovaps 128(%rsi), %ymm33193; AVX2-FCP-NEXT: vmovaps 128(%rdx), %ymm113194; AVX2-FCP-NEXT: vmovaps 128(%rcx), %ymm03195; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm11[0],ymm0[0],ymm11[2],ymm0[2]3196; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]3197; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm13[2,3],ymm2[2,3]3198; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm11[1],ymm0[1],ymm11[3],ymm0[3]3199; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]3200; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]3201; AVX2-FCP-NEXT: vmovaps 160(%rdi), %ymm13202; AVX2-FCP-NEXT: vmovaps 160(%rsi), %ymm33203; AVX2-FCP-NEXT: vmovaps 160(%rdx), %ymm113204; AVX2-FCP-NEXT: vmovaps 160(%rcx), %ymm133205; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]3206; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]3207; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm15[2,3],ymm0[2,3]3208; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]3209; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]3210; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm11[2,3]3211; AVX2-FCP-NEXT: vmovaps 192(%rdi), %ymm33212; AVX2-FCP-NEXT: vmovaps 192(%rsi), %ymm113213; AVX2-FCP-NEXT: vmovaps 192(%rdx), %ymm133214; AVX2-FCP-NEXT: vmovaps 192(%rcx), %ymm153215; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm15[0],ymm13[2],ymm15[2]3216; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm3[0],ymm11[0],ymm3[2],ymm11[2]3217; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm14[2,3],ymm0[2,3]3218; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm13[1],ymm15[1],ymm13[3],ymm15[3]3219; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm11[1],ymm3[3],ymm11[3]3220; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm13[2,3]3221; AVX2-FCP-NEXT: vmovaps 224(%rdi), %ymm113222; AVX2-FCP-NEXT: vmovaps 224(%rsi), %ymm133223; AVX2-FCP-NEXT: vmovaps 224(%rdx), %ymm143224; AVX2-FCP-NEXT: vmovaps 224(%rcx), %ymm153225; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]3226; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm11[0],ymm13[0],ymm11[2],ymm13[2]3227; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm12[2,3],ymm0[2,3]3228; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]3229; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm11[1],ymm13[1],ymm11[3],ymm13[3]3230; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm11[2,3],ymm12[2,3]3231; AVX2-FCP-NEXT: vmovaps %ymm11, 992(%r8)3232; AVX2-FCP-NEXT: vmovaps %ymm0, 960(%r8)3233; AVX2-FCP-NEXT: vmovaps %ymm3, 864(%r8)3234; AVX2-FCP-NEXT: vmovaps %ymm1, 832(%r8)3235; AVX2-FCP-NEXT: vmovaps %ymm2, 736(%r8)3236; AVX2-FCP-NEXT: vmovaps %ymm4, 704(%r8)3237; AVX2-FCP-NEXT: vmovaps %ymm5, 608(%r8)3238; AVX2-FCP-NEXT: vmovaps %ymm6, 576(%r8)3239; AVX2-FCP-NEXT: vmovaps %ymm7, 480(%r8)3240; AVX2-FCP-NEXT: vmovaps %ymm8, 448(%r8)3241; AVX2-FCP-NEXT: vmovaps %ymm9, 352(%r8)3242; AVX2-FCP-NEXT: vmovaps %ymm10, 320(%r8)3243; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3244; AVX2-FCP-NEXT: vmovaps %ymm0, 224(%r8)3245; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3246; AVX2-FCP-NEXT: vmovaps %ymm0, 192(%r8)3247; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3248; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%r8)3249; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3250; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%r8)3251; AVX2-FCP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload3252; AVX2-FCP-NEXT: vmovaps %ymm0, 928(%r8)3253; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3254; AVX2-FCP-NEXT: vmovaps %ymm0, 896(%r8)3255; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3256; AVX2-FCP-NEXT: vmovaps %ymm0, 800(%r8)3257; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3258; AVX2-FCP-NEXT: vmovaps %ymm0, 768(%r8)3259; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3260; AVX2-FCP-NEXT: vmovaps %ymm0, 672(%r8)3261; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3262; AVX2-FCP-NEXT: vmovaps %ymm0, 640(%r8)3263; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3264; AVX2-FCP-NEXT: vmovaps %ymm0, 544(%r8)3265; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3266; AVX2-FCP-NEXT: vmovaps %ymm0, 512(%r8)3267; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3268; AVX2-FCP-NEXT: vmovaps %ymm0, 416(%r8)3269; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3270; AVX2-FCP-NEXT: vmovaps %ymm0, 384(%r8)3271; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3272; AVX2-FCP-NEXT: vmovaps %ymm0, 288(%r8)3273; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3274; AVX2-FCP-NEXT: vmovaps %ymm0, 256(%r8)3275; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3276; AVX2-FCP-NEXT: vmovaps %ymm0, 160(%r8)3277; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3278; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%r8)3279; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3280; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%r8)3281; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3282; AVX2-FCP-NEXT: vmovaps %ymm0, (%r8)3283; AVX2-FCP-NEXT: addq $520, %rsp # imm = 0x2083284; AVX2-FCP-NEXT: vzeroupper3285; AVX2-FCP-NEXT: retq3286;3287; AVX512-LABEL: store_i64_stride4_vf32:3288; AVX512: # %bb.0:3289; AVX512-NEXT: vmovdqa64 (%rdi), %zmm03290; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm13291; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm23292; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm33293; AVX512-NEXT: vmovdqa64 (%rsi), %zmm173294; AVX512-NEXT: vmovdqa64 64(%rsi), %zmm233295; AVX512-NEXT: vmovdqa64 128(%rsi), %zmm123296; AVX512-NEXT: vmovdqa64 192(%rsi), %zmm53297; AVX512-NEXT: vmovdqa64 (%rdx), %zmm223298; AVX512-NEXT: vmovdqa64 64(%rdx), %zmm253299; AVX512-NEXT: vmovdqa64 128(%rdx), %zmm133300; AVX512-NEXT: vmovdqa64 192(%rdx), %zmm63301; AVX512-NEXT: vmovdqa64 (%rcx), %zmm213302; AVX512-NEXT: vmovdqa64 64(%rcx), %zmm263303; AVX512-NEXT: vmovdqa64 128(%rcx), %zmm193304; AVX512-NEXT: vmovdqa64 192(%rcx), %zmm93305; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3306; AVX512-NEXT: vmovdqa64 %zmm22, %zmm83307; AVX512-NEXT: vpermt2q %zmm21, %zmm14, %zmm83308; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3309; AVX512-NEXT: vmovdqa64 %zmm0, %zmm43310; AVX512-NEXT: vpermt2q %zmm17, %zmm7, %zmm43311; AVX512-NEXT: movb $-52, %al3312; AVX512-NEXT: kmovw %eax, %k13313; AVX512-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3314; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3315; AVX512-NEXT: vmovdqa64 %zmm22, %zmm103316; AVX512-NEXT: vpermt2q %zmm21, %zmm16, %zmm103317; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3318; AVX512-NEXT: vmovdqa64 %zmm0, %zmm83319; AVX512-NEXT: vpermt2q %zmm17, %zmm11, %zmm83320; AVX512-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3321; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3322; AVX512-NEXT: vmovdqa64 %zmm22, %zmm203323; AVX512-NEXT: vpermt2q %zmm21, %zmm18, %zmm203324; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3325; AVX512-NEXT: vmovdqa64 %zmm0, %zmm103326; AVX512-NEXT: vpermt2q %zmm17, %zmm15, %zmm103327; AVX512-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3328; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3329; AVX512-NEXT: vpermt2q %zmm21, %zmm20, %zmm223330; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3331; AVX512-NEXT: vpermt2q %zmm17, %zmm21, %zmm03332; AVX512-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3333; AVX512-NEXT: vmovdqa64 %zmm25, %zmm223334; AVX512-NEXT: vpermt2q %zmm26, %zmm14, %zmm223335; AVX512-NEXT: vmovdqa64 %zmm1, %zmm173336; AVX512-NEXT: vpermt2q %zmm23, %zmm7, %zmm173337; AVX512-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3338; AVX512-NEXT: vmovdqa64 %zmm25, %zmm243339; AVX512-NEXT: vpermt2q %zmm26, %zmm16, %zmm243340; AVX512-NEXT: vmovdqa64 %zmm1, %zmm223341; AVX512-NEXT: vpermt2q %zmm23, %zmm11, %zmm223342; AVX512-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3343; AVX512-NEXT: vmovdqa64 %zmm25, %zmm273344; AVX512-NEXT: vpermt2q %zmm26, %zmm18, %zmm273345; AVX512-NEXT: vmovdqa64 %zmm1, %zmm243346; AVX512-NEXT: vpermt2q %zmm23, %zmm15, %zmm243347; AVX512-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3348; AVX512-NEXT: vpermt2q %zmm26, %zmm20, %zmm253349; AVX512-NEXT: vpermt2q %zmm23, %zmm21, %zmm13350; AVX512-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3351; AVX512-NEXT: vmovdqa64 %zmm13, %zmm233352; AVX512-NEXT: vpermt2q %zmm19, %zmm14, %zmm233353; AVX512-NEXT: vmovdqa64 %zmm2, %zmm253354; AVX512-NEXT: vpermt2q %zmm12, %zmm7, %zmm253355; AVX512-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3356; AVX512-NEXT: vmovdqa64 %zmm13, %zmm233357; AVX512-NEXT: vpermt2q %zmm19, %zmm16, %zmm233358; AVX512-NEXT: vmovdqa64 %zmm2, %zmm263359; AVX512-NEXT: vpermt2q %zmm12, %zmm11, %zmm263360; AVX512-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3361; AVX512-NEXT: vmovdqa64 %zmm13, %zmm233362; AVX512-NEXT: vpermt2q %zmm19, %zmm18, %zmm233363; AVX512-NEXT: vmovdqa64 %zmm2, %zmm273364; AVX512-NEXT: vpermt2q %zmm12, %zmm15, %zmm273365; AVX512-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3366; AVX512-NEXT: vpermt2q %zmm19, %zmm20, %zmm133367; AVX512-NEXT: vpermt2q %zmm12, %zmm21, %zmm23368; AVX512-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3369; AVX512-NEXT: vpermi2q %zmm9, %zmm6, %zmm143370; AVX512-NEXT: vpermi2q %zmm5, %zmm3, %zmm73371; AVX512-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3372; AVX512-NEXT: vpermi2q %zmm9, %zmm6, %zmm163373; AVX512-NEXT: vpermi2q %zmm5, %zmm3, %zmm113374; AVX512-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3375; AVX512-NEXT: vpermi2q %zmm9, %zmm6, %zmm183376; AVX512-NEXT: vpermi2q %zmm5, %zmm3, %zmm153377; AVX512-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3378; AVX512-NEXT: vpermt2q %zmm9, %zmm20, %zmm63379; AVX512-NEXT: vpermt2q %zmm5, %zmm21, %zmm33380; AVX512-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3381; AVX512-NEXT: vmovdqa64 %zmm3, 896(%r8)3382; AVX512-NEXT: vmovdqa64 %zmm15, 960(%r8)3383; AVX512-NEXT: vmovdqa64 %zmm11, 768(%r8)3384; AVX512-NEXT: vmovdqa64 %zmm7, 832(%r8)3385; AVX512-NEXT: vmovdqa64 %zmm2, 640(%r8)3386; AVX512-NEXT: vmovdqa64 %zmm27, 704(%r8)3387; AVX512-NEXT: vmovdqa64 %zmm26, 512(%r8)3388; AVX512-NEXT: vmovdqa64 %zmm25, 576(%r8)3389; AVX512-NEXT: vmovdqa64 %zmm1, 384(%r8)3390; AVX512-NEXT: vmovdqa64 %zmm24, 448(%r8)3391; AVX512-NEXT: vmovdqa64 %zmm22, 256(%r8)3392; AVX512-NEXT: vmovdqa64 %zmm17, 320(%r8)3393; AVX512-NEXT: vmovdqa64 %zmm0, 128(%r8)3394; AVX512-NEXT: vmovdqa64 %zmm10, 192(%r8)3395; AVX512-NEXT: vmovdqa64 %zmm8, (%r8)3396; AVX512-NEXT: vmovdqa64 %zmm4, 64(%r8)3397; AVX512-NEXT: vzeroupper3398; AVX512-NEXT: retq3399;3400; AVX512-FCP-LABEL: store_i64_stride4_vf32:3401; AVX512-FCP: # %bb.0:3402; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm03403; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm13404; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23405; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm33406; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm173407; AVX512-FCP-NEXT: vmovdqa64 64(%rsi), %zmm233408; AVX512-FCP-NEXT: vmovdqa64 128(%rsi), %zmm123409; AVX512-FCP-NEXT: vmovdqa64 192(%rsi), %zmm53410; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm223411; AVX512-FCP-NEXT: vmovdqa64 64(%rdx), %zmm253412; AVX512-FCP-NEXT: vmovdqa64 128(%rdx), %zmm133413; AVX512-FCP-NEXT: vmovdqa64 192(%rdx), %zmm63414; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm213415; AVX512-FCP-NEXT: vmovdqa64 64(%rcx), %zmm263416; AVX512-FCP-NEXT: vmovdqa64 128(%rcx), %zmm193417; AVX512-FCP-NEXT: vmovdqa64 192(%rcx), %zmm93418; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3419; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm83420; AVX512-FCP-NEXT: vpermt2q %zmm21, %zmm14, %zmm83421; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3422; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm43423; AVX512-FCP-NEXT: vpermt2q %zmm17, %zmm7, %zmm43424; AVX512-FCP-NEXT: movb $-52, %al3425; AVX512-FCP-NEXT: kmovw %eax, %k13426; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3427; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3428; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm103429; AVX512-FCP-NEXT: vpermt2q %zmm21, %zmm16, %zmm103430; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3431; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm83432; AVX512-FCP-NEXT: vpermt2q %zmm17, %zmm11, %zmm83433; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3434; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3435; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm203436; AVX512-FCP-NEXT: vpermt2q %zmm21, %zmm18, %zmm203437; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3438; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm103439; AVX512-FCP-NEXT: vpermt2q %zmm17, %zmm15, %zmm103440; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3441; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3442; AVX512-FCP-NEXT: vpermt2q %zmm21, %zmm20, %zmm223443; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3444; AVX512-FCP-NEXT: vpermt2q %zmm17, %zmm21, %zmm03445; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3446; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm223447; AVX512-FCP-NEXT: vpermt2q %zmm26, %zmm14, %zmm223448; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm173449; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm7, %zmm173450; AVX512-FCP-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3451; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm243452; AVX512-FCP-NEXT: vpermt2q %zmm26, %zmm16, %zmm243453; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm223454; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm11, %zmm223455; AVX512-FCP-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3456; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm273457; AVX512-FCP-NEXT: vpermt2q %zmm26, %zmm18, %zmm273458; AVX512-FCP-NEXT: vmovdqa64 %zmm1, %zmm243459; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm243460; AVX512-FCP-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3461; AVX512-FCP-NEXT: vpermt2q %zmm26, %zmm20, %zmm253462; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm21, %zmm13463; AVX512-FCP-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3464; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm233465; AVX512-FCP-NEXT: vpermt2q %zmm19, %zmm14, %zmm233466; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm253467; AVX512-FCP-NEXT: vpermt2q %zmm12, %zmm7, %zmm253468; AVX512-FCP-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3469; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm233470; AVX512-FCP-NEXT: vpermt2q %zmm19, %zmm16, %zmm233471; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm263472; AVX512-FCP-NEXT: vpermt2q %zmm12, %zmm11, %zmm263473; AVX512-FCP-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3474; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm233475; AVX512-FCP-NEXT: vpermt2q %zmm19, %zmm18, %zmm233476; AVX512-FCP-NEXT: vmovdqa64 %zmm2, %zmm273477; AVX512-FCP-NEXT: vpermt2q %zmm12, %zmm15, %zmm273478; AVX512-FCP-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3479; AVX512-FCP-NEXT: vpermt2q %zmm19, %zmm20, %zmm133480; AVX512-FCP-NEXT: vpermt2q %zmm12, %zmm21, %zmm23481; AVX512-FCP-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3482; AVX512-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm143483; AVX512-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm73484; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3485; AVX512-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm163486; AVX512-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm113487; AVX512-FCP-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3488; AVX512-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm183489; AVX512-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm153490; AVX512-FCP-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3491; AVX512-FCP-NEXT: vpermt2q %zmm9, %zmm20, %zmm63492; AVX512-FCP-NEXT: vpermt2q %zmm5, %zmm21, %zmm33493; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3494; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 896(%r8)3495; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 960(%r8)3496; AVX512-FCP-NEXT: vmovdqa64 %zmm11, 768(%r8)3497; AVX512-FCP-NEXT: vmovdqa64 %zmm7, 832(%r8)3498; AVX512-FCP-NEXT: vmovdqa64 %zmm2, 640(%r8)3499; AVX512-FCP-NEXT: vmovdqa64 %zmm27, 704(%r8)3500; AVX512-FCP-NEXT: vmovdqa64 %zmm26, 512(%r8)3501; AVX512-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)3502; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)3503; AVX512-FCP-NEXT: vmovdqa64 %zmm24, 448(%r8)3504; AVX512-FCP-NEXT: vmovdqa64 %zmm22, 256(%r8)3505; AVX512-FCP-NEXT: vmovdqa64 %zmm17, 320(%r8)3506; AVX512-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)3507; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 192(%r8)3508; AVX512-FCP-NEXT: vmovdqa64 %zmm8, (%r8)3509; AVX512-FCP-NEXT: vmovdqa64 %zmm4, 64(%r8)3510; AVX512-FCP-NEXT: vzeroupper3511; AVX512-FCP-NEXT: retq3512;3513; AVX512DQ-LABEL: store_i64_stride4_vf32:3514; AVX512DQ: # %bb.0:3515; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm03516; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm13517; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm23518; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm33519; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm173520; AVX512DQ-NEXT: vmovdqa64 64(%rsi), %zmm233521; AVX512DQ-NEXT: vmovdqa64 128(%rsi), %zmm123522; AVX512DQ-NEXT: vmovdqa64 192(%rsi), %zmm53523; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm223524; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %zmm253525; AVX512DQ-NEXT: vmovdqa64 128(%rdx), %zmm133526; AVX512DQ-NEXT: vmovdqa64 192(%rdx), %zmm63527; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm213528; AVX512DQ-NEXT: vmovdqa64 64(%rcx), %zmm263529; AVX512DQ-NEXT: vmovdqa64 128(%rcx), %zmm193530; AVX512DQ-NEXT: vmovdqa64 192(%rcx), %zmm93531; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3532; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm83533; AVX512DQ-NEXT: vpermt2q %zmm21, %zmm14, %zmm83534; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3535; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm43536; AVX512DQ-NEXT: vpermt2q %zmm17, %zmm7, %zmm43537; AVX512DQ-NEXT: movb $-52, %al3538; AVX512DQ-NEXT: kmovw %eax, %k13539; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3540; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3541; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm103542; AVX512DQ-NEXT: vpermt2q %zmm21, %zmm16, %zmm103543; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3544; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm83545; AVX512DQ-NEXT: vpermt2q %zmm17, %zmm11, %zmm83546; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3547; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3548; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm203549; AVX512DQ-NEXT: vpermt2q %zmm21, %zmm18, %zmm203550; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3551; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm103552; AVX512DQ-NEXT: vpermt2q %zmm17, %zmm15, %zmm103553; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3554; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3555; AVX512DQ-NEXT: vpermt2q %zmm21, %zmm20, %zmm223556; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3557; AVX512DQ-NEXT: vpermt2q %zmm17, %zmm21, %zmm03558; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3559; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm223560; AVX512DQ-NEXT: vpermt2q %zmm26, %zmm14, %zmm223561; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm173562; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm7, %zmm173563; AVX512DQ-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3564; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm243565; AVX512DQ-NEXT: vpermt2q %zmm26, %zmm16, %zmm243566; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm223567; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm11, %zmm223568; AVX512DQ-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3569; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm273570; AVX512DQ-NEXT: vpermt2q %zmm26, %zmm18, %zmm273571; AVX512DQ-NEXT: vmovdqa64 %zmm1, %zmm243572; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm15, %zmm243573; AVX512DQ-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3574; AVX512DQ-NEXT: vpermt2q %zmm26, %zmm20, %zmm253575; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm21, %zmm13576; AVX512DQ-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3577; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm233578; AVX512DQ-NEXT: vpermt2q %zmm19, %zmm14, %zmm233579; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm253580; AVX512DQ-NEXT: vpermt2q %zmm12, %zmm7, %zmm253581; AVX512DQ-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3582; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm233583; AVX512DQ-NEXT: vpermt2q %zmm19, %zmm16, %zmm233584; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm263585; AVX512DQ-NEXT: vpermt2q %zmm12, %zmm11, %zmm263586; AVX512DQ-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3587; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm233588; AVX512DQ-NEXT: vpermt2q %zmm19, %zmm18, %zmm233589; AVX512DQ-NEXT: vmovdqa64 %zmm2, %zmm273590; AVX512DQ-NEXT: vpermt2q %zmm12, %zmm15, %zmm273591; AVX512DQ-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3592; AVX512DQ-NEXT: vpermt2q %zmm19, %zmm20, %zmm133593; AVX512DQ-NEXT: vpermt2q %zmm12, %zmm21, %zmm23594; AVX512DQ-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3595; AVX512DQ-NEXT: vpermi2q %zmm9, %zmm6, %zmm143596; AVX512DQ-NEXT: vpermi2q %zmm5, %zmm3, %zmm73597; AVX512DQ-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3598; AVX512DQ-NEXT: vpermi2q %zmm9, %zmm6, %zmm163599; AVX512DQ-NEXT: vpermi2q %zmm5, %zmm3, %zmm113600; AVX512DQ-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3601; AVX512DQ-NEXT: vpermi2q %zmm9, %zmm6, %zmm183602; AVX512DQ-NEXT: vpermi2q %zmm5, %zmm3, %zmm153603; AVX512DQ-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3604; AVX512DQ-NEXT: vpermt2q %zmm9, %zmm20, %zmm63605; AVX512DQ-NEXT: vpermt2q %zmm5, %zmm21, %zmm33606; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3607; AVX512DQ-NEXT: vmovdqa64 %zmm3, 896(%r8)3608; AVX512DQ-NEXT: vmovdqa64 %zmm15, 960(%r8)3609; AVX512DQ-NEXT: vmovdqa64 %zmm11, 768(%r8)3610; AVX512DQ-NEXT: vmovdqa64 %zmm7, 832(%r8)3611; AVX512DQ-NEXT: vmovdqa64 %zmm2, 640(%r8)3612; AVX512DQ-NEXT: vmovdqa64 %zmm27, 704(%r8)3613; AVX512DQ-NEXT: vmovdqa64 %zmm26, 512(%r8)3614; AVX512DQ-NEXT: vmovdqa64 %zmm25, 576(%r8)3615; AVX512DQ-NEXT: vmovdqa64 %zmm1, 384(%r8)3616; AVX512DQ-NEXT: vmovdqa64 %zmm24, 448(%r8)3617; AVX512DQ-NEXT: vmovdqa64 %zmm22, 256(%r8)3618; AVX512DQ-NEXT: vmovdqa64 %zmm17, 320(%r8)3619; AVX512DQ-NEXT: vmovdqa64 %zmm0, 128(%r8)3620; AVX512DQ-NEXT: vmovdqa64 %zmm10, 192(%r8)3621; AVX512DQ-NEXT: vmovdqa64 %zmm8, (%r8)3622; AVX512DQ-NEXT: vmovdqa64 %zmm4, 64(%r8)3623; AVX512DQ-NEXT: vzeroupper3624; AVX512DQ-NEXT: retq3625;3626; AVX512DQ-FCP-LABEL: store_i64_stride4_vf32:3627; AVX512DQ-FCP: # %bb.0:3628; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm03629; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm13630; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23631; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm33632; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm173633; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rsi), %zmm233634; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rsi), %zmm123635; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rsi), %zmm53636; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm223637; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdx), %zmm253638; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdx), %zmm133639; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdx), %zmm63640; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm213641; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rcx), %zmm263642; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rcx), %zmm193643; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rcx), %zmm93644; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3645; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm83646; AVX512DQ-FCP-NEXT: vpermt2q %zmm21, %zmm14, %zmm83647; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3648; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm43649; AVX512DQ-FCP-NEXT: vpermt2q %zmm17, %zmm7, %zmm43650; AVX512DQ-FCP-NEXT: movb $-52, %al3651; AVX512DQ-FCP-NEXT: kmovw %eax, %k13652; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3653; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3654; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm103655; AVX512DQ-FCP-NEXT: vpermt2q %zmm21, %zmm16, %zmm103656; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3657; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm83658; AVX512DQ-FCP-NEXT: vpermt2q %zmm17, %zmm11, %zmm83659; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3660; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3661; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm203662; AVX512DQ-FCP-NEXT: vpermt2q %zmm21, %zmm18, %zmm203663; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3664; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm103665; AVX512DQ-FCP-NEXT: vpermt2q %zmm17, %zmm15, %zmm103666; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3667; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3668; AVX512DQ-FCP-NEXT: vpermt2q %zmm21, %zmm20, %zmm223669; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3670; AVX512DQ-FCP-NEXT: vpermt2q %zmm17, %zmm21, %zmm03671; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3672; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm223673; AVX512DQ-FCP-NEXT: vpermt2q %zmm26, %zmm14, %zmm223674; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm173675; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm7, %zmm173676; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3677; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm243678; AVX512DQ-FCP-NEXT: vpermt2q %zmm26, %zmm16, %zmm243679; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm223680; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm11, %zmm223681; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3682; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm273683; AVX512DQ-FCP-NEXT: vpermt2q %zmm26, %zmm18, %zmm273684; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, %zmm243685; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm243686; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3687; AVX512DQ-FCP-NEXT: vpermt2q %zmm26, %zmm20, %zmm253688; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm21, %zmm13689; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3690; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm233691; AVX512DQ-FCP-NEXT: vpermt2q %zmm19, %zmm14, %zmm233692; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm253693; AVX512DQ-FCP-NEXT: vpermt2q %zmm12, %zmm7, %zmm253694; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3695; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm233696; AVX512DQ-FCP-NEXT: vpermt2q %zmm19, %zmm16, %zmm233697; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm263698; AVX512DQ-FCP-NEXT: vpermt2q %zmm12, %zmm11, %zmm263699; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3700; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm233701; AVX512DQ-FCP-NEXT: vpermt2q %zmm19, %zmm18, %zmm233702; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, %zmm273703; AVX512DQ-FCP-NEXT: vpermt2q %zmm12, %zmm15, %zmm273704; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3705; AVX512DQ-FCP-NEXT: vpermt2q %zmm19, %zmm20, %zmm133706; AVX512DQ-FCP-NEXT: vpermt2q %zmm12, %zmm21, %zmm23707; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3708; AVX512DQ-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm143709; AVX512DQ-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm73710; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3711; AVX512DQ-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm163712; AVX512DQ-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm113713; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3714; AVX512DQ-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm183715; AVX512DQ-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm153716; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3717; AVX512DQ-FCP-NEXT: vpermt2q %zmm9, %zmm20, %zmm63718; AVX512DQ-FCP-NEXT: vpermt2q %zmm5, %zmm21, %zmm33719; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3720; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 896(%r8)3721; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 960(%r8)3722; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, 768(%r8)3723; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, 832(%r8)3724; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, 640(%r8)3725; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, 704(%r8)3726; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, 512(%r8)3727; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)3728; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)3729; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, 448(%r8)3730; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, 256(%r8)3731; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, 320(%r8)3732; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)3733; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 192(%r8)3734; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, (%r8)3735; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, 64(%r8)3736; AVX512DQ-FCP-NEXT: vzeroupper3737; AVX512DQ-FCP-NEXT: retq3738;3739; AVX512BW-LABEL: store_i64_stride4_vf32:3740; AVX512BW: # %bb.0:3741; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm03742; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm13743; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm23744; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm33745; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm173746; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm233747; AVX512BW-NEXT: vmovdqa64 128(%rsi), %zmm123748; AVX512BW-NEXT: vmovdqa64 192(%rsi), %zmm53749; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm223750; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm253751; AVX512BW-NEXT: vmovdqa64 128(%rdx), %zmm133752; AVX512BW-NEXT: vmovdqa64 192(%rdx), %zmm63753; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm213754; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm263755; AVX512BW-NEXT: vmovdqa64 128(%rcx), %zmm193756; AVX512BW-NEXT: vmovdqa64 192(%rcx), %zmm93757; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3758; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm83759; AVX512BW-NEXT: vpermt2q %zmm21, %zmm14, %zmm83760; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3761; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm43762; AVX512BW-NEXT: vpermt2q %zmm17, %zmm7, %zmm43763; AVX512BW-NEXT: movb $-52, %al3764; AVX512BW-NEXT: kmovd %eax, %k13765; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3766; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3767; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm103768; AVX512BW-NEXT: vpermt2q %zmm21, %zmm16, %zmm103769; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3770; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm83771; AVX512BW-NEXT: vpermt2q %zmm17, %zmm11, %zmm83772; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3773; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3774; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm203775; AVX512BW-NEXT: vpermt2q %zmm21, %zmm18, %zmm203776; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3777; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm103778; AVX512BW-NEXT: vpermt2q %zmm17, %zmm15, %zmm103779; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3780; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3781; AVX512BW-NEXT: vpermt2q %zmm21, %zmm20, %zmm223782; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3783; AVX512BW-NEXT: vpermt2q %zmm17, %zmm21, %zmm03784; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3785; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm223786; AVX512BW-NEXT: vpermt2q %zmm26, %zmm14, %zmm223787; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm173788; AVX512BW-NEXT: vpermt2q %zmm23, %zmm7, %zmm173789; AVX512BW-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3790; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm243791; AVX512BW-NEXT: vpermt2q %zmm26, %zmm16, %zmm243792; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm223793; AVX512BW-NEXT: vpermt2q %zmm23, %zmm11, %zmm223794; AVX512BW-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3795; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm273796; AVX512BW-NEXT: vpermt2q %zmm26, %zmm18, %zmm273797; AVX512BW-NEXT: vmovdqa64 %zmm1, %zmm243798; AVX512BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm243799; AVX512BW-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3800; AVX512BW-NEXT: vpermt2q %zmm26, %zmm20, %zmm253801; AVX512BW-NEXT: vpermt2q %zmm23, %zmm21, %zmm13802; AVX512BW-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3803; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm233804; AVX512BW-NEXT: vpermt2q %zmm19, %zmm14, %zmm233805; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm253806; AVX512BW-NEXT: vpermt2q %zmm12, %zmm7, %zmm253807; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3808; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm233809; AVX512BW-NEXT: vpermt2q %zmm19, %zmm16, %zmm233810; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm263811; AVX512BW-NEXT: vpermt2q %zmm12, %zmm11, %zmm263812; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3813; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm233814; AVX512BW-NEXT: vpermt2q %zmm19, %zmm18, %zmm233815; AVX512BW-NEXT: vmovdqa64 %zmm2, %zmm273816; AVX512BW-NEXT: vpermt2q %zmm12, %zmm15, %zmm273817; AVX512BW-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3818; AVX512BW-NEXT: vpermt2q %zmm19, %zmm20, %zmm133819; AVX512BW-NEXT: vpermt2q %zmm12, %zmm21, %zmm23820; AVX512BW-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3821; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm143822; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm73823; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3824; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm163825; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm113826; AVX512BW-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3827; AVX512BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm183828; AVX512BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm153829; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3830; AVX512BW-NEXT: vpermt2q %zmm9, %zmm20, %zmm63831; AVX512BW-NEXT: vpermt2q %zmm5, %zmm21, %zmm33832; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3833; AVX512BW-NEXT: vmovdqa64 %zmm3, 896(%r8)3834; AVX512BW-NEXT: vmovdqa64 %zmm15, 960(%r8)3835; AVX512BW-NEXT: vmovdqa64 %zmm11, 768(%r8)3836; AVX512BW-NEXT: vmovdqa64 %zmm7, 832(%r8)3837; AVX512BW-NEXT: vmovdqa64 %zmm2, 640(%r8)3838; AVX512BW-NEXT: vmovdqa64 %zmm27, 704(%r8)3839; AVX512BW-NEXT: vmovdqa64 %zmm26, 512(%r8)3840; AVX512BW-NEXT: vmovdqa64 %zmm25, 576(%r8)3841; AVX512BW-NEXT: vmovdqa64 %zmm1, 384(%r8)3842; AVX512BW-NEXT: vmovdqa64 %zmm24, 448(%r8)3843; AVX512BW-NEXT: vmovdqa64 %zmm22, 256(%r8)3844; AVX512BW-NEXT: vmovdqa64 %zmm17, 320(%r8)3845; AVX512BW-NEXT: vmovdqa64 %zmm0, 128(%r8)3846; AVX512BW-NEXT: vmovdqa64 %zmm10, 192(%r8)3847; AVX512BW-NEXT: vmovdqa64 %zmm8, (%r8)3848; AVX512BW-NEXT: vmovdqa64 %zmm4, 64(%r8)3849; AVX512BW-NEXT: vzeroupper3850; AVX512BW-NEXT: retq3851;3852; AVX512BW-FCP-LABEL: store_i64_stride4_vf32:3853; AVX512BW-FCP: # %bb.0:3854; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm03855; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm13856; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm23857; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm33858; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm173859; AVX512BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm233860; AVX512BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm123861; AVX512BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm53862; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm223863; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm253864; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm133865; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm63866; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm213867; AVX512BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm263868; AVX512BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm193869; AVX512BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm93870; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3871; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm83872; AVX512BW-FCP-NEXT: vpermt2q %zmm21, %zmm14, %zmm83873; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3874; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm43875; AVX512BW-FCP-NEXT: vpermt2q %zmm17, %zmm7, %zmm43876; AVX512BW-FCP-NEXT: movb $-52, %al3877; AVX512BW-FCP-NEXT: kmovd %eax, %k13878; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3879; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3880; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm103881; AVX512BW-FCP-NEXT: vpermt2q %zmm21, %zmm16, %zmm103882; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3883; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm83884; AVX512BW-FCP-NEXT: vpermt2q %zmm17, %zmm11, %zmm83885; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3886; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]3887; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm203888; AVX512BW-FCP-NEXT: vpermt2q %zmm21, %zmm18, %zmm203889; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]3890; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm103891; AVX512BW-FCP-NEXT: vpermt2q %zmm17, %zmm15, %zmm103892; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}3893; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]3894; AVX512BW-FCP-NEXT: vpermt2q %zmm21, %zmm20, %zmm223895; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]3896; AVX512BW-FCP-NEXT: vpermt2q %zmm17, %zmm21, %zmm03897; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}3898; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm223899; AVX512BW-FCP-NEXT: vpermt2q %zmm26, %zmm14, %zmm223900; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm173901; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm7, %zmm173902; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}3903; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm243904; AVX512BW-FCP-NEXT: vpermt2q %zmm26, %zmm16, %zmm243905; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm223906; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm11, %zmm223907; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}3908; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm273909; AVX512BW-FCP-NEXT: vpermt2q %zmm26, %zmm18, %zmm273910; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm243911; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm243912; AVX512BW-FCP-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}3913; AVX512BW-FCP-NEXT: vpermt2q %zmm26, %zmm20, %zmm253914; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm21, %zmm13915; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}3916; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm233917; AVX512BW-FCP-NEXT: vpermt2q %zmm19, %zmm14, %zmm233918; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm253919; AVX512BW-FCP-NEXT: vpermt2q %zmm12, %zmm7, %zmm253920; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}3921; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm233922; AVX512BW-FCP-NEXT: vpermt2q %zmm19, %zmm16, %zmm233923; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm263924; AVX512BW-FCP-NEXT: vpermt2q %zmm12, %zmm11, %zmm263925; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}3926; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm233927; AVX512BW-FCP-NEXT: vpermt2q %zmm19, %zmm18, %zmm233928; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm273929; AVX512BW-FCP-NEXT: vpermt2q %zmm12, %zmm15, %zmm273930; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}3931; AVX512BW-FCP-NEXT: vpermt2q %zmm19, %zmm20, %zmm133932; AVX512BW-FCP-NEXT: vpermt2q %zmm12, %zmm21, %zmm23933; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}3934; AVX512BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm143935; AVX512BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm73936; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}3937; AVX512BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm163938; AVX512BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm113939; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}3940; AVX512BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm183941; AVX512BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm153942; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}3943; AVX512BW-FCP-NEXT: vpermt2q %zmm9, %zmm20, %zmm63944; AVX512BW-FCP-NEXT: vpermt2q %zmm5, %zmm21, %zmm33945; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}3946; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 896(%r8)3947; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 960(%r8)3948; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, 768(%r8)3949; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, 832(%r8)3950; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, 640(%r8)3951; AVX512BW-FCP-NEXT: vmovdqa64 %zmm27, 704(%r8)3952; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, 512(%r8)3953; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)3954; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)3955; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, 448(%r8)3956; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, 256(%r8)3957; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, 320(%r8)3958; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)3959; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%r8)3960; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, (%r8)3961; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, 64(%r8)3962; AVX512BW-FCP-NEXT: vzeroupper3963; AVX512BW-FCP-NEXT: retq3964;3965; AVX512DQ-BW-LABEL: store_i64_stride4_vf32:3966; AVX512DQ-BW: # %bb.0:3967; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm03968; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm13969; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm23970; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm33971; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm173972; AVX512DQ-BW-NEXT: vmovdqa64 64(%rsi), %zmm233973; AVX512DQ-BW-NEXT: vmovdqa64 128(%rsi), %zmm123974; AVX512DQ-BW-NEXT: vmovdqa64 192(%rsi), %zmm53975; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm223976; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %zmm253977; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdx), %zmm133978; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdx), %zmm63979; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm213980; AVX512DQ-BW-NEXT: vmovdqa64 64(%rcx), %zmm263981; AVX512DQ-BW-NEXT: vmovdqa64 128(%rcx), %zmm193982; AVX512DQ-BW-NEXT: vmovdqa64 192(%rcx), %zmm93983; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]3984; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm83985; AVX512DQ-BW-NEXT: vpermt2q %zmm21, %zmm14, %zmm83986; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]3987; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm43988; AVX512DQ-BW-NEXT: vpermt2q %zmm17, %zmm7, %zmm43989; AVX512DQ-BW-NEXT: movb $-52, %al3990; AVX512DQ-BW-NEXT: kmovd %eax, %k13991; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}3992; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]3993; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm103994; AVX512DQ-BW-NEXT: vpermt2q %zmm21, %zmm16, %zmm103995; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]3996; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm83997; AVX512DQ-BW-NEXT: vpermt2q %zmm17, %zmm11, %zmm83998; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}3999; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]4000; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm204001; AVX512DQ-BW-NEXT: vpermt2q %zmm21, %zmm18, %zmm204002; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]4003; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm104004; AVX512DQ-BW-NEXT: vpermt2q %zmm17, %zmm15, %zmm104005; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}4006; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]4007; AVX512DQ-BW-NEXT: vpermt2q %zmm21, %zmm20, %zmm224008; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]4009; AVX512DQ-BW-NEXT: vpermt2q %zmm17, %zmm21, %zmm04010; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}4011; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm224012; AVX512DQ-BW-NEXT: vpermt2q %zmm26, %zmm14, %zmm224013; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm174014; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm7, %zmm174015; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}4016; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm244017; AVX512DQ-BW-NEXT: vpermt2q %zmm26, %zmm16, %zmm244018; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm224019; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm11, %zmm224020; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}4021; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm274022; AVX512DQ-BW-NEXT: vpermt2q %zmm26, %zmm18, %zmm274023; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, %zmm244024; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm244025; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}4026; AVX512DQ-BW-NEXT: vpermt2q %zmm26, %zmm20, %zmm254027; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm21, %zmm14028; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}4029; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm234030; AVX512DQ-BW-NEXT: vpermt2q %zmm19, %zmm14, %zmm234031; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm254032; AVX512DQ-BW-NEXT: vpermt2q %zmm12, %zmm7, %zmm254033; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}4034; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm234035; AVX512DQ-BW-NEXT: vpermt2q %zmm19, %zmm16, %zmm234036; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm264037; AVX512DQ-BW-NEXT: vpermt2q %zmm12, %zmm11, %zmm264038; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}4039; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm234040; AVX512DQ-BW-NEXT: vpermt2q %zmm19, %zmm18, %zmm234041; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, %zmm274042; AVX512DQ-BW-NEXT: vpermt2q %zmm12, %zmm15, %zmm274043; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}4044; AVX512DQ-BW-NEXT: vpermt2q %zmm19, %zmm20, %zmm134045; AVX512DQ-BW-NEXT: vpermt2q %zmm12, %zmm21, %zmm24046; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}4047; AVX512DQ-BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm144048; AVX512DQ-BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm74049; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}4050; AVX512DQ-BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm164051; AVX512DQ-BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm114052; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}4053; AVX512DQ-BW-NEXT: vpermi2q %zmm9, %zmm6, %zmm184054; AVX512DQ-BW-NEXT: vpermi2q %zmm5, %zmm3, %zmm154055; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}4056; AVX512DQ-BW-NEXT: vpermt2q %zmm9, %zmm20, %zmm64057; AVX512DQ-BW-NEXT: vpermt2q %zmm5, %zmm21, %zmm34058; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}4059; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, 896(%r8)4060; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 960(%r8)4061; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 768(%r8)4062; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, 832(%r8)4063; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, 640(%r8)4064; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, 704(%r8)4065; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, 512(%r8)4066; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, 576(%r8)4067; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, 384(%r8)4068; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, 448(%r8)4069; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, 256(%r8)4070; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 320(%r8)4071; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, 128(%r8)4072; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, 192(%r8)4073; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, (%r8)4074; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, 64(%r8)4075; AVX512DQ-BW-NEXT: vzeroupper4076; AVX512DQ-BW-NEXT: retq4077;4078; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf32:4079; AVX512DQ-BW-FCP: # %bb.0:4080; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm04081; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm14082; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm24083; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm34084; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm174085; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm234086; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm124087; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm54088; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm224089; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm254090; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm134091; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm64092; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm214093; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm264094; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm194095; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm94096; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm14 = [0,0,2,10,0,0,3,11]4097; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm84098; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm21, %zmm14, %zmm84099; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [2,10,0,0,3,11,0,0]4100; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm44101; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm17, %zmm7, %zmm44102; AVX512DQ-BW-FCP-NEXT: movb $-52, %al4103; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k14104; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm4 {%k1}4105; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm16 = [0,0,0,8,0,0,1,9]4106; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm104107; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm21, %zmm16, %zmm104108; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm11 = [0,8,0,0,1,9,0,0]4109; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm84110; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm17, %zmm11, %zmm84111; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm8 {%k1}4112; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm18 = [0,0,6,14,0,0,7,15]4113; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm204114; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm21, %zmm18, %zmm204115; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [6,14,0,0,7,15,0,0]4116; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm104117; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm17, %zmm15, %zmm104118; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm10 {%k1}4119; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm20 = [0,0,4,12,0,0,5,13]4120; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm21, %zmm20, %zmm224121; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm21 = [4,12,0,0,5,13,0,0]4122; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm17, %zmm21, %zmm04123; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm0 {%k1}4124; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm224125; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm26, %zmm14, %zmm224126; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm174127; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm7, %zmm174128; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, %zmm17 {%k1}4129; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm244130; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm26, %zmm16, %zmm244131; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm224132; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm11, %zmm224133; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, %zmm22 {%k1}4134; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm274135; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm26, %zmm18, %zmm274136; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, %zmm244137; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm244138; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm27, %zmm24 {%k1}4139; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm26, %zmm20, %zmm254140; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm21, %zmm14141; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, %zmm1 {%k1}4142; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm234143; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm19, %zmm14, %zmm234144; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm254145; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm12, %zmm7, %zmm254146; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm25 {%k1}4147; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm234148; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm19, %zmm16, %zmm234149; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm264150; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm12, %zmm11, %zmm264151; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm26 {%k1}4152; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm234153; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm19, %zmm18, %zmm234154; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, %zmm274155; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm12, %zmm15, %zmm274156; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, %zmm27 {%k1}4157; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm19, %zmm20, %zmm134158; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm12, %zmm21, %zmm24159; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, %zmm2 {%k1}4160; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm144161; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm74162; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm7 {%k1}4163; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm164164; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm114165; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, %zmm11 {%k1}4166; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm9, %zmm6, %zmm184167; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm5, %zmm3, %zmm154168; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm15 {%k1}4169; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm9, %zmm20, %zmm64170; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm5, %zmm21, %zmm34171; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm3 {%k1}4172; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 896(%r8)4173; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 960(%r8)4174; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, 768(%r8)4175; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, 832(%r8)4176; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, 640(%r8)4177; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm27, 704(%r8)4178; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, 512(%r8)4179; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)4180; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 384(%r8)4181; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, 448(%r8)4182; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, 256(%r8)4183; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, 320(%r8)4184; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, 128(%r8)4185; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 192(%r8)4186; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, (%r8)4187; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, 64(%r8)4188; AVX512DQ-BW-FCP-NEXT: vzeroupper4189; AVX512DQ-BW-FCP-NEXT: retq4190 %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 644191 %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 644192 %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 644193 %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 644194 %1 = shufflevector <32 x i64> %in.vec0, <32 x i64> %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>4195 %2 = shufflevector <32 x i64> %in.vec2, <32 x i64> %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>4196 %3 = shufflevector <64 x i64> %1, <64 x i64> %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>4197 %interleaved.vec = shufflevector <128 x i64> %3, <128 x i64> poison, <128 x i32> <i32 0, i32 32, i32 64, i32 96, i32 1, i32 33, i32 65, i32 97, i32 2, i32 34, i32 66, i32 98, i32 3, i32 35, i32 67, i32 99, i32 4, i32 36, i32 68, i32 100, i32 5, i32 37, i32 69, i32 101, i32 6, i32 38, i32 70, i32 102, i32 7, i32 39, i32 71, i32 103, i32 8, i32 40, i32 72, i32 104, i32 9, i32 41, i32 73, i32 105, i32 10, i32 42, i32 74, i32 106, i32 11, i32 43, i32 75, i32 107, i32 12, i32 44, i32 76, i32 108, i32 13, i32 45, i32 77, i32 109, i32 14, i32 46, i32 78, i32 110, i32 15, i32 47, i32 79, i32 111, i32 16, i32 48, i32 80, i32 112, i32 17, i32 49, i32 81, i32 113, i32 18, i32 50, i32 82, i32 114, i32 19, i32 51, i32 83, i32 115, i32 20, i32 52, i32 84, i32 116, i32 21, i32 53, i32 85, i32 117, i32 22, i32 54, i32 86, i32 118, i32 23, i32 55, i32 87, i32 119, i32 24, i32 56, i32 88, i32 120, i32 25, i32 57, i32 89, i32 121, i32 26, i32 58, i32 90, i32 122, i32 27, i32 59, i32 91, i32 123, i32 28, i32 60, i32 92, i32 124, i32 29, i32 61, i32 93, i32 125, i32 30, i32 62, i32 94, i32 126, i32 31, i32 63, i32 95, i32 127>4198 store <128 x i64> %interleaved.vec, ptr %out.vec, align 644199 ret void4200}4201 4202define void @store_i64_stride4_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %out.vec) nounwind {4203; SSE-LABEL: store_i64_stride4_vf64:4204; SSE: # %bb.0:4205; SSE-NEXT: subq $1688, %rsp # imm = 0x6984206; SSE-NEXT: movaps (%rdi), %xmm74207; SSE-NEXT: movaps 16(%rdi), %xmm84208; SSE-NEXT: movaps 32(%rdi), %xmm94209; SSE-NEXT: movaps 48(%rdi), %xmm104210; SSE-NEXT: movaps (%rsi), %xmm34211; SSE-NEXT: movaps 16(%rsi), %xmm24212; SSE-NEXT: movaps 32(%rsi), %xmm14213; SSE-NEXT: movaps 48(%rsi), %xmm04214; SSE-NEXT: movaps (%rdx), %xmm114215; SSE-NEXT: movaps 16(%rdx), %xmm124216; SSE-NEXT: movaps 32(%rdx), %xmm134217; SSE-NEXT: movaps 48(%rdx), %xmm144218; SSE-NEXT: movaps (%rcx), %xmm44219; SSE-NEXT: movaps 16(%rcx), %xmm54220; SSE-NEXT: movaps 32(%rcx), %xmm64221; SSE-NEXT: movaps %xmm7, %xmm154222; SSE-NEXT: movlhps {{.*#+}} xmm15 = xmm15[0],xmm3[0]4223; SSE-NEXT: movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4224; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm3[1]4225; SSE-NEXT: movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4226; SSE-NEXT: movaps %xmm11, %xmm34227; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm4[0]4228; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4229; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm4[1]4230; SSE-NEXT: movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4231; SSE-NEXT: movaps %xmm8, %xmm34232; SSE-NEXT: movlhps {{.*#+}} xmm3 = xmm3[0],xmm2[0]4233; SSE-NEXT: movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4234; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]4235; SSE-NEXT: movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4236; SSE-NEXT: movaps %xmm12, %xmm24237; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm5[0]4238; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4239; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm5[1]4240; SSE-NEXT: movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4241; SSE-NEXT: movaps %xmm9, %xmm24242; SSE-NEXT: movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]4243; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4244; SSE-NEXT: unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]4245; SSE-NEXT: movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4246; SSE-NEXT: movaps %xmm13, %xmm14247; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm6[0]4248; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4249; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm6[1]4250; SSE-NEXT: movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4251; SSE-NEXT: movaps %xmm10, %xmm14252; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4253; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4254; SSE-NEXT: unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm0[1]4255; SSE-NEXT: movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4256; SSE-NEXT: movaps 48(%rcx), %xmm04257; SSE-NEXT: movaps %xmm14, %xmm14258; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4259; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4260; SSE-NEXT: unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]4261; SSE-NEXT: movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4262; SSE-NEXT: movaps 64(%rdi), %xmm24263; SSE-NEXT: movaps 64(%rsi), %xmm04264; SSE-NEXT: movaps %xmm2, %xmm14265; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4266; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4267; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4268; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4269; SSE-NEXT: movaps 64(%rdx), %xmm24270; SSE-NEXT: movaps 64(%rcx), %xmm04271; SSE-NEXT: movaps %xmm2, %xmm14272; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4273; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4274; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4275; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4276; SSE-NEXT: movaps 80(%rdi), %xmm24277; SSE-NEXT: movaps 80(%rsi), %xmm04278; SSE-NEXT: movaps %xmm2, %xmm14279; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4280; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4281; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4282; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4283; SSE-NEXT: movaps 80(%rdx), %xmm24284; SSE-NEXT: movaps 80(%rcx), %xmm04285; SSE-NEXT: movaps %xmm2, %xmm14286; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4287; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4288; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4289; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4290; SSE-NEXT: movaps 96(%rdi), %xmm24291; SSE-NEXT: movaps 96(%rsi), %xmm04292; SSE-NEXT: movaps %xmm2, %xmm14293; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4294; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4295; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4296; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4297; SSE-NEXT: movaps 96(%rdx), %xmm24298; SSE-NEXT: movaps 96(%rcx), %xmm04299; SSE-NEXT: movaps %xmm2, %xmm14300; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4301; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4302; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4303; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4304; SSE-NEXT: movaps 112(%rdi), %xmm24305; SSE-NEXT: movaps 112(%rsi), %xmm04306; SSE-NEXT: movaps %xmm2, %xmm14307; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4308; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4309; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4310; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4311; SSE-NEXT: movaps 112(%rdx), %xmm24312; SSE-NEXT: movaps 112(%rcx), %xmm04313; SSE-NEXT: movaps %xmm2, %xmm14314; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4315; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4316; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4317; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4318; SSE-NEXT: movaps 128(%rdi), %xmm24319; SSE-NEXT: movaps 128(%rsi), %xmm04320; SSE-NEXT: movaps %xmm2, %xmm14321; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4322; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4323; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4324; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4325; SSE-NEXT: movaps 128(%rdx), %xmm24326; SSE-NEXT: movaps 128(%rcx), %xmm04327; SSE-NEXT: movaps %xmm2, %xmm14328; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4329; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4330; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4331; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4332; SSE-NEXT: movaps 144(%rdi), %xmm24333; SSE-NEXT: movaps 144(%rsi), %xmm04334; SSE-NEXT: movaps %xmm2, %xmm14335; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4336; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4337; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4338; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4339; SSE-NEXT: movaps 144(%rdx), %xmm24340; SSE-NEXT: movaps 144(%rcx), %xmm04341; SSE-NEXT: movaps %xmm2, %xmm14342; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4343; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4344; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4345; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4346; SSE-NEXT: movaps 160(%rdi), %xmm24347; SSE-NEXT: movaps 160(%rsi), %xmm04348; SSE-NEXT: movaps %xmm2, %xmm14349; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4350; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4351; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4352; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4353; SSE-NEXT: movaps 160(%rdx), %xmm24354; SSE-NEXT: movaps 160(%rcx), %xmm04355; SSE-NEXT: movaps %xmm2, %xmm14356; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4357; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4358; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4359; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4360; SSE-NEXT: movaps 176(%rdi), %xmm24361; SSE-NEXT: movaps 176(%rsi), %xmm04362; SSE-NEXT: movaps %xmm2, %xmm14363; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4364; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4365; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4366; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4367; SSE-NEXT: movaps 176(%rdx), %xmm24368; SSE-NEXT: movaps 176(%rcx), %xmm04369; SSE-NEXT: movaps %xmm2, %xmm14370; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4371; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4372; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4373; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4374; SSE-NEXT: movaps 192(%rdi), %xmm24375; SSE-NEXT: movaps 192(%rsi), %xmm04376; SSE-NEXT: movaps %xmm2, %xmm14377; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4378; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4379; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4380; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4381; SSE-NEXT: movaps 192(%rdx), %xmm24382; SSE-NEXT: movaps 192(%rcx), %xmm04383; SSE-NEXT: movaps %xmm2, %xmm14384; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4385; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4386; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4387; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4388; SSE-NEXT: movaps 208(%rdi), %xmm24389; SSE-NEXT: movaps 208(%rsi), %xmm04390; SSE-NEXT: movaps %xmm2, %xmm14391; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4392; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4393; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4394; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4395; SSE-NEXT: movaps 208(%rdx), %xmm24396; SSE-NEXT: movaps 208(%rcx), %xmm04397; SSE-NEXT: movaps %xmm2, %xmm14398; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4399; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4400; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4401; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4402; SSE-NEXT: movaps 224(%rdi), %xmm24403; SSE-NEXT: movaps 224(%rsi), %xmm04404; SSE-NEXT: movaps %xmm2, %xmm14405; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4406; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4407; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4408; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4409; SSE-NEXT: movaps 224(%rdx), %xmm24410; SSE-NEXT: movaps 224(%rcx), %xmm04411; SSE-NEXT: movaps %xmm2, %xmm14412; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4413; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4414; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4415; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4416; SSE-NEXT: movaps 240(%rdi), %xmm24417; SSE-NEXT: movaps 240(%rsi), %xmm04418; SSE-NEXT: movaps %xmm2, %xmm14419; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4420; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4421; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4422; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4423; SSE-NEXT: movaps 240(%rdx), %xmm24424; SSE-NEXT: movaps 240(%rcx), %xmm04425; SSE-NEXT: movaps %xmm2, %xmm14426; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4427; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4428; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4429; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4430; SSE-NEXT: movaps 256(%rdi), %xmm24431; SSE-NEXT: movaps 256(%rsi), %xmm04432; SSE-NEXT: movaps %xmm2, %xmm14433; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4434; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4435; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4436; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4437; SSE-NEXT: movaps 256(%rdx), %xmm24438; SSE-NEXT: movaps 256(%rcx), %xmm04439; SSE-NEXT: movaps %xmm2, %xmm14440; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4441; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4442; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4443; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4444; SSE-NEXT: movaps 272(%rdi), %xmm24445; SSE-NEXT: movaps 272(%rsi), %xmm04446; SSE-NEXT: movaps %xmm2, %xmm14447; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4448; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4449; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4450; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4451; SSE-NEXT: movaps 272(%rdx), %xmm24452; SSE-NEXT: movaps 272(%rcx), %xmm04453; SSE-NEXT: movaps %xmm2, %xmm14454; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4455; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4456; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4457; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4458; SSE-NEXT: movaps 288(%rdi), %xmm24459; SSE-NEXT: movaps 288(%rsi), %xmm04460; SSE-NEXT: movaps %xmm2, %xmm14461; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4462; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4463; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4464; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4465; SSE-NEXT: movaps 288(%rdx), %xmm24466; SSE-NEXT: movaps 288(%rcx), %xmm04467; SSE-NEXT: movaps %xmm2, %xmm14468; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4469; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4470; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4471; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4472; SSE-NEXT: movaps 304(%rdi), %xmm24473; SSE-NEXT: movaps 304(%rsi), %xmm04474; SSE-NEXT: movaps %xmm2, %xmm14475; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4476; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4477; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4478; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4479; SSE-NEXT: movaps 304(%rdx), %xmm24480; SSE-NEXT: movaps 304(%rcx), %xmm04481; SSE-NEXT: movaps %xmm2, %xmm14482; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4483; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4484; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4485; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4486; SSE-NEXT: movaps 320(%rdi), %xmm24487; SSE-NEXT: movaps 320(%rsi), %xmm04488; SSE-NEXT: movaps %xmm2, %xmm14489; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4490; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4491; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4492; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4493; SSE-NEXT: movaps 320(%rdx), %xmm24494; SSE-NEXT: movaps 320(%rcx), %xmm04495; SSE-NEXT: movaps %xmm2, %xmm14496; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4497; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4498; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4499; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4500; SSE-NEXT: movaps 336(%rdi), %xmm24501; SSE-NEXT: movaps 336(%rsi), %xmm04502; SSE-NEXT: movaps %xmm2, %xmm14503; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4504; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4505; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4506; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4507; SSE-NEXT: movaps 336(%rdx), %xmm24508; SSE-NEXT: movaps 336(%rcx), %xmm04509; SSE-NEXT: movaps %xmm2, %xmm14510; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4511; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4512; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4513; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4514; SSE-NEXT: movaps 352(%rdi), %xmm24515; SSE-NEXT: movaps 352(%rsi), %xmm04516; SSE-NEXT: movaps %xmm2, %xmm14517; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4518; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4519; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4520; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4521; SSE-NEXT: movaps 352(%rdx), %xmm24522; SSE-NEXT: movaps 352(%rcx), %xmm04523; SSE-NEXT: movaps %xmm2, %xmm14524; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4525; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4526; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4527; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4528; SSE-NEXT: movaps 368(%rdi), %xmm24529; SSE-NEXT: movaps 368(%rsi), %xmm04530; SSE-NEXT: movaps %xmm2, %xmm14531; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4532; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4533; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4534; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4535; SSE-NEXT: movaps 368(%rdx), %xmm24536; SSE-NEXT: movaps 368(%rcx), %xmm04537; SSE-NEXT: movaps %xmm2, %xmm14538; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4539; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4540; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4541; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4542; SSE-NEXT: movaps 384(%rdi), %xmm24543; SSE-NEXT: movaps 384(%rsi), %xmm04544; SSE-NEXT: movaps %xmm2, %xmm14545; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4546; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4547; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4548; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4549; SSE-NEXT: movaps 384(%rdx), %xmm24550; SSE-NEXT: movaps 384(%rcx), %xmm04551; SSE-NEXT: movaps %xmm2, %xmm14552; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4553; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4554; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4555; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4556; SSE-NEXT: movaps 400(%rdi), %xmm24557; SSE-NEXT: movaps 400(%rsi), %xmm04558; SSE-NEXT: movaps %xmm2, %xmm14559; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4560; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4561; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4562; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4563; SSE-NEXT: movaps 400(%rdx), %xmm24564; SSE-NEXT: movaps 400(%rcx), %xmm04565; SSE-NEXT: movaps %xmm2, %xmm14566; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4567; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4568; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4569; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4570; SSE-NEXT: movaps 416(%rdi), %xmm24571; SSE-NEXT: movaps 416(%rsi), %xmm04572; SSE-NEXT: movaps %xmm2, %xmm14573; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4574; SSE-NEXT: movaps %xmm1, (%rsp) # 16-byte Spill4575; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4576; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4577; SSE-NEXT: movaps 416(%rdx), %xmm24578; SSE-NEXT: movaps 416(%rcx), %xmm04579; SSE-NEXT: movaps %xmm2, %xmm14580; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4581; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4582; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4583; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4584; SSE-NEXT: movaps 432(%rdi), %xmm24585; SSE-NEXT: movaps 432(%rsi), %xmm04586; SSE-NEXT: movaps %xmm2, %xmm14587; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4588; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4589; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]4590; SSE-NEXT: movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4591; SSE-NEXT: movaps 432(%rdx), %xmm154592; SSE-NEXT: movaps 432(%rcx), %xmm04593; SSE-NEXT: movaps %xmm15, %xmm14594; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4595; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4596; SSE-NEXT: unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]4597; SSE-NEXT: movaps 448(%rdi), %xmm124598; SSE-NEXT: movaps 448(%rsi), %xmm04599; SSE-NEXT: movaps %xmm12, %xmm14600; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4601; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4602; SSE-NEXT: unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]4603; SSE-NEXT: movaps 448(%rdx), %xmm114604; SSE-NEXT: movaps 448(%rcx), %xmm04605; SSE-NEXT: movaps %xmm11, %xmm14606; SSE-NEXT: movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]4607; SSE-NEXT: movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill4608; SSE-NEXT: unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]4609; SSE-NEXT: movaps 464(%rdi), %xmm134610; SSE-NEXT: movaps 464(%rsi), %xmm04611; SSE-NEXT: movaps %xmm13, %xmm144612; SSE-NEXT: movlhps {{.*#+}} xmm14 = xmm14[0],xmm0[0]4613; SSE-NEXT: unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]4614; SSE-NEXT: movaps 464(%rdx), %xmm74615; SSE-NEXT: movaps 464(%rcx), %xmm14616; SSE-NEXT: movaps %xmm7, %xmm104617; SSE-NEXT: movlhps {{.*#+}} xmm10 = xmm10[0],xmm1[0]4618; SSE-NEXT: unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm1[1]4619; SSE-NEXT: movaps 480(%rdi), %xmm84620; SSE-NEXT: movaps 480(%rsi), %xmm04621; SSE-NEXT: movaps %xmm8, %xmm94622; SSE-NEXT: movlhps {{.*#+}} xmm9 = xmm9[0],xmm0[0]4623; SSE-NEXT: unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm0[1]4624; SSE-NEXT: movaps 480(%rdx), %xmm54625; SSE-NEXT: movaps 480(%rcx), %xmm04626; SSE-NEXT: movaps %xmm5, %xmm64627; SSE-NEXT: movlhps {{.*#+}} xmm6 = xmm6[0],xmm0[0]4628; SSE-NEXT: unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm0[1]4629; SSE-NEXT: movaps 496(%rdi), %xmm24630; SSE-NEXT: movaps 496(%rsi), %xmm34631; SSE-NEXT: movaps %xmm2, %xmm44632; SSE-NEXT: movlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]4633; SSE-NEXT: unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]4634; SSE-NEXT: movaps 496(%rdx), %xmm34635; SSE-NEXT: movaps 496(%rcx), %xmm14636; SSE-NEXT: movaps %xmm3, %xmm04637; SSE-NEXT: movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]4638; SSE-NEXT: unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]4639; SSE-NEXT: movaps %xmm3, 2032(%r8)4640; SSE-NEXT: movaps %xmm2, 2016(%r8)4641; SSE-NEXT: movaps %xmm0, 2000(%r8)4642; SSE-NEXT: movaps %xmm4, 1984(%r8)4643; SSE-NEXT: movaps %xmm5, 1968(%r8)4644; SSE-NEXT: movaps %xmm8, 1952(%r8)4645; SSE-NEXT: movaps %xmm6, 1936(%r8)4646; SSE-NEXT: movaps %xmm9, 1920(%r8)4647; SSE-NEXT: movaps %xmm7, 1904(%r8)4648; SSE-NEXT: movaps %xmm13, 1888(%r8)4649; SSE-NEXT: movaps %xmm10, 1872(%r8)4650; SSE-NEXT: movaps %xmm14, 1856(%r8)4651; SSE-NEXT: movaps %xmm11, 1840(%r8)4652; SSE-NEXT: movaps %xmm12, 1824(%r8)4653; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4654; SSE-NEXT: movaps %xmm0, 1808(%r8)4655; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4656; SSE-NEXT: movaps %xmm0, 1792(%r8)4657; SSE-NEXT: movaps %xmm15, 1776(%r8)4658; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4659; SSE-NEXT: movaps %xmm0, 1760(%r8)4660; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4661; SSE-NEXT: movaps %xmm0, 1744(%r8)4662; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4663; SSE-NEXT: movaps %xmm0, 1728(%r8)4664; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4665; SSE-NEXT: movaps %xmm0, 1712(%r8)4666; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4667; SSE-NEXT: movaps %xmm0, 1696(%r8)4668; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4669; SSE-NEXT: movaps %xmm0, 1680(%r8)4670; SSE-NEXT: movaps (%rsp), %xmm0 # 16-byte Reload4671; SSE-NEXT: movaps %xmm0, 1664(%r8)4672; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4673; SSE-NEXT: movaps %xmm0, 1648(%r8)4674; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4675; SSE-NEXT: movaps %xmm0, 1632(%r8)4676; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4677; SSE-NEXT: movaps %xmm0, 1616(%r8)4678; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4679; SSE-NEXT: movaps %xmm0, 1600(%r8)4680; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4681; SSE-NEXT: movaps %xmm0, 1584(%r8)4682; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4683; SSE-NEXT: movaps %xmm0, 1568(%r8)4684; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4685; SSE-NEXT: movaps %xmm0, 1552(%r8)4686; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4687; SSE-NEXT: movaps %xmm0, 1536(%r8)4688; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4689; SSE-NEXT: movaps %xmm0, 1520(%r8)4690; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4691; SSE-NEXT: movaps %xmm0, 1504(%r8)4692; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4693; SSE-NEXT: movaps %xmm0, 1488(%r8)4694; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4695; SSE-NEXT: movaps %xmm0, 1472(%r8)4696; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4697; SSE-NEXT: movaps %xmm0, 1456(%r8)4698; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4699; SSE-NEXT: movaps %xmm0, 1440(%r8)4700; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4701; SSE-NEXT: movaps %xmm0, 1424(%r8)4702; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4703; SSE-NEXT: movaps %xmm0, 1408(%r8)4704; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4705; SSE-NEXT: movaps %xmm0, 1392(%r8)4706; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4707; SSE-NEXT: movaps %xmm0, 1376(%r8)4708; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4709; SSE-NEXT: movaps %xmm0, 1360(%r8)4710; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4711; SSE-NEXT: movaps %xmm0, 1344(%r8)4712; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4713; SSE-NEXT: movaps %xmm0, 1328(%r8)4714; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4715; SSE-NEXT: movaps %xmm0, 1312(%r8)4716; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4717; SSE-NEXT: movaps %xmm0, 1296(%r8)4718; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4719; SSE-NEXT: movaps %xmm0, 1280(%r8)4720; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4721; SSE-NEXT: movaps %xmm0, 1264(%r8)4722; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4723; SSE-NEXT: movaps %xmm0, 1248(%r8)4724; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4725; SSE-NEXT: movaps %xmm0, 1232(%r8)4726; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4727; SSE-NEXT: movaps %xmm0, 1216(%r8)4728; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4729; SSE-NEXT: movaps %xmm0, 1200(%r8)4730; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4731; SSE-NEXT: movaps %xmm0, 1184(%r8)4732; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4733; SSE-NEXT: movaps %xmm0, 1168(%r8)4734; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4735; SSE-NEXT: movaps %xmm0, 1152(%r8)4736; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4737; SSE-NEXT: movaps %xmm0, 1136(%r8)4738; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4739; SSE-NEXT: movaps %xmm0, 1120(%r8)4740; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4741; SSE-NEXT: movaps %xmm0, 1104(%r8)4742; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4743; SSE-NEXT: movaps %xmm0, 1088(%r8)4744; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4745; SSE-NEXT: movaps %xmm0, 1072(%r8)4746; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4747; SSE-NEXT: movaps %xmm0, 1056(%r8)4748; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4749; SSE-NEXT: movaps %xmm0, 1040(%r8)4750; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4751; SSE-NEXT: movaps %xmm0, 1024(%r8)4752; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4753; SSE-NEXT: movaps %xmm0, 1008(%r8)4754; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4755; SSE-NEXT: movaps %xmm0, 992(%r8)4756; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4757; SSE-NEXT: movaps %xmm0, 976(%r8)4758; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4759; SSE-NEXT: movaps %xmm0, 960(%r8)4760; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4761; SSE-NEXT: movaps %xmm0, 944(%r8)4762; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4763; SSE-NEXT: movaps %xmm0, 928(%r8)4764; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4765; SSE-NEXT: movaps %xmm0, 912(%r8)4766; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4767; SSE-NEXT: movaps %xmm0, 896(%r8)4768; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4769; SSE-NEXT: movaps %xmm0, 880(%r8)4770; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4771; SSE-NEXT: movaps %xmm0, 864(%r8)4772; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4773; SSE-NEXT: movaps %xmm0, 848(%r8)4774; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4775; SSE-NEXT: movaps %xmm0, 832(%r8)4776; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4777; SSE-NEXT: movaps %xmm0, 816(%r8)4778; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4779; SSE-NEXT: movaps %xmm0, 800(%r8)4780; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4781; SSE-NEXT: movaps %xmm0, 784(%r8)4782; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4783; SSE-NEXT: movaps %xmm0, 768(%r8)4784; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4785; SSE-NEXT: movaps %xmm0, 752(%r8)4786; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4787; SSE-NEXT: movaps %xmm0, 736(%r8)4788; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4789; SSE-NEXT: movaps %xmm0, 720(%r8)4790; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4791; SSE-NEXT: movaps %xmm0, 704(%r8)4792; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4793; SSE-NEXT: movaps %xmm0, 688(%r8)4794; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4795; SSE-NEXT: movaps %xmm0, 672(%r8)4796; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4797; SSE-NEXT: movaps %xmm0, 656(%r8)4798; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4799; SSE-NEXT: movaps %xmm0, 640(%r8)4800; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4801; SSE-NEXT: movaps %xmm0, 624(%r8)4802; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4803; SSE-NEXT: movaps %xmm0, 608(%r8)4804; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4805; SSE-NEXT: movaps %xmm0, 592(%r8)4806; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4807; SSE-NEXT: movaps %xmm0, 576(%r8)4808; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4809; SSE-NEXT: movaps %xmm0, 560(%r8)4810; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4811; SSE-NEXT: movaps %xmm0, 544(%r8)4812; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4813; SSE-NEXT: movaps %xmm0, 528(%r8)4814; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4815; SSE-NEXT: movaps %xmm0, 512(%r8)4816; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4817; SSE-NEXT: movaps %xmm0, 496(%r8)4818; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4819; SSE-NEXT: movaps %xmm0, 480(%r8)4820; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4821; SSE-NEXT: movaps %xmm0, 464(%r8)4822; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4823; SSE-NEXT: movaps %xmm0, 448(%r8)4824; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4825; SSE-NEXT: movaps %xmm0, 432(%r8)4826; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4827; SSE-NEXT: movaps %xmm0, 416(%r8)4828; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4829; SSE-NEXT: movaps %xmm0, 400(%r8)4830; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4831; SSE-NEXT: movaps %xmm0, 384(%r8)4832; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4833; SSE-NEXT: movaps %xmm0, 368(%r8)4834; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4835; SSE-NEXT: movaps %xmm0, 352(%r8)4836; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4837; SSE-NEXT: movaps %xmm0, 336(%r8)4838; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4839; SSE-NEXT: movaps %xmm0, 320(%r8)4840; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4841; SSE-NEXT: movaps %xmm0, 304(%r8)4842; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4843; SSE-NEXT: movaps %xmm0, 288(%r8)4844; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4845; SSE-NEXT: movaps %xmm0, 272(%r8)4846; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4847; SSE-NEXT: movaps %xmm0, 256(%r8)4848; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4849; SSE-NEXT: movaps %xmm0, 240(%r8)4850; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4851; SSE-NEXT: movaps %xmm0, 224(%r8)4852; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4853; SSE-NEXT: movaps %xmm0, 208(%r8)4854; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4855; SSE-NEXT: movaps %xmm0, 192(%r8)4856; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4857; SSE-NEXT: movaps %xmm0, 176(%r8)4858; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4859; SSE-NEXT: movaps %xmm0, 160(%r8)4860; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4861; SSE-NEXT: movaps %xmm0, 144(%r8)4862; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4863; SSE-NEXT: movaps %xmm0, 128(%r8)4864; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4865; SSE-NEXT: movaps %xmm0, 112(%r8)4866; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4867; SSE-NEXT: movaps %xmm0, 96(%r8)4868; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4869; SSE-NEXT: movaps %xmm0, 80(%r8)4870; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4871; SSE-NEXT: movaps %xmm0, 64(%r8)4872; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4873; SSE-NEXT: movaps %xmm0, 48(%r8)4874; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4875; SSE-NEXT: movaps %xmm0, 32(%r8)4876; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4877; SSE-NEXT: movaps %xmm0, 16(%r8)4878; SSE-NEXT: movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload4879; SSE-NEXT: movaps %xmm0, (%r8)4880; SSE-NEXT: addq $1688, %rsp # imm = 0x6984881; SSE-NEXT: retq4882;4883; AVX-LABEL: store_i64_stride4_vf64:4884; AVX: # %bb.0:4885; AVX-NEXT: subq $1688, %rsp # imm = 0x6984886; AVX-NEXT: vmovaps 160(%rdx), %ymm04887; AVX-NEXT: vmovaps 128(%rdx), %ymm14888; AVX-NEXT: vmovaps 96(%rdx), %ymm34889; AVX-NEXT: vmovaps 64(%rdx), %ymm54890; AVX-NEXT: vmovaps 32(%rdx), %ymm74891; AVX-NEXT: vmovaps (%rdx), %ymm84892; AVX-NEXT: vmovaps 160(%rcx), %ymm24893; AVX-NEXT: vmovaps 128(%rcx), %ymm44894; AVX-NEXT: vmovaps 96(%rcx), %ymm64895; AVX-NEXT: vmovaps 64(%rcx), %ymm94896; AVX-NEXT: vmovaps 32(%rcx), %ymm104897; AVX-NEXT: vmovaps (%rcx), %ymm114898; AVX-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm8[0],ymm11[0],ymm8[2],ymm11[2]4899; AVX-NEXT: vmovaps 16(%rsi), %xmm134900; AVX-NEXT: vmovaps 16(%rdi), %xmm144901; AVX-NEXT: vmovlhps {{.*#+}} xmm15 = xmm14[0],xmm13[0]4902; AVX-NEXT: vblendps {{.*#+}} ymm12 = ymm15[0,1,2,3],ymm12[4,5,6,7]4903; AVX-NEXT: vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4904; AVX-NEXT: vunpckhpd {{.*#+}} ymm8 = ymm8[1],ymm11[1],ymm8[3],ymm11[3]4905; AVX-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm14[1],xmm13[1]4906; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3],ymm8[4,5,6,7]4907; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4908; AVX-NEXT: vunpcklpd {{.*#+}} ymm8 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]4909; AVX-NEXT: vmovaps 48(%rsi), %xmm114910; AVX-NEXT: vmovaps 48(%rdi), %xmm124911; AVX-NEXT: vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]4912; AVX-NEXT: vblendps {{.*#+}} ymm8 = ymm13[0,1,2,3],ymm8[4,5,6,7]4913; AVX-NEXT: vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4914; AVX-NEXT: vunpckhpd {{.*#+}} ymm7 = ymm7[1],ymm10[1],ymm7[3],ymm10[3]4915; AVX-NEXT: vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm11[1]4916; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3],ymm7[4,5,6,7]4917; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4918; AVX-NEXT: vunpcklpd {{.*#+}} ymm7 = ymm5[0],ymm9[0],ymm5[2],ymm9[2]4919; AVX-NEXT: vmovaps 80(%rsi), %xmm84920; AVX-NEXT: vmovaps 80(%rdi), %xmm104921; AVX-NEXT: vmovlhps {{.*#+}} xmm11 = xmm10[0],xmm8[0]4922; AVX-NEXT: vblendps {{.*#+}} ymm7 = ymm11[0,1,2,3],ymm7[4,5,6,7]4923; AVX-NEXT: vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4924; AVX-NEXT: vunpckhpd {{.*#+}} ymm5 = ymm5[1],ymm9[1],ymm5[3],ymm9[3]4925; AVX-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm10[1],xmm8[1]4926; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3],ymm5[4,5,6,7]4927; AVX-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4928; AVX-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm3[0],ymm6[0],ymm3[2],ymm6[2]4929; AVX-NEXT: vmovaps 112(%rsi), %xmm74930; AVX-NEXT: vmovaps 112(%rdi), %xmm84931; AVX-NEXT: vmovlhps {{.*#+}} xmm9 = xmm8[0],xmm7[0]4932; AVX-NEXT: vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]4933; AVX-NEXT: vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4934; AVX-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm6[1],ymm3[3],ymm6[3]4935; AVX-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm7[1]4936; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]4937; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4938; AVX-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]4939; AVX-NEXT: vmovaps 144(%rsi), %xmm54940; AVX-NEXT: vmovaps 144(%rdi), %xmm64941; AVX-NEXT: vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]4942; AVX-NEXT: vblendps {{.*#+}} ymm3 = ymm7[0,1,2,3],ymm3[4,5,6,7]4943; AVX-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4944; AVX-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]4945; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm6[1],xmm5[1]4946; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4,5,6,7]4947; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4948; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm0[0],ymm2[0],ymm0[2],ymm2[2]4949; AVX-NEXT: vmovaps 176(%rsi), %xmm34950; AVX-NEXT: vmovaps 176(%rdi), %xmm44951; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]4952; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]4953; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4954; AVX-NEXT: vmovaps 192(%rdx), %ymm14955; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]4956; AVX-NEXT: vmovaps 192(%rcx), %ymm24957; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]4958; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]4959; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4960; AVX-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]4961; AVX-NEXT: vmovaps 208(%rsi), %xmm34962; AVX-NEXT: vmovaps 208(%rdi), %xmm44963; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]4964; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]4965; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4966; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]4967; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]4968; AVX-NEXT: vmovaps 224(%rdx), %ymm24969; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4970; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4971; AVX-NEXT: vmovaps 224(%rcx), %ymm04972; AVX-NEXT: vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]4973; AVX-NEXT: vmovaps 240(%rsi), %xmm34974; AVX-NEXT: vmovaps 240(%rdi), %xmm44975; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]4976; AVX-NEXT: vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3],ymm1[4,5,6,7]4977; AVX-NEXT: vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4978; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]4979; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]4980; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4981; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4982; AVX-NEXT: vmovaps 256(%rdx), %ymm04983; AVX-NEXT: vmovaps 256(%rcx), %ymm14984; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]4985; AVX-NEXT: vmovaps 272(%rsi), %xmm34986; AVX-NEXT: vmovaps 272(%rdi), %xmm44987; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]4988; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]4989; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4990; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]4991; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]4992; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]4993; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill4994; AVX-NEXT: vmovaps 288(%rdx), %ymm04995; AVX-NEXT: vmovaps 288(%rcx), %ymm14996; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]4997; AVX-NEXT: vmovaps 304(%rsi), %xmm34998; AVX-NEXT: vmovaps 304(%rdi), %xmm44999; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5000; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5001; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5002; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5003; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5004; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5005; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5006; AVX-NEXT: vmovaps 320(%rdx), %ymm05007; AVX-NEXT: vmovaps 320(%rcx), %ymm15008; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5009; AVX-NEXT: vmovaps 336(%rsi), %xmm35010; AVX-NEXT: vmovaps 336(%rdi), %xmm45011; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5012; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5013; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5014; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5015; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5016; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5017; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5018; AVX-NEXT: vmovaps 352(%rdx), %ymm05019; AVX-NEXT: vmovaps 352(%rcx), %ymm15020; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5021; AVX-NEXT: vmovaps 368(%rsi), %xmm35022; AVX-NEXT: vmovaps 368(%rdi), %xmm45023; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5024; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5025; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5026; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5027; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5028; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5029; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5030; AVX-NEXT: vmovaps 384(%rdx), %ymm05031; AVX-NEXT: vmovaps 384(%rcx), %ymm15032; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5033; AVX-NEXT: vmovaps 400(%rsi), %xmm35034; AVX-NEXT: vmovaps 400(%rdi), %xmm45035; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5036; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5037; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5038; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5039; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5040; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5041; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5042; AVX-NEXT: vmovaps 416(%rdx), %ymm05043; AVX-NEXT: vmovaps 416(%rcx), %ymm15044; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5045; AVX-NEXT: vmovaps 432(%rsi), %xmm35046; AVX-NEXT: vmovaps 432(%rdi), %xmm45047; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5048; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5049; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5050; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5051; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5052; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5053; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5054; AVX-NEXT: vmovaps 448(%rdx), %ymm05055; AVX-NEXT: vmovaps 448(%rcx), %ymm15056; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5057; AVX-NEXT: vmovaps 464(%rsi), %xmm35058; AVX-NEXT: vmovaps 464(%rdi), %xmm45059; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5060; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5061; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5062; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5063; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5064; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5065; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5066; AVX-NEXT: vmovaps 480(%rdx), %ymm05067; AVX-NEXT: vmovaps 480(%rcx), %ymm15068; AVX-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5069; AVX-NEXT: vmovaps 496(%rsi), %xmm35070; AVX-NEXT: vmovaps 496(%rdi), %xmm45071; AVX-NEXT: vmovlhps {{.*#+}} xmm5 = xmm4[0],xmm3[0]5072; AVX-NEXT: vblendps {{.*#+}} ymm2 = ymm5[0,1,2,3],ymm2[4,5,6,7]5073; AVX-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5074; AVX-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5075; AVX-NEXT: vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm3[1]5076; AVX-NEXT: vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]5077; AVX-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5078; AVX-NEXT: vmovaps 256(%rsi), %xmm05079; AVX-NEXT: vmovaps 256(%rdi), %xmm15080; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5081; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5082; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5083; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5084; AVX-NEXT: vmovaps 256(%rcx), %xmm05085; AVX-NEXT: vmovaps 256(%rdx), %xmm15086; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5087; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5088; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5089; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5090; AVX-NEXT: vmovaps 128(%rsi), %xmm05091; AVX-NEXT: vmovaps 128(%rdi), %xmm15092; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5093; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5094; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5095; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5096; AVX-NEXT: vmovaps 128(%rcx), %xmm05097; AVX-NEXT: vmovaps 128(%rdx), %xmm15098; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5099; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5100; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5101; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5102; AVX-NEXT: vmovaps 64(%rsi), %xmm05103; AVX-NEXT: vmovaps 64(%rdi), %xmm15104; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5105; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5106; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5107; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5108; AVX-NEXT: vmovaps 64(%rcx), %xmm05109; AVX-NEXT: vmovaps 64(%rdx), %xmm15110; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5111; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5112; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5113; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5114; AVX-NEXT: vmovaps 32(%rsi), %xmm05115; AVX-NEXT: vmovaps 32(%rdi), %xmm15116; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5117; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5118; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5119; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5120; AVX-NEXT: vmovaps 32(%rcx), %xmm05121; AVX-NEXT: vmovaps 32(%rdx), %xmm15122; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5123; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5124; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5125; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5126; AVX-NEXT: vmovaps 96(%rsi), %xmm05127; AVX-NEXT: vmovaps 96(%rdi), %xmm15128; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5129; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5130; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5131; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5132; AVX-NEXT: vmovaps 96(%rcx), %xmm05133; AVX-NEXT: vmovaps 96(%rdx), %xmm15134; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5135; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5136; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5137; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5138; AVX-NEXT: vmovaps 160(%rsi), %xmm05139; AVX-NEXT: vmovaps 160(%rdi), %xmm15140; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5141; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5142; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5143; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5144; AVX-NEXT: vmovaps 160(%rcx), %xmm05145; AVX-NEXT: vmovaps 160(%rdx), %xmm15146; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5147; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5148; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5149; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5150; AVX-NEXT: vmovaps 224(%rsi), %xmm05151; AVX-NEXT: vmovaps 224(%rdi), %xmm15152; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5153; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5154; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5155; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5156; AVX-NEXT: vmovaps 224(%rcx), %xmm05157; AVX-NEXT: vmovaps 224(%rdx), %xmm15158; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5159; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5160; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5161; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5162; AVX-NEXT: vmovaps 192(%rsi), %xmm05163; AVX-NEXT: vmovaps 192(%rdi), %xmm15164; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5165; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5166; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5167; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5168; AVX-NEXT: vmovaps 192(%rcx), %xmm05169; AVX-NEXT: vmovaps 192(%rdx), %xmm15170; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5171; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5172; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5173; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5174; AVX-NEXT: vmovaps 288(%rsi), %xmm05175; AVX-NEXT: vmovaps 288(%rdi), %xmm15176; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5177; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5178; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5179; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5180; AVX-NEXT: vmovaps 288(%rcx), %xmm05181; AVX-NEXT: vmovaps 288(%rdx), %xmm15182; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5183; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5184; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5185; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5186; AVX-NEXT: vmovaps 352(%rsi), %xmm05187; AVX-NEXT: vmovaps 352(%rdi), %xmm15188; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5189; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5190; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5191; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5192; AVX-NEXT: vmovaps 352(%rcx), %xmm05193; AVX-NEXT: vmovaps 352(%rdx), %xmm15194; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5195; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5196; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5197; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5198; AVX-NEXT: vmovaps 320(%rsi), %xmm05199; AVX-NEXT: vmovaps 320(%rdi), %xmm15200; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5201; AVX-NEXT: vmovaps %xmm2, (%rsp) # 16-byte Spill5202; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5203; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5204; AVX-NEXT: vmovaps 320(%rcx), %xmm05205; AVX-NEXT: vmovaps 320(%rdx), %xmm15206; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5207; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5208; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5209; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5210; AVX-NEXT: vmovaps 416(%rsi), %xmm05211; AVX-NEXT: vmovaps 416(%rdi), %xmm15212; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5213; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5214; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5215; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5216; AVX-NEXT: vmovaps 416(%rcx), %xmm05217; AVX-NEXT: vmovaps 416(%rdx), %xmm15218; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5219; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5220; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm1[1],xmm0[1]5221; AVX-NEXT: vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5222; AVX-NEXT: vmovaps 480(%rsi), %xmm05223; AVX-NEXT: vmovaps 480(%rdi), %xmm15224; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]5225; AVX-NEXT: vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill5226; AVX-NEXT: vunpckhpd {{.*#+}} xmm15 = xmm1[1],xmm0[1]5227; AVX-NEXT: vmovaps 480(%rcx), %xmm05228; AVX-NEXT: vmovaps 480(%rdx), %xmm15229; AVX-NEXT: vmovlhps {{.*#+}} xmm14 = xmm1[0],xmm0[0]5230; AVX-NEXT: vunpckhpd {{.*#+}} xmm13 = xmm1[1],xmm0[1]5231; AVX-NEXT: vmovaps 448(%rsi), %xmm15232; AVX-NEXT: vmovaps 448(%rdi), %xmm05233; AVX-NEXT: vmovlhps {{.*#+}} xmm12 = xmm0[0],xmm1[0]5234; AVX-NEXT: vunpckhpd {{.*#+}} xmm11 = xmm0[1],xmm1[1]5235; AVX-NEXT: vmovaps 448(%rcx), %xmm15236; AVX-NEXT: vmovaps 448(%rdx), %xmm05237; AVX-NEXT: vmovlhps {{.*#+}} xmm10 = xmm0[0],xmm1[0]5238; AVX-NEXT: vunpckhpd {{.*#+}} xmm9 = xmm0[1],xmm1[1]5239; AVX-NEXT: vmovaps 384(%rsi), %xmm15240; AVX-NEXT: vmovaps 384(%rdi), %xmm05241; AVX-NEXT: vmovlhps {{.*#+}} xmm8 = xmm0[0],xmm1[0]5242; AVX-NEXT: vunpckhpd {{.*#+}} xmm7 = xmm0[1],xmm1[1]5243; AVX-NEXT: vmovaps 384(%rcx), %xmm15244; AVX-NEXT: vmovaps 384(%rdx), %xmm05245; AVX-NEXT: vmovlhps {{.*#+}} xmm6 = xmm0[0],xmm1[0]5246; AVX-NEXT: vunpckhpd {{.*#+}} xmm5 = xmm0[1],xmm1[1]5247; AVX-NEXT: vmovaps (%rsi), %xmm15248; AVX-NEXT: vmovaps (%rdi), %xmm05249; AVX-NEXT: vmovlhps {{.*#+}} xmm4 = xmm0[0],xmm1[0]5250; AVX-NEXT: vunpckhpd {{.*#+}} xmm3 = xmm0[1],xmm1[1]5251; AVX-NEXT: vmovaps (%rcx), %xmm15252; AVX-NEXT: vmovaps (%rdx), %xmm05253; AVX-NEXT: vmovlhps {{.*#+}} xmm2 = xmm0[0],xmm1[0]5254; AVX-NEXT: vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]5255; AVX-NEXT: vmovaps %xmm0, 48(%r8)5256; AVX-NEXT: vmovaps %xmm3, 32(%r8)5257; AVX-NEXT: vmovaps %xmm2, 16(%r8)5258; AVX-NEXT: vmovaps %xmm4, (%r8)5259; AVX-NEXT: vmovaps %xmm5, 1584(%r8)5260; AVX-NEXT: vmovaps %xmm7, 1568(%r8)5261; AVX-NEXT: vmovaps %xmm6, 1552(%r8)5262; AVX-NEXT: vmovaps %xmm8, 1536(%r8)5263; AVX-NEXT: vmovaps %xmm9, 1840(%r8)5264; AVX-NEXT: vmovaps %xmm11, 1824(%r8)5265; AVX-NEXT: vmovaps %xmm10, 1808(%r8)5266; AVX-NEXT: vmovaps %xmm12, 1792(%r8)5267; AVX-NEXT: vmovaps %xmm13, 1968(%r8)5268; AVX-NEXT: vmovaps %xmm15, 1952(%r8)5269; AVX-NEXT: vmovaps %xmm14, 1936(%r8)5270; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5271; AVX-NEXT: vmovaps %xmm0, 1920(%r8)5272; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5273; AVX-NEXT: vmovaps %xmm0, 1712(%r8)5274; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5275; AVX-NEXT: vmovaps %xmm0, 1696(%r8)5276; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5277; AVX-NEXT: vmovaps %xmm0, 1680(%r8)5278; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5279; AVX-NEXT: vmovaps %xmm0, 1664(%r8)5280; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5281; AVX-NEXT: vmovaps %xmm0, 1328(%r8)5282; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5283; AVX-NEXT: vmovaps %xmm0, 1312(%r8)5284; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5285; AVX-NEXT: vmovaps %xmm0, 1296(%r8)5286; AVX-NEXT: vmovaps (%rsp), %xmm0 # 16-byte Reload5287; AVX-NEXT: vmovaps %xmm0, 1280(%r8)5288; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5289; AVX-NEXT: vmovaps %xmm0, 1456(%r8)5290; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5291; AVX-NEXT: vmovaps %xmm0, 1440(%r8)5292; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5293; AVX-NEXT: vmovaps %xmm0, 1424(%r8)5294; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5295; AVX-NEXT: vmovaps %xmm0, 1408(%r8)5296; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5297; AVX-NEXT: vmovaps %xmm0, 1200(%r8)5298; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5299; AVX-NEXT: vmovaps %xmm0, 1184(%r8)5300; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5301; AVX-NEXT: vmovaps %xmm0, 1168(%r8)5302; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5303; AVX-NEXT: vmovaps %xmm0, 1152(%r8)5304; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5305; AVX-NEXT: vmovaps %xmm0, 816(%r8)5306; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5307; AVX-NEXT: vmovaps %xmm0, 800(%r8)5308; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5309; AVX-NEXT: vmovaps %xmm0, 784(%r8)5310; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5311; AVX-NEXT: vmovaps %xmm0, 768(%r8)5312; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5313; AVX-NEXT: vmovaps %xmm0, 944(%r8)5314; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5315; AVX-NEXT: vmovaps %xmm0, 928(%r8)5316; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5317; AVX-NEXT: vmovaps %xmm0, 912(%r8)5318; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5319; AVX-NEXT: vmovaps %xmm0, 896(%r8)5320; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5321; AVX-NEXT: vmovaps %xmm0, 688(%r8)5322; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5323; AVX-NEXT: vmovaps %xmm0, 672(%r8)5324; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5325; AVX-NEXT: vmovaps %xmm0, 656(%r8)5326; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5327; AVX-NEXT: vmovaps %xmm0, 640(%r8)5328; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5329; AVX-NEXT: vmovaps %xmm0, 432(%r8)5330; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5331; AVX-NEXT: vmovaps %xmm0, 416(%r8)5332; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5333; AVX-NEXT: vmovaps %xmm0, 400(%r8)5334; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5335; AVX-NEXT: vmovaps %xmm0, 384(%r8)5336; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5337; AVX-NEXT: vmovaps %xmm0, 176(%r8)5338; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5339; AVX-NEXT: vmovaps %xmm0, 160(%r8)5340; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5341; AVX-NEXT: vmovaps %xmm0, 144(%r8)5342; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5343; AVX-NEXT: vmovaps %xmm0, 128(%r8)5344; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5345; AVX-NEXT: vmovaps %xmm0, 304(%r8)5346; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5347; AVX-NEXT: vmovaps %xmm0, 288(%r8)5348; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5349; AVX-NEXT: vmovaps %xmm0, 272(%r8)5350; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5351; AVX-NEXT: vmovaps %xmm0, 256(%r8)5352; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5353; AVX-NEXT: vmovaps %xmm0, 560(%r8)5354; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5355; AVX-NEXT: vmovaps %xmm0, 544(%r8)5356; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5357; AVX-NEXT: vmovaps %xmm0, 528(%r8)5358; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5359; AVX-NEXT: vmovaps %xmm0, 512(%r8)5360; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5361; AVX-NEXT: vmovaps %xmm0, 1072(%r8)5362; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5363; AVX-NEXT: vmovaps %xmm0, 1056(%r8)5364; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5365; AVX-NEXT: vmovaps %xmm0, 1040(%r8)5366; AVX-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload5367; AVX-NEXT: vmovaps %xmm0, 1024(%r8)5368; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5369; AVX-NEXT: vmovaps %ymm0, 2016(%r8)5370; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5371; AVX-NEXT: vmovaps %ymm0, 1984(%r8)5372; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5373; AVX-NEXT: vmovaps %ymm0, 1888(%r8)5374; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5375; AVX-NEXT: vmovaps %ymm0, 1856(%r8)5376; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5377; AVX-NEXT: vmovaps %ymm0, 1760(%r8)5378; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5379; AVX-NEXT: vmovaps %ymm0, 1728(%r8)5380; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5381; AVX-NEXT: vmovaps %ymm0, 1632(%r8)5382; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5383; AVX-NEXT: vmovaps %ymm0, 1600(%r8)5384; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5385; AVX-NEXT: vmovaps %ymm0, 1504(%r8)5386; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5387; AVX-NEXT: vmovaps %ymm0, 1472(%r8)5388; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5389; AVX-NEXT: vmovaps %ymm0, 1376(%r8)5390; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5391; AVX-NEXT: vmovaps %ymm0, 1344(%r8)5392; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5393; AVX-NEXT: vmovaps %ymm0, 1248(%r8)5394; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5395; AVX-NEXT: vmovaps %ymm0, 1216(%r8)5396; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5397; AVX-NEXT: vmovaps %ymm0, 1120(%r8)5398; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5399; AVX-NEXT: vmovaps %ymm0, 1088(%r8)5400; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5401; AVX-NEXT: vmovaps %ymm0, 992(%r8)5402; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5403; AVX-NEXT: vmovaps %ymm0, 960(%r8)5404; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5405; AVX-NEXT: vmovaps %ymm0, 864(%r8)5406; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5407; AVX-NEXT: vmovaps %ymm0, 832(%r8)5408; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5409; AVX-NEXT: vmovaps %ymm0, 736(%r8)5410; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5411; AVX-NEXT: vmovaps %ymm0, 704(%r8)5412; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5413; AVX-NEXT: vmovaps %ymm0, 608(%r8)5414; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5415; AVX-NEXT: vmovaps %ymm0, 576(%r8)5416; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5417; AVX-NEXT: vmovaps %ymm0, 480(%r8)5418; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5419; AVX-NEXT: vmovaps %ymm0, 448(%r8)5420; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5421; AVX-NEXT: vmovaps %ymm0, 352(%r8)5422; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5423; AVX-NEXT: vmovaps %ymm0, 320(%r8)5424; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5425; AVX-NEXT: vmovaps %ymm0, 224(%r8)5426; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5427; AVX-NEXT: vmovaps %ymm0, 192(%r8)5428; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5429; AVX-NEXT: vmovaps %ymm0, 96(%r8)5430; AVX-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5431; AVX-NEXT: vmovaps %ymm0, 64(%r8)5432; AVX-NEXT: addq $1688, %rsp # imm = 0x6985433; AVX-NEXT: vzeroupper5434; AVX-NEXT: retq5435;5436; AVX2-LABEL: store_i64_stride4_vf64:5437; AVX2: # %bb.0:5438; AVX2-NEXT: subq $1544, %rsp # imm = 0x6085439; AVX2-NEXT: vmovaps (%rsi), %xmm05440; AVX2-NEXT: vmovaps 32(%rsi), %xmm15441; AVX2-NEXT: vmovaps 64(%rsi), %xmm25442; AVX2-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm05443; AVX2-NEXT: vmovaps (%rdi), %xmm35444; AVX2-NEXT: vmovaps 32(%rdi), %xmm45445; AVX2-NEXT: vmovaps 64(%rdi), %xmm55446; AVX2-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm35447; AVX2-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]5448; AVX2-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5449; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]5450; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5451; AVX2-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm05452; AVX2-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm15453; AVX2-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5454; AVX2-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5455; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5456; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5457; AVX2-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm05458; AVX2-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm15459; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5460; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5461; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5462; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5463; AVX2-NEXT: vmovaps 96(%rsi), %xmm05464; AVX2-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm05465; AVX2-NEXT: vmovaps 96(%rdi), %xmm15466; AVX2-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm15467; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5468; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5469; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5470; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5471; AVX2-NEXT: vmovaps 128(%rsi), %xmm05472; AVX2-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm05473; AVX2-NEXT: vmovaps 128(%rdi), %xmm15474; AVX2-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm15475; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5476; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5477; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5478; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5479; AVX2-NEXT: vmovaps 160(%rsi), %xmm05480; AVX2-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm05481; AVX2-NEXT: vmovaps 160(%rdi), %xmm15482; AVX2-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm15483; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5484; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5485; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5486; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5487; AVX2-NEXT: vmovaps 192(%rsi), %xmm05488; AVX2-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm05489; AVX2-NEXT: vmovaps 192(%rdi), %xmm15490; AVX2-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm15491; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5492; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5493; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5494; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5495; AVX2-NEXT: vmovaps 224(%rsi), %xmm05496; AVX2-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm05497; AVX2-NEXT: vmovaps 224(%rdi), %xmm15498; AVX2-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm15499; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5500; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5501; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5502; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5503; AVX2-NEXT: vmovaps 256(%rsi), %xmm05504; AVX2-NEXT: vinsertf128 $1, 256(%rcx), %ymm0, %ymm05505; AVX2-NEXT: vmovaps 256(%rdi), %xmm15506; AVX2-NEXT: vinsertf128 $1, 256(%rdx), %ymm1, %ymm15507; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5508; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5509; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5510; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5511; AVX2-NEXT: vmovaps 288(%rsi), %xmm05512; AVX2-NEXT: vinsertf128 $1, 288(%rcx), %ymm0, %ymm05513; AVX2-NEXT: vmovaps 288(%rdi), %xmm15514; AVX2-NEXT: vinsertf128 $1, 288(%rdx), %ymm1, %ymm15515; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5516; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5517; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5518; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5519; AVX2-NEXT: vmovaps 320(%rsi), %xmm05520; AVX2-NEXT: vinsertf128 $1, 320(%rcx), %ymm0, %ymm05521; AVX2-NEXT: vmovaps 320(%rdi), %xmm15522; AVX2-NEXT: vinsertf128 $1, 320(%rdx), %ymm1, %ymm15523; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5524; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5525; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5526; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5527; AVX2-NEXT: vmovaps 352(%rsi), %xmm05528; AVX2-NEXT: vinsertf128 $1, 352(%rcx), %ymm0, %ymm05529; AVX2-NEXT: vmovaps 352(%rdi), %xmm15530; AVX2-NEXT: vinsertf128 $1, 352(%rdx), %ymm1, %ymm15531; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5532; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5533; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5534; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5535; AVX2-NEXT: vmovaps 384(%rsi), %xmm05536; AVX2-NEXT: vinsertf128 $1, 384(%rcx), %ymm0, %ymm05537; AVX2-NEXT: vmovaps 384(%rdi), %xmm15538; AVX2-NEXT: vinsertf128 $1, 384(%rdx), %ymm1, %ymm15539; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5540; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5541; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5542; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5543; AVX2-NEXT: vmovaps 416(%rsi), %xmm05544; AVX2-NEXT: vinsertf128 $1, 416(%rcx), %ymm0, %ymm05545; AVX2-NEXT: vmovaps 416(%rdi), %xmm15546; AVX2-NEXT: vinsertf128 $1, 416(%rdx), %ymm1, %ymm15547; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5548; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5549; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5550; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5551; AVX2-NEXT: vmovaps 448(%rsi), %xmm05552; AVX2-NEXT: vinsertf128 $1, 448(%rcx), %ymm0, %ymm05553; AVX2-NEXT: vmovaps 448(%rdi), %xmm15554; AVX2-NEXT: vinsertf128 $1, 448(%rdx), %ymm1, %ymm15555; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5556; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5557; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5558; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5559; AVX2-NEXT: vmovaps 480(%rsi), %xmm05560; AVX2-NEXT: vinsertf128 $1, 480(%rcx), %ymm0, %ymm05561; AVX2-NEXT: vmovaps 480(%rdi), %xmm15562; AVX2-NEXT: vinsertf128 $1, 480(%rdx), %ymm1, %ymm15563; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5564; AVX2-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5565; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5566; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5567; AVX2-NEXT: vmovaps (%rdi), %ymm05568; AVX2-NEXT: vmovaps (%rsi), %ymm15569; AVX2-NEXT: vmovaps (%rdx), %ymm25570; AVX2-NEXT: vmovaps (%rcx), %ymm35571; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5572; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5573; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5574; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5575; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5576; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5577; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5578; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5579; AVX2-NEXT: vmovaps 32(%rdi), %ymm05580; AVX2-NEXT: vmovaps 32(%rsi), %ymm15581; AVX2-NEXT: vmovaps 32(%rdx), %ymm25582; AVX2-NEXT: vmovaps 32(%rcx), %ymm35583; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5584; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5585; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5586; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5587; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5588; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5589; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5590; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5591; AVX2-NEXT: vmovaps 64(%rdi), %ymm05592; AVX2-NEXT: vmovaps 64(%rsi), %ymm15593; AVX2-NEXT: vmovaps 64(%rdx), %ymm25594; AVX2-NEXT: vmovaps 64(%rcx), %ymm35595; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5596; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5597; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5598; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5599; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5600; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5601; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5602; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5603; AVX2-NEXT: vmovaps 96(%rdi), %ymm05604; AVX2-NEXT: vmovaps 96(%rsi), %ymm15605; AVX2-NEXT: vmovaps 96(%rdx), %ymm25606; AVX2-NEXT: vmovaps 96(%rcx), %ymm35607; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5608; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5609; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5610; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5611; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5612; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5613; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5614; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5615; AVX2-NEXT: vmovaps 128(%rdi), %ymm05616; AVX2-NEXT: vmovaps 128(%rsi), %ymm15617; AVX2-NEXT: vmovaps 128(%rdx), %ymm25618; AVX2-NEXT: vmovaps 128(%rcx), %ymm35619; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5620; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5621; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5622; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5623; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5624; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5625; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5626; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5627; AVX2-NEXT: vmovaps 160(%rdi), %ymm05628; AVX2-NEXT: vmovaps 160(%rsi), %ymm15629; AVX2-NEXT: vmovaps 160(%rdx), %ymm25630; AVX2-NEXT: vmovaps 160(%rcx), %ymm35631; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5632; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5633; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5634; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5635; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5636; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5637; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5638; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5639; AVX2-NEXT: vmovaps 192(%rdi), %ymm05640; AVX2-NEXT: vmovaps 192(%rsi), %ymm15641; AVX2-NEXT: vmovaps 192(%rdx), %ymm25642; AVX2-NEXT: vmovaps 192(%rcx), %ymm35643; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5644; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5645; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5646; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5647; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5648; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5649; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5650; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5651; AVX2-NEXT: vmovaps 224(%rdi), %ymm05652; AVX2-NEXT: vmovaps 224(%rsi), %ymm15653; AVX2-NEXT: vmovaps 224(%rdx), %ymm25654; AVX2-NEXT: vmovaps 224(%rcx), %ymm35655; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5656; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5657; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5658; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5659; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5660; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5661; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5662; AVX2-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill5663; AVX2-NEXT: vmovaps 256(%rdi), %ymm05664; AVX2-NEXT: vmovaps 256(%rsi), %ymm15665; AVX2-NEXT: vmovaps 256(%rdx), %ymm25666; AVX2-NEXT: vmovaps 256(%rcx), %ymm35667; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5668; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5669; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5670; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5671; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5672; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5673; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5674; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5675; AVX2-NEXT: vmovaps 288(%rdi), %ymm05676; AVX2-NEXT: vmovaps 288(%rsi), %ymm15677; AVX2-NEXT: vmovaps 288(%rdx), %ymm25678; AVX2-NEXT: vmovaps 288(%rcx), %ymm35679; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5680; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5681; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]5682; AVX2-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5683; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5684; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5685; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]5686; AVX2-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5687; AVX2-NEXT: vmovaps 320(%rdi), %ymm05688; AVX2-NEXT: vmovaps 320(%rsi), %ymm15689; AVX2-NEXT: vmovaps 320(%rdx), %ymm25690; AVX2-NEXT: vmovaps 320(%rcx), %ymm35691; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]5692; AVX2-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]5693; AVX2-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]5694; AVX2-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]5695; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]5696; AVX2-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]5697; AVX2-NEXT: vmovaps 352(%rdi), %ymm35698; AVX2-NEXT: vmovaps 352(%rsi), %ymm15699; AVX2-NEXT: vmovaps 352(%rdx), %ymm25700; AVX2-NEXT: vmovaps 352(%rcx), %ymm05701; AVX2-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]5702; AVX2-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]5703; AVX2-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm15[2,3],ymm4[2,3]5704; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]5705; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]5706; AVX2-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]5707; AVX2-NEXT: vmovaps 384(%rdi), %ymm15708; AVX2-NEXT: vmovaps 384(%rsi), %ymm35709; AVX2-NEXT: vmovaps 384(%rdx), %ymm155710; AVX2-NEXT: vmovaps 384(%rcx), %ymm05711; AVX2-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]5712; AVX2-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]5713; AVX2-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm14[2,3],ymm2[2,3]5714; AVX2-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]5715; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]5716; AVX2-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]5717; AVX2-NEXT: vmovaps 416(%rdi), %ymm15718; AVX2-NEXT: vmovaps 416(%rsi), %ymm35719; AVX2-NEXT: vmovaps 416(%rdx), %ymm145720; AVX2-NEXT: vmovaps 416(%rcx), %ymm155721; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]5722; AVX2-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]5723; AVX2-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm13[2,3],ymm0[2,3]5724; AVX2-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]5725; AVX2-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]5726; AVX2-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm13[2,3]5727; AVX2-NEXT: vmovaps 448(%rdi), %ymm35728; AVX2-NEXT: vmovaps 448(%rsi), %ymm135729; AVX2-NEXT: vmovaps 448(%rdx), %ymm145730; AVX2-NEXT: vmovaps 448(%rcx), %ymm155731; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]5732; AVX2-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm13[0],ymm3[2],ymm13[2]5733; AVX2-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm12[2,3],ymm0[2,3]5734; AVX2-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]5735; AVX2-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm13[1],ymm3[3],ymm13[3]5736; AVX2-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm12[2,3]5737; AVX2-NEXT: vmovaps 480(%rdi), %ymm125738; AVX2-NEXT: vmovaps 480(%rsi), %ymm135739; AVX2-NEXT: vmovaps 480(%rdx), %ymm145740; AVX2-NEXT: vmovaps 480(%rcx), %ymm155741; AVX2-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]5742; AVX2-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm13[0],ymm12[2],ymm13[2]5743; AVX2-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]5744; AVX2-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]5745; AVX2-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]5746; AVX2-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]5747; AVX2-NEXT: vmovaps %ymm11, 2016(%r8)5748; AVX2-NEXT: vmovaps %ymm0, 1984(%r8)5749; AVX2-NEXT: vmovaps %ymm3, 1888(%r8)5750; AVX2-NEXT: vmovaps %ymm1, 1856(%r8)5751; AVX2-NEXT: vmovaps %ymm2, 1760(%r8)5752; AVX2-NEXT: vmovaps %ymm4, 1728(%r8)5753; AVX2-NEXT: vmovaps %ymm5, 1632(%r8)5754; AVX2-NEXT: vmovaps %ymm6, 1600(%r8)5755; AVX2-NEXT: vmovaps %ymm7, 1504(%r8)5756; AVX2-NEXT: vmovaps %ymm8, 1472(%r8)5757; AVX2-NEXT: vmovaps %ymm9, 1376(%r8)5758; AVX2-NEXT: vmovaps %ymm10, 1344(%r8)5759; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5760; AVX2-NEXT: vmovaps %ymm0, 1248(%r8)5761; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5762; AVX2-NEXT: vmovaps %ymm0, 1216(%r8)5763; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5764; AVX2-NEXT: vmovaps %ymm0, 1120(%r8)5765; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5766; AVX2-NEXT: vmovaps %ymm0, 1088(%r8)5767; AVX2-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload5768; AVX2-NEXT: vmovaps %ymm0, 992(%r8)5769; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5770; AVX2-NEXT: vmovaps %ymm0, 960(%r8)5771; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5772; AVX2-NEXT: vmovaps %ymm0, 864(%r8)5773; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5774; AVX2-NEXT: vmovaps %ymm0, 832(%r8)5775; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5776; AVX2-NEXT: vmovaps %ymm0, 736(%r8)5777; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5778; AVX2-NEXT: vmovaps %ymm0, 704(%r8)5779; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5780; AVX2-NEXT: vmovaps %ymm0, 608(%r8)5781; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5782; AVX2-NEXT: vmovaps %ymm0, 576(%r8)5783; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5784; AVX2-NEXT: vmovaps %ymm0, 480(%r8)5785; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5786; AVX2-NEXT: vmovaps %ymm0, 448(%r8)5787; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5788; AVX2-NEXT: vmovaps %ymm0, 352(%r8)5789; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5790; AVX2-NEXT: vmovaps %ymm0, 320(%r8)5791; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5792; AVX2-NEXT: vmovaps %ymm0, 224(%r8)5793; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5794; AVX2-NEXT: vmovaps %ymm0, 192(%r8)5795; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5796; AVX2-NEXT: vmovaps %ymm0, 96(%r8)5797; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5798; AVX2-NEXT: vmovaps %ymm0, 64(%r8)5799; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5800; AVX2-NEXT: vmovaps %ymm0, 1952(%r8)5801; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5802; AVX2-NEXT: vmovaps %ymm0, 1920(%r8)5803; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5804; AVX2-NEXT: vmovaps %ymm0, 1824(%r8)5805; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5806; AVX2-NEXT: vmovaps %ymm0, 1792(%r8)5807; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5808; AVX2-NEXT: vmovaps %ymm0, 1696(%r8)5809; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5810; AVX2-NEXT: vmovaps %ymm0, 1664(%r8)5811; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5812; AVX2-NEXT: vmovaps %ymm0, 1568(%r8)5813; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5814; AVX2-NEXT: vmovaps %ymm0, 1536(%r8)5815; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5816; AVX2-NEXT: vmovaps %ymm0, 1440(%r8)5817; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5818; AVX2-NEXT: vmovaps %ymm0, 1408(%r8)5819; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5820; AVX2-NEXT: vmovaps %ymm0, 1312(%r8)5821; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5822; AVX2-NEXT: vmovaps %ymm0, 1280(%r8)5823; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5824; AVX2-NEXT: vmovaps %ymm0, 1184(%r8)5825; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5826; AVX2-NEXT: vmovaps %ymm0, 1152(%r8)5827; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5828; AVX2-NEXT: vmovaps %ymm0, 1056(%r8)5829; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5830; AVX2-NEXT: vmovaps %ymm0, 1024(%r8)5831; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5832; AVX2-NEXT: vmovaps %ymm0, 928(%r8)5833; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5834; AVX2-NEXT: vmovaps %ymm0, 896(%r8)5835; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5836; AVX2-NEXT: vmovaps %ymm0, 800(%r8)5837; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5838; AVX2-NEXT: vmovaps %ymm0, 768(%r8)5839; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5840; AVX2-NEXT: vmovaps %ymm0, 672(%r8)5841; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5842; AVX2-NEXT: vmovaps %ymm0, 640(%r8)5843; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5844; AVX2-NEXT: vmovaps %ymm0, 544(%r8)5845; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5846; AVX2-NEXT: vmovaps %ymm0, 512(%r8)5847; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5848; AVX2-NEXT: vmovaps %ymm0, 416(%r8)5849; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5850; AVX2-NEXT: vmovaps %ymm0, 384(%r8)5851; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5852; AVX2-NEXT: vmovaps %ymm0, 288(%r8)5853; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5854; AVX2-NEXT: vmovaps %ymm0, 256(%r8)5855; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5856; AVX2-NEXT: vmovaps %ymm0, 160(%r8)5857; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5858; AVX2-NEXT: vmovaps %ymm0, 128(%r8)5859; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5860; AVX2-NEXT: vmovaps %ymm0, 32(%r8)5861; AVX2-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload5862; AVX2-NEXT: vmovaps %ymm0, (%r8)5863; AVX2-NEXT: addq $1544, %rsp # imm = 0x6085864; AVX2-NEXT: vzeroupper5865; AVX2-NEXT: retq5866;5867; AVX2-FP-LABEL: store_i64_stride4_vf64:5868; AVX2-FP: # %bb.0:5869; AVX2-FP-NEXT: subq $1544, %rsp # imm = 0x6085870; AVX2-FP-NEXT: vmovaps (%rsi), %xmm05871; AVX2-FP-NEXT: vmovaps 32(%rsi), %xmm15872; AVX2-FP-NEXT: vmovaps 64(%rsi), %xmm25873; AVX2-FP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm05874; AVX2-FP-NEXT: vmovaps (%rdi), %xmm35875; AVX2-FP-NEXT: vmovaps 32(%rdi), %xmm45876; AVX2-FP-NEXT: vmovaps 64(%rdi), %xmm55877; AVX2-FP-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm35878; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]5879; AVX2-FP-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5880; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]5881; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5882; AVX2-FP-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm05883; AVX2-FP-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm15884; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5885; AVX2-FP-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5886; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5887; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5888; AVX2-FP-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm05889; AVX2-FP-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm15890; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5891; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5892; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5893; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5894; AVX2-FP-NEXT: vmovaps 96(%rsi), %xmm05895; AVX2-FP-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm05896; AVX2-FP-NEXT: vmovaps 96(%rdi), %xmm15897; AVX2-FP-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm15898; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5899; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5900; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5901; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5902; AVX2-FP-NEXT: vmovaps 128(%rsi), %xmm05903; AVX2-FP-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm05904; AVX2-FP-NEXT: vmovaps 128(%rdi), %xmm15905; AVX2-FP-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm15906; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5907; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5908; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5909; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5910; AVX2-FP-NEXT: vmovaps 160(%rsi), %xmm05911; AVX2-FP-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm05912; AVX2-FP-NEXT: vmovaps 160(%rdi), %xmm15913; AVX2-FP-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm15914; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5915; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5916; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5917; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5918; AVX2-FP-NEXT: vmovaps 192(%rsi), %xmm05919; AVX2-FP-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm05920; AVX2-FP-NEXT: vmovaps 192(%rdi), %xmm15921; AVX2-FP-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm15922; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5923; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5924; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5925; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5926; AVX2-FP-NEXT: vmovaps 224(%rsi), %xmm05927; AVX2-FP-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm05928; AVX2-FP-NEXT: vmovaps 224(%rdi), %xmm15929; AVX2-FP-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm15930; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5931; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5932; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5933; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5934; AVX2-FP-NEXT: vmovaps 256(%rsi), %xmm05935; AVX2-FP-NEXT: vinsertf128 $1, 256(%rcx), %ymm0, %ymm05936; AVX2-FP-NEXT: vmovaps 256(%rdi), %xmm15937; AVX2-FP-NEXT: vinsertf128 $1, 256(%rdx), %ymm1, %ymm15938; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5939; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5940; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5941; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5942; AVX2-FP-NEXT: vmovaps 288(%rsi), %xmm05943; AVX2-FP-NEXT: vinsertf128 $1, 288(%rcx), %ymm0, %ymm05944; AVX2-FP-NEXT: vmovaps 288(%rdi), %xmm15945; AVX2-FP-NEXT: vinsertf128 $1, 288(%rdx), %ymm1, %ymm15946; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5947; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5948; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5949; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5950; AVX2-FP-NEXT: vmovaps 320(%rsi), %xmm05951; AVX2-FP-NEXT: vinsertf128 $1, 320(%rcx), %ymm0, %ymm05952; AVX2-FP-NEXT: vmovaps 320(%rdi), %xmm15953; AVX2-FP-NEXT: vinsertf128 $1, 320(%rdx), %ymm1, %ymm15954; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5955; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5956; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5957; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5958; AVX2-FP-NEXT: vmovaps 352(%rsi), %xmm05959; AVX2-FP-NEXT: vinsertf128 $1, 352(%rcx), %ymm0, %ymm05960; AVX2-FP-NEXT: vmovaps 352(%rdi), %xmm15961; AVX2-FP-NEXT: vinsertf128 $1, 352(%rdx), %ymm1, %ymm15962; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5963; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5964; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5965; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5966; AVX2-FP-NEXT: vmovaps 384(%rsi), %xmm05967; AVX2-FP-NEXT: vinsertf128 $1, 384(%rcx), %ymm0, %ymm05968; AVX2-FP-NEXT: vmovaps 384(%rdi), %xmm15969; AVX2-FP-NEXT: vinsertf128 $1, 384(%rdx), %ymm1, %ymm15970; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5971; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5972; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5973; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5974; AVX2-FP-NEXT: vmovaps 416(%rsi), %xmm05975; AVX2-FP-NEXT: vinsertf128 $1, 416(%rcx), %ymm0, %ymm05976; AVX2-FP-NEXT: vmovaps 416(%rdi), %xmm15977; AVX2-FP-NEXT: vinsertf128 $1, 416(%rdx), %ymm1, %ymm15978; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5979; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5980; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5981; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5982; AVX2-FP-NEXT: vmovaps 448(%rsi), %xmm05983; AVX2-FP-NEXT: vinsertf128 $1, 448(%rcx), %ymm0, %ymm05984; AVX2-FP-NEXT: vmovaps 448(%rdi), %xmm15985; AVX2-FP-NEXT: vinsertf128 $1, 448(%rdx), %ymm1, %ymm15986; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5987; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5988; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5989; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5990; AVX2-FP-NEXT: vmovaps 480(%rsi), %xmm05991; AVX2-FP-NEXT: vinsertf128 $1, 480(%rcx), %ymm0, %ymm05992; AVX2-FP-NEXT: vmovaps 480(%rdi), %xmm15993; AVX2-FP-NEXT: vinsertf128 $1, 480(%rdx), %ymm1, %ymm15994; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]5995; AVX2-FP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5996; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]5997; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill5998; AVX2-FP-NEXT: vmovaps (%rdi), %ymm05999; AVX2-FP-NEXT: vmovaps (%rsi), %ymm16000; AVX2-FP-NEXT: vmovaps (%rdx), %ymm26001; AVX2-FP-NEXT: vmovaps (%rcx), %ymm36002; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6003; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6004; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6005; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6006; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6007; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6008; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6009; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6010; AVX2-FP-NEXT: vmovaps 32(%rdi), %ymm06011; AVX2-FP-NEXT: vmovaps 32(%rsi), %ymm16012; AVX2-FP-NEXT: vmovaps 32(%rdx), %ymm26013; AVX2-FP-NEXT: vmovaps 32(%rcx), %ymm36014; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6015; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6016; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6017; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6018; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6019; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6020; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6021; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6022; AVX2-FP-NEXT: vmovaps 64(%rdi), %ymm06023; AVX2-FP-NEXT: vmovaps 64(%rsi), %ymm16024; AVX2-FP-NEXT: vmovaps 64(%rdx), %ymm26025; AVX2-FP-NEXT: vmovaps 64(%rcx), %ymm36026; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6027; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6028; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6029; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6030; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6031; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6032; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6033; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6034; AVX2-FP-NEXT: vmovaps 96(%rdi), %ymm06035; AVX2-FP-NEXT: vmovaps 96(%rsi), %ymm16036; AVX2-FP-NEXT: vmovaps 96(%rdx), %ymm26037; AVX2-FP-NEXT: vmovaps 96(%rcx), %ymm36038; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6039; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6040; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6041; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6042; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6043; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6044; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6045; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6046; AVX2-FP-NEXT: vmovaps 128(%rdi), %ymm06047; AVX2-FP-NEXT: vmovaps 128(%rsi), %ymm16048; AVX2-FP-NEXT: vmovaps 128(%rdx), %ymm26049; AVX2-FP-NEXT: vmovaps 128(%rcx), %ymm36050; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6051; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6052; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6053; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6054; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6055; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6056; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6057; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6058; AVX2-FP-NEXT: vmovaps 160(%rdi), %ymm06059; AVX2-FP-NEXT: vmovaps 160(%rsi), %ymm16060; AVX2-FP-NEXT: vmovaps 160(%rdx), %ymm26061; AVX2-FP-NEXT: vmovaps 160(%rcx), %ymm36062; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6063; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6064; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6065; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6066; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6067; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6068; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6069; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6070; AVX2-FP-NEXT: vmovaps 192(%rdi), %ymm06071; AVX2-FP-NEXT: vmovaps 192(%rsi), %ymm16072; AVX2-FP-NEXT: vmovaps 192(%rdx), %ymm26073; AVX2-FP-NEXT: vmovaps 192(%rcx), %ymm36074; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6075; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6076; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6077; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6078; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6079; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6080; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6081; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6082; AVX2-FP-NEXT: vmovaps 224(%rdi), %ymm06083; AVX2-FP-NEXT: vmovaps 224(%rsi), %ymm16084; AVX2-FP-NEXT: vmovaps 224(%rdx), %ymm26085; AVX2-FP-NEXT: vmovaps 224(%rcx), %ymm36086; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6087; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6088; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6089; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6090; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6091; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6092; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6093; AVX2-FP-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill6094; AVX2-FP-NEXT: vmovaps 256(%rdi), %ymm06095; AVX2-FP-NEXT: vmovaps 256(%rsi), %ymm16096; AVX2-FP-NEXT: vmovaps 256(%rdx), %ymm26097; AVX2-FP-NEXT: vmovaps 256(%rcx), %ymm36098; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6099; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6100; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6101; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6102; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6103; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6104; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6105; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6106; AVX2-FP-NEXT: vmovaps 288(%rdi), %ymm06107; AVX2-FP-NEXT: vmovaps 288(%rsi), %ymm16108; AVX2-FP-NEXT: vmovaps 288(%rdx), %ymm26109; AVX2-FP-NEXT: vmovaps 288(%rcx), %ymm36110; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6111; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6112; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6113; AVX2-FP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6114; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6115; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6116; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6117; AVX2-FP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6118; AVX2-FP-NEXT: vmovaps 320(%rdi), %ymm06119; AVX2-FP-NEXT: vmovaps 320(%rsi), %ymm16120; AVX2-FP-NEXT: vmovaps 320(%rdx), %ymm26121; AVX2-FP-NEXT: vmovaps 320(%rcx), %ymm36122; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6123; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6124; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]6125; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6126; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6127; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]6128; AVX2-FP-NEXT: vmovaps 352(%rdi), %ymm36129; AVX2-FP-NEXT: vmovaps 352(%rsi), %ymm16130; AVX2-FP-NEXT: vmovaps 352(%rdx), %ymm26131; AVX2-FP-NEXT: vmovaps 352(%rcx), %ymm06132; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]6133; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]6134; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm15[2,3],ymm4[2,3]6135; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]6136; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]6137; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]6138; AVX2-FP-NEXT: vmovaps 384(%rdi), %ymm16139; AVX2-FP-NEXT: vmovaps 384(%rsi), %ymm36140; AVX2-FP-NEXT: vmovaps 384(%rdx), %ymm156141; AVX2-FP-NEXT: vmovaps 384(%rcx), %ymm06142; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]6143; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]6144; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm14[2,3],ymm2[2,3]6145; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]6146; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]6147; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]6148; AVX2-FP-NEXT: vmovaps 416(%rdi), %ymm16149; AVX2-FP-NEXT: vmovaps 416(%rsi), %ymm36150; AVX2-FP-NEXT: vmovaps 416(%rdx), %ymm146151; AVX2-FP-NEXT: vmovaps 416(%rcx), %ymm156152; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6153; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]6154; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm13[2,3],ymm0[2,3]6155; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6156; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]6157; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm13[2,3]6158; AVX2-FP-NEXT: vmovaps 448(%rdi), %ymm36159; AVX2-FP-NEXT: vmovaps 448(%rsi), %ymm136160; AVX2-FP-NEXT: vmovaps 448(%rdx), %ymm146161; AVX2-FP-NEXT: vmovaps 448(%rcx), %ymm156162; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6163; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm13[0],ymm3[2],ymm13[2]6164; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm12[2,3],ymm0[2,3]6165; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6166; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm13[1],ymm3[3],ymm13[3]6167; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm12[2,3]6168; AVX2-FP-NEXT: vmovaps 480(%rdi), %ymm126169; AVX2-FP-NEXT: vmovaps 480(%rsi), %ymm136170; AVX2-FP-NEXT: vmovaps 480(%rdx), %ymm146171; AVX2-FP-NEXT: vmovaps 480(%rcx), %ymm156172; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6173; AVX2-FP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm13[0],ymm12[2],ymm13[2]6174; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]6175; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6176; AVX2-FP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]6177; AVX2-FP-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]6178; AVX2-FP-NEXT: vmovaps %ymm11, 2016(%r8)6179; AVX2-FP-NEXT: vmovaps %ymm0, 1984(%r8)6180; AVX2-FP-NEXT: vmovaps %ymm3, 1888(%r8)6181; AVX2-FP-NEXT: vmovaps %ymm1, 1856(%r8)6182; AVX2-FP-NEXT: vmovaps %ymm2, 1760(%r8)6183; AVX2-FP-NEXT: vmovaps %ymm4, 1728(%r8)6184; AVX2-FP-NEXT: vmovaps %ymm5, 1632(%r8)6185; AVX2-FP-NEXT: vmovaps %ymm6, 1600(%r8)6186; AVX2-FP-NEXT: vmovaps %ymm7, 1504(%r8)6187; AVX2-FP-NEXT: vmovaps %ymm8, 1472(%r8)6188; AVX2-FP-NEXT: vmovaps %ymm9, 1376(%r8)6189; AVX2-FP-NEXT: vmovaps %ymm10, 1344(%r8)6190; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6191; AVX2-FP-NEXT: vmovaps %ymm0, 1248(%r8)6192; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6193; AVX2-FP-NEXT: vmovaps %ymm0, 1216(%r8)6194; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6195; AVX2-FP-NEXT: vmovaps %ymm0, 1120(%r8)6196; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6197; AVX2-FP-NEXT: vmovaps %ymm0, 1088(%r8)6198; AVX2-FP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload6199; AVX2-FP-NEXT: vmovaps %ymm0, 992(%r8)6200; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6201; AVX2-FP-NEXT: vmovaps %ymm0, 960(%r8)6202; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6203; AVX2-FP-NEXT: vmovaps %ymm0, 864(%r8)6204; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6205; AVX2-FP-NEXT: vmovaps %ymm0, 832(%r8)6206; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6207; AVX2-FP-NEXT: vmovaps %ymm0, 736(%r8)6208; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6209; AVX2-FP-NEXT: vmovaps %ymm0, 704(%r8)6210; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6211; AVX2-FP-NEXT: vmovaps %ymm0, 608(%r8)6212; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6213; AVX2-FP-NEXT: vmovaps %ymm0, 576(%r8)6214; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6215; AVX2-FP-NEXT: vmovaps %ymm0, 480(%r8)6216; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6217; AVX2-FP-NEXT: vmovaps %ymm0, 448(%r8)6218; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6219; AVX2-FP-NEXT: vmovaps %ymm0, 352(%r8)6220; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6221; AVX2-FP-NEXT: vmovaps %ymm0, 320(%r8)6222; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6223; AVX2-FP-NEXT: vmovaps %ymm0, 224(%r8)6224; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6225; AVX2-FP-NEXT: vmovaps %ymm0, 192(%r8)6226; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6227; AVX2-FP-NEXT: vmovaps %ymm0, 96(%r8)6228; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6229; AVX2-FP-NEXT: vmovaps %ymm0, 64(%r8)6230; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6231; AVX2-FP-NEXT: vmovaps %ymm0, 1952(%r8)6232; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6233; AVX2-FP-NEXT: vmovaps %ymm0, 1920(%r8)6234; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6235; AVX2-FP-NEXT: vmovaps %ymm0, 1824(%r8)6236; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6237; AVX2-FP-NEXT: vmovaps %ymm0, 1792(%r8)6238; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6239; AVX2-FP-NEXT: vmovaps %ymm0, 1696(%r8)6240; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6241; AVX2-FP-NEXT: vmovaps %ymm0, 1664(%r8)6242; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6243; AVX2-FP-NEXT: vmovaps %ymm0, 1568(%r8)6244; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6245; AVX2-FP-NEXT: vmovaps %ymm0, 1536(%r8)6246; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6247; AVX2-FP-NEXT: vmovaps %ymm0, 1440(%r8)6248; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6249; AVX2-FP-NEXT: vmovaps %ymm0, 1408(%r8)6250; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6251; AVX2-FP-NEXT: vmovaps %ymm0, 1312(%r8)6252; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6253; AVX2-FP-NEXT: vmovaps %ymm0, 1280(%r8)6254; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6255; AVX2-FP-NEXT: vmovaps %ymm0, 1184(%r8)6256; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6257; AVX2-FP-NEXT: vmovaps %ymm0, 1152(%r8)6258; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6259; AVX2-FP-NEXT: vmovaps %ymm0, 1056(%r8)6260; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6261; AVX2-FP-NEXT: vmovaps %ymm0, 1024(%r8)6262; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6263; AVX2-FP-NEXT: vmovaps %ymm0, 928(%r8)6264; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6265; AVX2-FP-NEXT: vmovaps %ymm0, 896(%r8)6266; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6267; AVX2-FP-NEXT: vmovaps %ymm0, 800(%r8)6268; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6269; AVX2-FP-NEXT: vmovaps %ymm0, 768(%r8)6270; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6271; AVX2-FP-NEXT: vmovaps %ymm0, 672(%r8)6272; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6273; AVX2-FP-NEXT: vmovaps %ymm0, 640(%r8)6274; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6275; AVX2-FP-NEXT: vmovaps %ymm0, 544(%r8)6276; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6277; AVX2-FP-NEXT: vmovaps %ymm0, 512(%r8)6278; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6279; AVX2-FP-NEXT: vmovaps %ymm0, 416(%r8)6280; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6281; AVX2-FP-NEXT: vmovaps %ymm0, 384(%r8)6282; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6283; AVX2-FP-NEXT: vmovaps %ymm0, 288(%r8)6284; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6285; AVX2-FP-NEXT: vmovaps %ymm0, 256(%r8)6286; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6287; AVX2-FP-NEXT: vmovaps %ymm0, 160(%r8)6288; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6289; AVX2-FP-NEXT: vmovaps %ymm0, 128(%r8)6290; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6291; AVX2-FP-NEXT: vmovaps %ymm0, 32(%r8)6292; AVX2-FP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6293; AVX2-FP-NEXT: vmovaps %ymm0, (%r8)6294; AVX2-FP-NEXT: addq $1544, %rsp # imm = 0x6086295; AVX2-FP-NEXT: vzeroupper6296; AVX2-FP-NEXT: retq6297;6298; AVX2-FCP-LABEL: store_i64_stride4_vf64:6299; AVX2-FCP: # %bb.0:6300; AVX2-FCP-NEXT: subq $1544, %rsp # imm = 0x6086301; AVX2-FCP-NEXT: vmovaps (%rsi), %xmm06302; AVX2-FCP-NEXT: vmovaps 32(%rsi), %xmm16303; AVX2-FCP-NEXT: vmovaps 64(%rsi), %xmm26304; AVX2-FCP-NEXT: vinsertf128 $1, (%rcx), %ymm0, %ymm06305; AVX2-FCP-NEXT: vmovaps (%rdi), %xmm36306; AVX2-FCP-NEXT: vmovaps 32(%rdi), %xmm46307; AVX2-FCP-NEXT: vmovaps 64(%rdi), %xmm56308; AVX2-FCP-NEXT: vinsertf128 $1, (%rdx), %ymm3, %ymm36309; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm6 = ymm3[0],ymm0[0],ymm3[2],ymm0[2]6310; AVX2-FCP-NEXT: vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6311; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]6312; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6313; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rcx), %ymm1, %ymm06314; AVX2-FCP-NEXT: vinsertf128 $1, 32(%rdx), %ymm4, %ymm16315; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6316; AVX2-FCP-NEXT: vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6317; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6318; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6319; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rcx), %ymm2, %ymm06320; AVX2-FCP-NEXT: vinsertf128 $1, 64(%rdx), %ymm5, %ymm16321; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6322; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6323; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6324; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6325; AVX2-FCP-NEXT: vmovaps 96(%rsi), %xmm06326; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rcx), %ymm0, %ymm06327; AVX2-FCP-NEXT: vmovaps 96(%rdi), %xmm16328; AVX2-FCP-NEXT: vinsertf128 $1, 96(%rdx), %ymm1, %ymm16329; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6330; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6331; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6332; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6333; AVX2-FCP-NEXT: vmovaps 128(%rsi), %xmm06334; AVX2-FCP-NEXT: vinsertf128 $1, 128(%rcx), %ymm0, %ymm06335; AVX2-FCP-NEXT: vmovaps 128(%rdi), %xmm16336; AVX2-FCP-NEXT: vinsertf128 $1, 128(%rdx), %ymm1, %ymm16337; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6338; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6339; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6340; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6341; AVX2-FCP-NEXT: vmovaps 160(%rsi), %xmm06342; AVX2-FCP-NEXT: vinsertf128 $1, 160(%rcx), %ymm0, %ymm06343; AVX2-FCP-NEXT: vmovaps 160(%rdi), %xmm16344; AVX2-FCP-NEXT: vinsertf128 $1, 160(%rdx), %ymm1, %ymm16345; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6346; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6347; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6348; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6349; AVX2-FCP-NEXT: vmovaps 192(%rsi), %xmm06350; AVX2-FCP-NEXT: vinsertf128 $1, 192(%rcx), %ymm0, %ymm06351; AVX2-FCP-NEXT: vmovaps 192(%rdi), %xmm16352; AVX2-FCP-NEXT: vinsertf128 $1, 192(%rdx), %ymm1, %ymm16353; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6354; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6355; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6356; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6357; AVX2-FCP-NEXT: vmovaps 224(%rsi), %xmm06358; AVX2-FCP-NEXT: vinsertf128 $1, 224(%rcx), %ymm0, %ymm06359; AVX2-FCP-NEXT: vmovaps 224(%rdi), %xmm16360; AVX2-FCP-NEXT: vinsertf128 $1, 224(%rdx), %ymm1, %ymm16361; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6362; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6363; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6364; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6365; AVX2-FCP-NEXT: vmovaps 256(%rsi), %xmm06366; AVX2-FCP-NEXT: vinsertf128 $1, 256(%rcx), %ymm0, %ymm06367; AVX2-FCP-NEXT: vmovaps 256(%rdi), %xmm16368; AVX2-FCP-NEXT: vinsertf128 $1, 256(%rdx), %ymm1, %ymm16369; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6370; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6371; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6372; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6373; AVX2-FCP-NEXT: vmovaps 288(%rsi), %xmm06374; AVX2-FCP-NEXT: vinsertf128 $1, 288(%rcx), %ymm0, %ymm06375; AVX2-FCP-NEXT: vmovaps 288(%rdi), %xmm16376; AVX2-FCP-NEXT: vinsertf128 $1, 288(%rdx), %ymm1, %ymm16377; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6378; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6379; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6380; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6381; AVX2-FCP-NEXT: vmovaps 320(%rsi), %xmm06382; AVX2-FCP-NEXT: vinsertf128 $1, 320(%rcx), %ymm0, %ymm06383; AVX2-FCP-NEXT: vmovaps 320(%rdi), %xmm16384; AVX2-FCP-NEXT: vinsertf128 $1, 320(%rdx), %ymm1, %ymm16385; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6386; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6387; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6388; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6389; AVX2-FCP-NEXT: vmovaps 352(%rsi), %xmm06390; AVX2-FCP-NEXT: vinsertf128 $1, 352(%rcx), %ymm0, %ymm06391; AVX2-FCP-NEXT: vmovaps 352(%rdi), %xmm16392; AVX2-FCP-NEXT: vinsertf128 $1, 352(%rdx), %ymm1, %ymm16393; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6394; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6395; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6396; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6397; AVX2-FCP-NEXT: vmovaps 384(%rsi), %xmm06398; AVX2-FCP-NEXT: vinsertf128 $1, 384(%rcx), %ymm0, %ymm06399; AVX2-FCP-NEXT: vmovaps 384(%rdi), %xmm16400; AVX2-FCP-NEXT: vinsertf128 $1, 384(%rdx), %ymm1, %ymm16401; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6402; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6403; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6404; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6405; AVX2-FCP-NEXT: vmovaps 416(%rsi), %xmm06406; AVX2-FCP-NEXT: vinsertf128 $1, 416(%rcx), %ymm0, %ymm06407; AVX2-FCP-NEXT: vmovaps 416(%rdi), %xmm16408; AVX2-FCP-NEXT: vinsertf128 $1, 416(%rdx), %ymm1, %ymm16409; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6410; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6411; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6412; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6413; AVX2-FCP-NEXT: vmovaps 448(%rsi), %xmm06414; AVX2-FCP-NEXT: vinsertf128 $1, 448(%rcx), %ymm0, %ymm06415; AVX2-FCP-NEXT: vmovaps 448(%rdi), %xmm16416; AVX2-FCP-NEXT: vinsertf128 $1, 448(%rdx), %ymm1, %ymm16417; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6418; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6419; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6420; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6421; AVX2-FCP-NEXT: vmovaps 480(%rsi), %xmm06422; AVX2-FCP-NEXT: vinsertf128 $1, 480(%rcx), %ymm0, %ymm06423; AVX2-FCP-NEXT: vmovaps 480(%rdi), %xmm16424; AVX2-FCP-NEXT: vinsertf128 $1, 480(%rdx), %ymm1, %ymm16425; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]6426; AVX2-FCP-NEXT: vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6427; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]6428; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6429; AVX2-FCP-NEXT: vmovaps (%rdi), %ymm06430; AVX2-FCP-NEXT: vmovaps (%rsi), %ymm16431; AVX2-FCP-NEXT: vmovaps (%rdx), %ymm26432; AVX2-FCP-NEXT: vmovaps (%rcx), %ymm36433; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6434; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6435; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6436; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6437; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6438; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6439; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6440; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6441; AVX2-FCP-NEXT: vmovaps 32(%rdi), %ymm06442; AVX2-FCP-NEXT: vmovaps 32(%rsi), %ymm16443; AVX2-FCP-NEXT: vmovaps 32(%rdx), %ymm26444; AVX2-FCP-NEXT: vmovaps 32(%rcx), %ymm36445; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6446; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6447; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6448; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6449; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6450; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6451; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6452; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6453; AVX2-FCP-NEXT: vmovaps 64(%rdi), %ymm06454; AVX2-FCP-NEXT: vmovaps 64(%rsi), %ymm16455; AVX2-FCP-NEXT: vmovaps 64(%rdx), %ymm26456; AVX2-FCP-NEXT: vmovaps 64(%rcx), %ymm36457; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6458; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6459; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6460; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6461; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6462; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6463; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6464; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6465; AVX2-FCP-NEXT: vmovaps 96(%rdi), %ymm06466; AVX2-FCP-NEXT: vmovaps 96(%rsi), %ymm16467; AVX2-FCP-NEXT: vmovaps 96(%rdx), %ymm26468; AVX2-FCP-NEXT: vmovaps 96(%rcx), %ymm36469; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6470; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6471; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6472; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6473; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6474; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6475; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6476; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6477; AVX2-FCP-NEXT: vmovaps 128(%rdi), %ymm06478; AVX2-FCP-NEXT: vmovaps 128(%rsi), %ymm16479; AVX2-FCP-NEXT: vmovaps 128(%rdx), %ymm26480; AVX2-FCP-NEXT: vmovaps 128(%rcx), %ymm36481; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6482; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6483; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6484; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6485; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6486; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6487; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6488; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6489; AVX2-FCP-NEXT: vmovaps 160(%rdi), %ymm06490; AVX2-FCP-NEXT: vmovaps 160(%rsi), %ymm16491; AVX2-FCP-NEXT: vmovaps 160(%rdx), %ymm26492; AVX2-FCP-NEXT: vmovaps 160(%rcx), %ymm36493; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6494; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6495; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6496; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6497; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6498; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6499; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6500; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6501; AVX2-FCP-NEXT: vmovaps 192(%rdi), %ymm06502; AVX2-FCP-NEXT: vmovaps 192(%rsi), %ymm16503; AVX2-FCP-NEXT: vmovaps 192(%rdx), %ymm26504; AVX2-FCP-NEXT: vmovaps 192(%rcx), %ymm36505; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6506; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6507; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6508; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6509; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6510; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6511; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6512; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6513; AVX2-FCP-NEXT: vmovaps 224(%rdi), %ymm06514; AVX2-FCP-NEXT: vmovaps 224(%rsi), %ymm16515; AVX2-FCP-NEXT: vmovaps 224(%rdx), %ymm26516; AVX2-FCP-NEXT: vmovaps 224(%rcx), %ymm36517; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6518; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6519; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6520; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6521; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6522; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6523; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6524; AVX2-FCP-NEXT: vmovups %ymm0, (%rsp) # 32-byte Spill6525; AVX2-FCP-NEXT: vmovaps 256(%rdi), %ymm06526; AVX2-FCP-NEXT: vmovaps 256(%rsi), %ymm16527; AVX2-FCP-NEXT: vmovaps 256(%rdx), %ymm26528; AVX2-FCP-NEXT: vmovaps 256(%rcx), %ymm36529; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6530; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6531; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6532; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6533; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6534; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6535; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6536; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6537; AVX2-FCP-NEXT: vmovaps 288(%rdi), %ymm06538; AVX2-FCP-NEXT: vmovaps 288(%rsi), %ymm16539; AVX2-FCP-NEXT: vmovaps 288(%rdx), %ymm26540; AVX2-FCP-NEXT: vmovaps 288(%rcx), %ymm36541; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6542; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6543; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm5[2,3],ymm4[2,3]6544; AVX2-FCP-NEXT: vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6545; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6546; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6547; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]6548; AVX2-FCP-NEXT: vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill6549; AVX2-FCP-NEXT: vmovaps 320(%rdi), %ymm06550; AVX2-FCP-NEXT: vmovaps 320(%rsi), %ymm16551; AVX2-FCP-NEXT: vmovaps 320(%rdx), %ymm26552; AVX2-FCP-NEXT: vmovaps 320(%rcx), %ymm36553; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]6554; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm5 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]6555; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm10 = ymm5[2,3],ymm4[2,3]6556; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]6557; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]6558; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm9 = ymm0[2,3],ymm2[2,3]6559; AVX2-FCP-NEXT: vmovaps 352(%rdi), %ymm36560; AVX2-FCP-NEXT: vmovaps 352(%rsi), %ymm16561; AVX2-FCP-NEXT: vmovaps 352(%rdx), %ymm26562; AVX2-FCP-NEXT: vmovaps 352(%rcx), %ymm06563; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm0[0],ymm2[2],ymm0[2]6564; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm15 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]6565; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm8 = ymm15[2,3],ymm4[2,3]6566; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]6567; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]6568; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm7 = ymm1[2,3],ymm0[2,3]6569; AVX2-FCP-NEXT: vmovaps 384(%rdi), %ymm16570; AVX2-FCP-NEXT: vmovaps 384(%rsi), %ymm36571; AVX2-FCP-NEXT: vmovaps 384(%rdx), %ymm156572; AVX2-FCP-NEXT: vmovaps 384(%rcx), %ymm06573; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm2 = ymm15[0],ymm0[0],ymm15[2],ymm0[2]6574; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm14 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]6575; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm6 = ymm14[2,3],ymm2[2,3]6576; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]6577; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]6578; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm5 = ymm1[2,3],ymm0[2,3]6579; AVX2-FCP-NEXT: vmovaps 416(%rdi), %ymm16580; AVX2-FCP-NEXT: vmovaps 416(%rsi), %ymm36581; AVX2-FCP-NEXT: vmovaps 416(%rdx), %ymm146582; AVX2-FCP-NEXT: vmovaps 416(%rcx), %ymm156583; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6584; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm13 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]6585; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm4 = ymm13[2,3],ymm0[2,3]6586; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm13 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6587; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]6588; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm2 = ymm1[2,3],ymm13[2,3]6589; AVX2-FCP-NEXT: vmovaps 448(%rdi), %ymm36590; AVX2-FCP-NEXT: vmovaps 448(%rsi), %ymm136591; AVX2-FCP-NEXT: vmovaps 448(%rdx), %ymm146592; AVX2-FCP-NEXT: vmovaps 448(%rcx), %ymm156593; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6594; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm12 = ymm3[0],ymm13[0],ymm3[2],ymm13[2]6595; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm12[2,3],ymm0[2,3]6596; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6597; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm3 = ymm3[1],ymm13[1],ymm3[3],ymm13[3]6598; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm3 = ymm3[2,3],ymm12[2,3]6599; AVX2-FCP-NEXT: vmovaps 480(%rdi), %ymm126600; AVX2-FCP-NEXT: vmovaps 480(%rsi), %ymm136601; AVX2-FCP-NEXT: vmovaps 480(%rdx), %ymm146602; AVX2-FCP-NEXT: vmovaps 480(%rcx), %ymm156603; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]6604; AVX2-FCP-NEXT: vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm13[0],ymm12[2],ymm13[2]6605; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm0[2,3]6606; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm11 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]6607; AVX2-FCP-NEXT: vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm13[1],ymm12[3],ymm13[3]6608; AVX2-FCP-NEXT: vperm2f128 {{.*#+}} ymm11 = ymm12[2,3],ymm11[2,3]6609; AVX2-FCP-NEXT: vmovaps %ymm11, 2016(%r8)6610; AVX2-FCP-NEXT: vmovaps %ymm0, 1984(%r8)6611; AVX2-FCP-NEXT: vmovaps %ymm3, 1888(%r8)6612; AVX2-FCP-NEXT: vmovaps %ymm1, 1856(%r8)6613; AVX2-FCP-NEXT: vmovaps %ymm2, 1760(%r8)6614; AVX2-FCP-NEXT: vmovaps %ymm4, 1728(%r8)6615; AVX2-FCP-NEXT: vmovaps %ymm5, 1632(%r8)6616; AVX2-FCP-NEXT: vmovaps %ymm6, 1600(%r8)6617; AVX2-FCP-NEXT: vmovaps %ymm7, 1504(%r8)6618; AVX2-FCP-NEXT: vmovaps %ymm8, 1472(%r8)6619; AVX2-FCP-NEXT: vmovaps %ymm9, 1376(%r8)6620; AVX2-FCP-NEXT: vmovaps %ymm10, 1344(%r8)6621; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6622; AVX2-FCP-NEXT: vmovaps %ymm0, 1248(%r8)6623; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6624; AVX2-FCP-NEXT: vmovaps %ymm0, 1216(%r8)6625; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6626; AVX2-FCP-NEXT: vmovaps %ymm0, 1120(%r8)6627; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6628; AVX2-FCP-NEXT: vmovaps %ymm0, 1088(%r8)6629; AVX2-FCP-NEXT: vmovups (%rsp), %ymm0 # 32-byte Reload6630; AVX2-FCP-NEXT: vmovaps %ymm0, 992(%r8)6631; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6632; AVX2-FCP-NEXT: vmovaps %ymm0, 960(%r8)6633; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6634; AVX2-FCP-NEXT: vmovaps %ymm0, 864(%r8)6635; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6636; AVX2-FCP-NEXT: vmovaps %ymm0, 832(%r8)6637; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6638; AVX2-FCP-NEXT: vmovaps %ymm0, 736(%r8)6639; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6640; AVX2-FCP-NEXT: vmovaps %ymm0, 704(%r8)6641; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6642; AVX2-FCP-NEXT: vmovaps %ymm0, 608(%r8)6643; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6644; AVX2-FCP-NEXT: vmovaps %ymm0, 576(%r8)6645; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6646; AVX2-FCP-NEXT: vmovaps %ymm0, 480(%r8)6647; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6648; AVX2-FCP-NEXT: vmovaps %ymm0, 448(%r8)6649; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6650; AVX2-FCP-NEXT: vmovaps %ymm0, 352(%r8)6651; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6652; AVX2-FCP-NEXT: vmovaps %ymm0, 320(%r8)6653; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6654; AVX2-FCP-NEXT: vmovaps %ymm0, 224(%r8)6655; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6656; AVX2-FCP-NEXT: vmovaps %ymm0, 192(%r8)6657; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6658; AVX2-FCP-NEXT: vmovaps %ymm0, 96(%r8)6659; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6660; AVX2-FCP-NEXT: vmovaps %ymm0, 64(%r8)6661; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6662; AVX2-FCP-NEXT: vmovaps %ymm0, 1952(%r8)6663; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6664; AVX2-FCP-NEXT: vmovaps %ymm0, 1920(%r8)6665; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6666; AVX2-FCP-NEXT: vmovaps %ymm0, 1824(%r8)6667; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6668; AVX2-FCP-NEXT: vmovaps %ymm0, 1792(%r8)6669; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6670; AVX2-FCP-NEXT: vmovaps %ymm0, 1696(%r8)6671; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6672; AVX2-FCP-NEXT: vmovaps %ymm0, 1664(%r8)6673; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6674; AVX2-FCP-NEXT: vmovaps %ymm0, 1568(%r8)6675; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6676; AVX2-FCP-NEXT: vmovaps %ymm0, 1536(%r8)6677; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6678; AVX2-FCP-NEXT: vmovaps %ymm0, 1440(%r8)6679; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6680; AVX2-FCP-NEXT: vmovaps %ymm0, 1408(%r8)6681; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6682; AVX2-FCP-NEXT: vmovaps %ymm0, 1312(%r8)6683; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6684; AVX2-FCP-NEXT: vmovaps %ymm0, 1280(%r8)6685; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6686; AVX2-FCP-NEXT: vmovaps %ymm0, 1184(%r8)6687; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6688; AVX2-FCP-NEXT: vmovaps %ymm0, 1152(%r8)6689; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6690; AVX2-FCP-NEXT: vmovaps %ymm0, 1056(%r8)6691; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6692; AVX2-FCP-NEXT: vmovaps %ymm0, 1024(%r8)6693; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6694; AVX2-FCP-NEXT: vmovaps %ymm0, 928(%r8)6695; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6696; AVX2-FCP-NEXT: vmovaps %ymm0, 896(%r8)6697; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6698; AVX2-FCP-NEXT: vmovaps %ymm0, 800(%r8)6699; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6700; AVX2-FCP-NEXT: vmovaps %ymm0, 768(%r8)6701; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6702; AVX2-FCP-NEXT: vmovaps %ymm0, 672(%r8)6703; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6704; AVX2-FCP-NEXT: vmovaps %ymm0, 640(%r8)6705; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6706; AVX2-FCP-NEXT: vmovaps %ymm0, 544(%r8)6707; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6708; AVX2-FCP-NEXT: vmovaps %ymm0, 512(%r8)6709; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6710; AVX2-FCP-NEXT: vmovaps %ymm0, 416(%r8)6711; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6712; AVX2-FCP-NEXT: vmovaps %ymm0, 384(%r8)6713; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6714; AVX2-FCP-NEXT: vmovaps %ymm0, 288(%r8)6715; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6716; AVX2-FCP-NEXT: vmovaps %ymm0, 256(%r8)6717; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6718; AVX2-FCP-NEXT: vmovaps %ymm0, 160(%r8)6719; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6720; AVX2-FCP-NEXT: vmovaps %ymm0, 128(%r8)6721; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6722; AVX2-FCP-NEXT: vmovaps %ymm0, 32(%r8)6723; AVX2-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload6724; AVX2-FCP-NEXT: vmovaps %ymm0, (%r8)6725; AVX2-FCP-NEXT: addq $1544, %rsp # imm = 0x6086726; AVX2-FCP-NEXT: vzeroupper6727; AVX2-FCP-NEXT: retq6728;6729; AVX512-LABEL: store_i64_stride4_vf64:6730; AVX512: # %bb.0:6731; AVX512-NEXT: subq $2120, %rsp # imm = 0x8486732; AVX512-NEXT: vmovdqa64 384(%rdx), %zmm66733; AVX512-NEXT: vmovdqa64 320(%rdx), %zmm76734; AVX512-NEXT: vmovdqa64 256(%rdx), %zmm86735; AVX512-NEXT: vmovdqa64 (%rdx), %zmm146736; AVX512-NEXT: vmovdqa64 64(%rdx), %zmm126737; AVX512-NEXT: vmovdqa64 128(%rdx), %zmm116738; AVX512-NEXT: vmovdqa64 192(%rdx), %zmm106739; AVX512-NEXT: vmovdqa64 384(%rcx), %zmm236740; AVX512-NEXT: vmovdqa64 320(%rcx), %zmm36741; AVX512-NEXT: vmovdqa64 256(%rcx), %zmm06742; AVX512-NEXT: vmovdqa64 (%rcx), %zmm46743; AVX512-NEXT: vmovdqa64 64(%rcx), %zmm56744; AVX512-NEXT: vmovdqa64 128(%rcx), %zmm26745; AVX512-NEXT: vmovdqa64 192(%rcx), %zmm16746; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]6747; AVX512-NEXT: vmovdqa64 %zmm14, %zmm136748; AVX512-NEXT: vpermt2q %zmm4, %zmm9, %zmm136749; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6750; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]6751; AVX512-NEXT: vmovdqa64 %zmm14, %zmm156752; AVX512-NEXT: vpermt2q %zmm4, %zmm13, %zmm156753; AVX512-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6754; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]6755; AVX512-NEXT: vmovdqa64 %zmm14, %zmm166756; AVX512-NEXT: vpermt2q %zmm4, %zmm15, %zmm166757; AVX512-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6758; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]6759; AVX512-NEXT: vpermt2q %zmm4, %zmm26, %zmm146760; AVX512-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6761; AVX512-NEXT: vmovdqa64 %zmm12, %zmm46762; AVX512-NEXT: vpermt2q %zmm5, %zmm9, %zmm126763; AVX512-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6764; AVX512-NEXT: vmovdqa64 %zmm4, %zmm126765; AVX512-NEXT: vpermt2q %zmm5, %zmm13, %zmm126766; AVX512-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6767; AVX512-NEXT: vmovdqa64 %zmm4, %zmm126768; AVX512-NEXT: vpermt2q %zmm5, %zmm15, %zmm126769; AVX512-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6770; AVX512-NEXT: vpermt2q %zmm5, %zmm26, %zmm46771; AVX512-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6772; AVX512-NEXT: vmovdqa64 %zmm11, %zmm46773; AVX512-NEXT: vpermt2q %zmm2, %zmm9, %zmm46774; AVX512-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6775; AVX512-NEXT: vmovdqa64 %zmm11, %zmm46776; AVX512-NEXT: vpermt2q %zmm2, %zmm13, %zmm46777; AVX512-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6778; AVX512-NEXT: vmovdqa64 %zmm11, %zmm46779; AVX512-NEXT: vpermt2q %zmm2, %zmm15, %zmm46780; AVX512-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6781; AVX512-NEXT: vpermt2q %zmm2, %zmm26, %zmm116782; AVX512-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6783; AVX512-NEXT: vmovdqa64 %zmm10, %zmm26784; AVX512-NEXT: vpermt2q %zmm1, %zmm9, %zmm26785; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6786; AVX512-NEXT: vmovdqa64 %zmm10, %zmm26787; AVX512-NEXT: vpermt2q %zmm1, %zmm13, %zmm26788; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6789; AVX512-NEXT: vmovdqa64 %zmm10, %zmm26790; AVX512-NEXT: vpermt2q %zmm1, %zmm15, %zmm26791; AVX512-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6792; AVX512-NEXT: vpermt2q %zmm1, %zmm26, %zmm106793; AVX512-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6794; AVX512-NEXT: vmovdqa64 %zmm8, %zmm16795; AVX512-NEXT: vpermt2q %zmm0, %zmm9, %zmm16796; AVX512-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6797; AVX512-NEXT: vmovdqa64 %zmm8, %zmm16798; AVX512-NEXT: vpermt2q %zmm0, %zmm13, %zmm16799; AVX512-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6800; AVX512-NEXT: vmovdqa64 %zmm8, %zmm16801; AVX512-NEXT: vpermt2q %zmm0, %zmm15, %zmm16802; AVX512-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6803; AVX512-NEXT: vpermt2q %zmm0, %zmm26, %zmm86804; AVX512-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6805; AVX512-NEXT: vmovdqa64 %zmm7, %zmm06806; AVX512-NEXT: vpermt2q %zmm3, %zmm9, %zmm06807; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6808; AVX512-NEXT: vmovdqa64 %zmm7, %zmm06809; AVX512-NEXT: vpermt2q %zmm3, %zmm13, %zmm06810; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6811; AVX512-NEXT: vmovdqa64 %zmm7, %zmm06812; AVX512-NEXT: vpermt2q %zmm3, %zmm15, %zmm06813; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6814; AVX512-NEXT: vpermt2q %zmm3, %zmm26, %zmm76815; AVX512-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6816; AVX512-NEXT: vmovdqa64 %zmm6, %zmm06817; AVX512-NEXT: vpermt2q %zmm23, %zmm9, %zmm06818; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6819; AVX512-NEXT: vmovdqa64 %zmm6, %zmm06820; AVX512-NEXT: vpermt2q %zmm23, %zmm13, %zmm06821; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6822; AVX512-NEXT: vmovdqa64 %zmm6, %zmm06823; AVX512-NEXT: vpermt2q %zmm23, %zmm15, %zmm06824; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6825; AVX512-NEXT: vpermt2q %zmm23, %zmm26, %zmm66826; AVX512-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6827; AVX512-NEXT: vmovdqa64 448(%rdx), %zmm286828; AVX512-NEXT: vmovdqa64 448(%rcx), %zmm06829; AVX512-NEXT: vpermi2q %zmm0, %zmm28, %zmm96830; AVX512-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6831; AVX512-NEXT: vpermi2q %zmm0, %zmm28, %zmm136832; AVX512-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6833; AVX512-NEXT: vpermi2q %zmm0, %zmm28, %zmm156834; AVX512-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6835; AVX512-NEXT: vpermt2q %zmm0, %zmm26, %zmm286836; AVX512-NEXT: vmovdqa64 (%rdi), %zmm266837; AVX512-NEXT: vmovdqa64 (%rsi), %zmm36838; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]6839; AVX512-NEXT: vmovdqa64 %zmm26, %zmm06840; AVX512-NEXT: vpermt2q %zmm3, %zmm7, %zmm06841; AVX512-NEXT: vmovdqa64 %zmm0, %zmm306842; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]6843; AVX512-NEXT: vmovdqa64 %zmm26, %zmm06844; AVX512-NEXT: vpermt2q %zmm3, %zmm5, %zmm06845; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6846; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]6847; AVX512-NEXT: vmovdqa64 %zmm26, %zmm06848; AVX512-NEXT: vpermt2q %zmm3, %zmm2, %zmm06849; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6850; AVX512-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]6851; AVX512-NEXT: vpermt2q %zmm3, %zmm22, %zmm266852; AVX512-NEXT: vmovdqa64 64(%rdi), %zmm206853; AVX512-NEXT: vmovdqa64 64(%rsi), %zmm36854; AVX512-NEXT: vmovdqa64 %zmm20, %zmm06855; AVX512-NEXT: vpermt2q %zmm3, %zmm7, %zmm06856; AVX512-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6857; AVX512-NEXT: vmovdqa64 %zmm20, %zmm06858; AVX512-NEXT: vpermt2q %zmm3, %zmm5, %zmm06859; AVX512-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill6860; AVX512-NEXT: vmovdqa64 %zmm20, %zmm296861; AVX512-NEXT: vpermt2q %zmm3, %zmm2, %zmm296862; AVX512-NEXT: vpermt2q %zmm3, %zmm22, %zmm206863; AVX512-NEXT: vmovdqa64 128(%rdi), %zmm186864; AVX512-NEXT: vmovdqa64 128(%rsi), %zmm36865; AVX512-NEXT: vmovdqa64 %zmm18, %zmm276866; AVX512-NEXT: vpermt2q %zmm3, %zmm7, %zmm276867; AVX512-NEXT: vmovdqa64 %zmm18, %zmm256868; AVX512-NEXT: vpermt2q %zmm3, %zmm5, %zmm256869; AVX512-NEXT: vmovdqa64 %zmm18, %zmm246870; AVX512-NEXT: vpermt2q %zmm3, %zmm2, %zmm246871; AVX512-NEXT: vpermt2q %zmm3, %zmm22, %zmm186872; AVX512-NEXT: vmovdqa64 192(%rdi), %zmm196873; AVX512-NEXT: vmovdqa64 192(%rsi), %zmm46874; AVX512-NEXT: vmovdqa64 %zmm19, %zmm236875; AVX512-NEXT: vpermt2q %zmm4, %zmm7, %zmm236876; AVX512-NEXT: vmovdqa64 %zmm19, %zmm216877; AVX512-NEXT: vpermt2q %zmm4, %zmm5, %zmm216878; AVX512-NEXT: vmovdqa64 %zmm19, %zmm176879; AVX512-NEXT: vpermt2q %zmm4, %zmm2, %zmm176880; AVX512-NEXT: vpermt2q %zmm4, %zmm22, %zmm196881; AVX512-NEXT: vmovdqa64 256(%rdi), %zmm46882; AVX512-NEXT: vmovdqa64 256(%rsi), %zmm66883; AVX512-NEXT: vmovdqa64 %zmm4, %zmm166884; AVX512-NEXT: vpermt2q %zmm6, %zmm7, %zmm166885; AVX512-NEXT: vmovdqa64 %zmm4, %zmm156886; AVX512-NEXT: vpermt2q %zmm6, %zmm5, %zmm156887; AVX512-NEXT: vmovdqa64 %zmm4, %zmm146888; AVX512-NEXT: vpermt2q %zmm6, %zmm2, %zmm146889; AVX512-NEXT: vpermt2q %zmm6, %zmm22, %zmm46890; AVX512-NEXT: vmovdqa64 320(%rdi), %zmm66891; AVX512-NEXT: vmovdqa64 320(%rsi), %zmm06892; AVX512-NEXT: vmovdqa64 %zmm6, %zmm136893; AVX512-NEXT: vpermt2q %zmm0, %zmm7, %zmm136894; AVX512-NEXT: vmovdqa64 %zmm6, %zmm126895; AVX512-NEXT: vpermt2q %zmm0, %zmm5, %zmm126896; AVX512-NEXT: vmovdqa64 %zmm6, %zmm116897; AVX512-NEXT: vpermt2q %zmm0, %zmm2, %zmm116898; AVX512-NEXT: vpermt2q %zmm0, %zmm22, %zmm66899; AVX512-NEXT: vmovdqa64 384(%rdi), %zmm96900; AVX512-NEXT: vmovdqa64 384(%rsi), %zmm06901; AVX512-NEXT: vmovdqa64 %zmm9, %zmm106902; AVX512-NEXT: vpermt2q %zmm0, %zmm7, %zmm106903; AVX512-NEXT: vmovdqa64 %zmm9, %zmm86904; AVX512-NEXT: vpermt2q %zmm0, %zmm5, %zmm86905; AVX512-NEXT: vmovdqa64 %zmm9, %zmm36906; AVX512-NEXT: vpermt2q %zmm0, %zmm2, %zmm36907; AVX512-NEXT: vpermt2q %zmm0, %zmm22, %zmm96908; AVX512-NEXT: vmovdqa64 448(%rdi), %zmm16909; AVX512-NEXT: vmovdqa64 448(%rsi), %zmm06910; AVX512-NEXT: vpermi2q %zmm0, %zmm1, %zmm76911; AVX512-NEXT: vpermi2q %zmm0, %zmm1, %zmm56912; AVX512-NEXT: vpermi2q %zmm0, %zmm1, %zmm26913; AVX512-NEXT: vpermt2q %zmm0, %zmm22, %zmm16914; AVX512-NEXT: movb $-52, %al6915; AVX512-NEXT: kmovw %eax, %k16916; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6917; AVX512-NEXT: vmovdqa64 %zmm30, %zmm226918; AVX512-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}6919; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6920; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload6921; AVX512-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}6922; AVX512-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6923; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6924; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload6925; AVX512-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}6926; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6927; AVX512-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}6928; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6929; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload6930; AVX512-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}6931; AVX512-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill6932; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6933; AVX512-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload6934; AVX512-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}6935; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6936; AVX512-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}6937; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6938; AVX512-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}6939; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6940; AVX512-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}6941; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6942; AVX512-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}6943; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6944; AVX512-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}6945; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6946; AVX512-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}6947; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6948; AVX512-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}6949; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6950; AVX512-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}6951; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6952; AVX512-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}6953; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6954; AVX512-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}6955; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6956; AVX512-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}6957; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6958; AVX512-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}6959; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6960; AVX512-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}6961; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6962; AVX512-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}6963; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6964; AVX512-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}6965; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6966; AVX512-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}6967; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6968; AVX512-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}6969; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6970; AVX512-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}6971; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6972; AVX512-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}6973; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6974; AVX512-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}6975; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6976; AVX512-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}6977; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6978; AVX512-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}6979; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6980; AVX512-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}6981; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6982; AVX512-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}6983; AVX512-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload6984; AVX512-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}6985; AVX512-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}6986; AVX512-NEXT: vmovdqa64 %zmm1, 1984(%r8)6987; AVX512-NEXT: vmovdqa64 %zmm2, 1920(%r8)6988; AVX512-NEXT: vmovdqa64 %zmm5, 1856(%r8)6989; AVX512-NEXT: vmovdqa64 %zmm7, 1792(%r8)6990; AVX512-NEXT: vmovdqa64 %zmm9, 1728(%r8)6991; AVX512-NEXT: vmovdqa64 %zmm3, 1664(%r8)6992; AVX512-NEXT: vmovdqa64 %zmm8, 1600(%r8)6993; AVX512-NEXT: vmovdqa64 %zmm10, 1536(%r8)6994; AVX512-NEXT: vmovdqa64 %zmm6, 1472(%r8)6995; AVX512-NEXT: vmovdqa64 %zmm11, 1408(%r8)6996; AVX512-NEXT: vmovdqa64 %zmm12, 1344(%r8)6997; AVX512-NEXT: vmovdqa64 %zmm13, 1280(%r8)6998; AVX512-NEXT: vmovdqa64 %zmm4, 1216(%r8)6999; AVX512-NEXT: vmovdqa64 %zmm14, 1152(%r8)7000; AVX512-NEXT: vmovdqa64 %zmm15, 1088(%r8)7001; AVX512-NEXT: vmovdqa64 %zmm16, 1024(%r8)7002; AVX512-NEXT: vmovdqa64 %zmm19, 960(%r8)7003; AVX512-NEXT: vmovdqa64 %zmm17, 896(%r8)7004; AVX512-NEXT: vmovdqa64 %zmm21, 832(%r8)7005; AVX512-NEXT: vmovdqa64 %zmm23, 768(%r8)7006; AVX512-NEXT: vmovdqa64 %zmm18, 704(%r8)7007; AVX512-NEXT: vmovdqa64 %zmm24, 640(%r8)7008; AVX512-NEXT: vmovdqa64 %zmm25, 576(%r8)7009; AVX512-NEXT: vmovdqa64 %zmm27, 512(%r8)7010; AVX512-NEXT: vmovdqa64 %zmm20, 448(%r8)7011; AVX512-NEXT: vmovdqa64 %zmm29, 384(%r8)7012; AVX512-NEXT: vmovdqa64 %zmm30, 320(%r8)7013; AVX512-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7014; AVX512-NEXT: vmovaps %zmm0, 256(%r8)7015; AVX512-NEXT: vmovdqa64 %zmm26, 192(%r8)7016; AVX512-NEXT: vmovdqa64 %zmm31, 128(%r8)7017; AVX512-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7018; AVX512-NEXT: vmovaps %zmm0, 64(%r8)7019; AVX512-NEXT: vmovdqa64 %zmm22, (%r8)7020; AVX512-NEXT: addq $2120, %rsp # imm = 0x8487021; AVX512-NEXT: vzeroupper7022; AVX512-NEXT: retq7023;7024; AVX512-FCP-LABEL: store_i64_stride4_vf64:7025; AVX512-FCP: # %bb.0:7026; AVX512-FCP-NEXT: subq $2120, %rsp # imm = 0x8487027; AVX512-FCP-NEXT: vmovdqa64 384(%rdx), %zmm67028; AVX512-FCP-NEXT: vmovdqa64 320(%rdx), %zmm77029; AVX512-FCP-NEXT: vmovdqa64 256(%rdx), %zmm87030; AVX512-FCP-NEXT: vmovdqa64 (%rdx), %zmm147031; AVX512-FCP-NEXT: vmovdqa64 64(%rdx), %zmm127032; AVX512-FCP-NEXT: vmovdqa64 128(%rdx), %zmm117033; AVX512-FCP-NEXT: vmovdqa64 192(%rdx), %zmm107034; AVX512-FCP-NEXT: vmovdqa64 384(%rcx), %zmm237035; AVX512-FCP-NEXT: vmovdqa64 320(%rcx), %zmm37036; AVX512-FCP-NEXT: vmovdqa64 256(%rcx), %zmm07037; AVX512-FCP-NEXT: vmovdqa64 (%rcx), %zmm47038; AVX512-FCP-NEXT: vmovdqa64 64(%rcx), %zmm57039; AVX512-FCP-NEXT: vmovdqa64 128(%rcx), %zmm27040; AVX512-FCP-NEXT: vmovdqa64 192(%rcx), %zmm17041; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]7042; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm137043; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm9, %zmm137044; AVX512-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7045; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]7046; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm157047; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm13, %zmm157048; AVX512-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7049; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]7050; AVX512-FCP-NEXT: vmovdqa64 %zmm14, %zmm167051; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm15, %zmm167052; AVX512-FCP-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7053; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]7054; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm26, %zmm147055; AVX512-FCP-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7056; AVX512-FCP-NEXT: vmovdqa64 %zmm12, %zmm47057; AVX512-FCP-NEXT: vpermt2q %zmm5, %zmm9, %zmm127058; AVX512-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7059; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm127060; AVX512-FCP-NEXT: vpermt2q %zmm5, %zmm13, %zmm127061; AVX512-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7062; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm127063; AVX512-FCP-NEXT: vpermt2q %zmm5, %zmm15, %zmm127064; AVX512-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7065; AVX512-FCP-NEXT: vpermt2q %zmm5, %zmm26, %zmm47066; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7067; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm47068; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm9, %zmm47069; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7070; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm47071; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm47072; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7073; AVX512-FCP-NEXT: vmovdqa64 %zmm11, %zmm47074; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm15, %zmm47075; AVX512-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7076; AVX512-FCP-NEXT: vpermt2q %zmm2, %zmm26, %zmm117077; AVX512-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7078; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm27079; AVX512-FCP-NEXT: vpermt2q %zmm1, %zmm9, %zmm27080; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7081; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm27082; AVX512-FCP-NEXT: vpermt2q %zmm1, %zmm13, %zmm27083; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7084; AVX512-FCP-NEXT: vmovdqa64 %zmm10, %zmm27085; AVX512-FCP-NEXT: vpermt2q %zmm1, %zmm15, %zmm27086; AVX512-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7087; AVX512-FCP-NEXT: vpermt2q %zmm1, %zmm26, %zmm107088; AVX512-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7089; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm17090; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm9, %zmm17091; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7092; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm17093; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm13, %zmm17094; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7095; AVX512-FCP-NEXT: vmovdqa64 %zmm8, %zmm17096; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm15, %zmm17097; AVX512-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7098; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm87099; AVX512-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7100; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm07101; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm9, %zmm07102; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7103; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm07104; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm13, %zmm07105; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7106; AVX512-FCP-NEXT: vmovdqa64 %zmm7, %zmm07107; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm15, %zmm07108; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7109; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm26, %zmm77110; AVX512-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7111; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm07112; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm9, %zmm07113; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7114; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm07115; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm13, %zmm07116; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7117; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm07118; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm07119; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7120; AVX512-FCP-NEXT: vpermt2q %zmm23, %zmm26, %zmm67121; AVX512-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7122; AVX512-FCP-NEXT: vmovdqa64 448(%rdx), %zmm287123; AVX512-FCP-NEXT: vmovdqa64 448(%rcx), %zmm07124; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm97125; AVX512-FCP-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7126; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm137127; AVX512-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7128; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm157129; AVX512-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7130; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm287131; AVX512-FCP-NEXT: vmovdqa64 (%rdi), %zmm267132; AVX512-FCP-NEXT: vmovdqa64 (%rsi), %zmm37133; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]7134; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm07135; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm07136; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm307137; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]7138; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm07139; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm07140; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7141; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]7142; AVX512-FCP-NEXT: vmovdqa64 %zmm26, %zmm07143; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm07144; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7145; AVX512-FCP-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]7146; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm267147; AVX512-FCP-NEXT: vmovdqa64 64(%rdi), %zmm207148; AVX512-FCP-NEXT: vmovdqa64 64(%rsi), %zmm37149; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm07150; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm07151; AVX512-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7152; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm07153; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm07154; AVX512-FCP-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill7155; AVX512-FCP-NEXT: vmovdqa64 %zmm20, %zmm297156; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm297157; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm207158; AVX512-FCP-NEXT: vmovdqa64 128(%rdi), %zmm187159; AVX512-FCP-NEXT: vmovdqa64 128(%rsi), %zmm37160; AVX512-FCP-NEXT: vmovdqa64 %zmm18, %zmm277161; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm277162; AVX512-FCP-NEXT: vmovdqa64 %zmm18, %zmm257163; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm257164; AVX512-FCP-NEXT: vmovdqa64 %zmm18, %zmm247165; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm247166; AVX512-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm187167; AVX512-FCP-NEXT: vmovdqa64 192(%rdi), %zmm197168; AVX512-FCP-NEXT: vmovdqa64 192(%rsi), %zmm47169; AVX512-FCP-NEXT: vmovdqa64 %zmm19, %zmm237170; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm7, %zmm237171; AVX512-FCP-NEXT: vmovdqa64 %zmm19, %zmm217172; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm5, %zmm217173; AVX512-FCP-NEXT: vmovdqa64 %zmm19, %zmm177174; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm2, %zmm177175; AVX512-FCP-NEXT: vpermt2q %zmm4, %zmm22, %zmm197176; AVX512-FCP-NEXT: vmovdqa64 256(%rdi), %zmm47177; AVX512-FCP-NEXT: vmovdqa64 256(%rsi), %zmm67178; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm167179; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm7, %zmm167180; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm157181; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm5, %zmm157182; AVX512-FCP-NEXT: vmovdqa64 %zmm4, %zmm147183; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm2, %zmm147184; AVX512-FCP-NEXT: vpermt2q %zmm6, %zmm22, %zmm47185; AVX512-FCP-NEXT: vmovdqa64 320(%rdi), %zmm67186; AVX512-FCP-NEXT: vmovdqa64 320(%rsi), %zmm07187; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm137188; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm137189; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm127190; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm127191; AVX512-FCP-NEXT: vmovdqa64 %zmm6, %zmm117192; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm117193; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm67194; AVX512-FCP-NEXT: vmovdqa64 384(%rdi), %zmm97195; AVX512-FCP-NEXT: vmovdqa64 384(%rsi), %zmm07196; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm107197; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm107198; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm87199; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm87200; AVX512-FCP-NEXT: vmovdqa64 %zmm9, %zmm37201; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm37202; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm97203; AVX512-FCP-NEXT: vmovdqa64 448(%rdi), %zmm17204; AVX512-FCP-NEXT: vmovdqa64 448(%rsi), %zmm07205; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm77206; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm57207; AVX512-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm27208; AVX512-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm17209; AVX512-FCP-NEXT: movb $-52, %al7210; AVX512-FCP-NEXT: kmovw %eax, %k17211; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7212; AVX512-FCP-NEXT: vmovdqa64 %zmm30, %zmm227213; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}7214; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7215; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7216; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7217; AVX512-FCP-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7218; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7219; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7220; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7221; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7222; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}7223; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7224; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload7225; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7226; AVX512-FCP-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7227; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7228; AVX512-FCP-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload7229; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7230; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7231; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}7232; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7233; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}7234; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7235; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}7236; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7237; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}7238; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7239; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}7240; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7241; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}7242; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7243; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}7244; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7245; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}7246; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7247; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}7248; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7249; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}7250; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7251; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}7252; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7253; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}7254; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7255; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}7256; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7257; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}7258; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7259; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}7260; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7261; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}7262; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7263; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}7264; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7265; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}7266; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7267; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}7268; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7269; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}7270; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7271; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}7272; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7273; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}7274; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7275; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}7276; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7277; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}7278; AVX512-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7279; AVX512-FCP-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}7280; AVX512-FCP-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}7281; AVX512-FCP-NEXT: vmovdqa64 %zmm1, 1984(%r8)7282; AVX512-FCP-NEXT: vmovdqa64 %zmm2, 1920(%r8)7283; AVX512-FCP-NEXT: vmovdqa64 %zmm5, 1856(%r8)7284; AVX512-FCP-NEXT: vmovdqa64 %zmm7, 1792(%r8)7285; AVX512-FCP-NEXT: vmovdqa64 %zmm9, 1728(%r8)7286; AVX512-FCP-NEXT: vmovdqa64 %zmm3, 1664(%r8)7287; AVX512-FCP-NEXT: vmovdqa64 %zmm8, 1600(%r8)7288; AVX512-FCP-NEXT: vmovdqa64 %zmm10, 1536(%r8)7289; AVX512-FCP-NEXT: vmovdqa64 %zmm6, 1472(%r8)7290; AVX512-FCP-NEXT: vmovdqa64 %zmm11, 1408(%r8)7291; AVX512-FCP-NEXT: vmovdqa64 %zmm12, 1344(%r8)7292; AVX512-FCP-NEXT: vmovdqa64 %zmm13, 1280(%r8)7293; AVX512-FCP-NEXT: vmovdqa64 %zmm4, 1216(%r8)7294; AVX512-FCP-NEXT: vmovdqa64 %zmm14, 1152(%r8)7295; AVX512-FCP-NEXT: vmovdqa64 %zmm15, 1088(%r8)7296; AVX512-FCP-NEXT: vmovdqa64 %zmm16, 1024(%r8)7297; AVX512-FCP-NEXT: vmovdqa64 %zmm19, 960(%r8)7298; AVX512-FCP-NEXT: vmovdqa64 %zmm17, 896(%r8)7299; AVX512-FCP-NEXT: vmovdqa64 %zmm21, 832(%r8)7300; AVX512-FCP-NEXT: vmovdqa64 %zmm23, 768(%r8)7301; AVX512-FCP-NEXT: vmovdqa64 %zmm18, 704(%r8)7302; AVX512-FCP-NEXT: vmovdqa64 %zmm24, 640(%r8)7303; AVX512-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)7304; AVX512-FCP-NEXT: vmovdqa64 %zmm27, 512(%r8)7305; AVX512-FCP-NEXT: vmovdqa64 %zmm20, 448(%r8)7306; AVX512-FCP-NEXT: vmovdqa64 %zmm29, 384(%r8)7307; AVX512-FCP-NEXT: vmovdqa64 %zmm30, 320(%r8)7308; AVX512-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7309; AVX512-FCP-NEXT: vmovaps %zmm0, 256(%r8)7310; AVX512-FCP-NEXT: vmovdqa64 %zmm26, 192(%r8)7311; AVX512-FCP-NEXT: vmovdqa64 %zmm31, 128(%r8)7312; AVX512-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7313; AVX512-FCP-NEXT: vmovaps %zmm0, 64(%r8)7314; AVX512-FCP-NEXT: vmovdqa64 %zmm22, (%r8)7315; AVX512-FCP-NEXT: addq $2120, %rsp # imm = 0x8487316; AVX512-FCP-NEXT: vzeroupper7317; AVX512-FCP-NEXT: retq7318;7319; AVX512DQ-LABEL: store_i64_stride4_vf64:7320; AVX512DQ: # %bb.0:7321; AVX512DQ-NEXT: subq $2120, %rsp # imm = 0x8487322; AVX512DQ-NEXT: vmovdqa64 384(%rdx), %zmm67323; AVX512DQ-NEXT: vmovdqa64 320(%rdx), %zmm77324; AVX512DQ-NEXT: vmovdqa64 256(%rdx), %zmm87325; AVX512DQ-NEXT: vmovdqa64 (%rdx), %zmm147326; AVX512DQ-NEXT: vmovdqa64 64(%rdx), %zmm127327; AVX512DQ-NEXT: vmovdqa64 128(%rdx), %zmm117328; AVX512DQ-NEXT: vmovdqa64 192(%rdx), %zmm107329; AVX512DQ-NEXT: vmovdqa64 384(%rcx), %zmm237330; AVX512DQ-NEXT: vmovdqa64 320(%rcx), %zmm37331; AVX512DQ-NEXT: vmovdqa64 256(%rcx), %zmm07332; AVX512DQ-NEXT: vmovdqa64 (%rcx), %zmm47333; AVX512DQ-NEXT: vmovdqa64 64(%rcx), %zmm57334; AVX512DQ-NEXT: vmovdqa64 128(%rcx), %zmm27335; AVX512DQ-NEXT: vmovdqa64 192(%rcx), %zmm17336; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]7337; AVX512DQ-NEXT: vmovdqa64 %zmm14, %zmm137338; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm9, %zmm137339; AVX512DQ-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7340; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]7341; AVX512DQ-NEXT: vmovdqa64 %zmm14, %zmm157342; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm13, %zmm157343; AVX512DQ-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7344; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]7345; AVX512DQ-NEXT: vmovdqa64 %zmm14, %zmm167346; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm15, %zmm167347; AVX512DQ-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7348; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]7349; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm26, %zmm147350; AVX512DQ-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7351; AVX512DQ-NEXT: vmovdqa64 %zmm12, %zmm47352; AVX512DQ-NEXT: vpermt2q %zmm5, %zmm9, %zmm127353; AVX512DQ-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7354; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm127355; AVX512DQ-NEXT: vpermt2q %zmm5, %zmm13, %zmm127356; AVX512DQ-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7357; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm127358; AVX512DQ-NEXT: vpermt2q %zmm5, %zmm15, %zmm127359; AVX512DQ-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7360; AVX512DQ-NEXT: vpermt2q %zmm5, %zmm26, %zmm47361; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7362; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm47363; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm9, %zmm47364; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7365; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm47366; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm13, %zmm47367; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7368; AVX512DQ-NEXT: vmovdqa64 %zmm11, %zmm47369; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm15, %zmm47370; AVX512DQ-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7371; AVX512DQ-NEXT: vpermt2q %zmm2, %zmm26, %zmm117372; AVX512DQ-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7373; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm27374; AVX512DQ-NEXT: vpermt2q %zmm1, %zmm9, %zmm27375; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7376; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm27377; AVX512DQ-NEXT: vpermt2q %zmm1, %zmm13, %zmm27378; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7379; AVX512DQ-NEXT: vmovdqa64 %zmm10, %zmm27380; AVX512DQ-NEXT: vpermt2q %zmm1, %zmm15, %zmm27381; AVX512DQ-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7382; AVX512DQ-NEXT: vpermt2q %zmm1, %zmm26, %zmm107383; AVX512DQ-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7384; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm17385; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm9, %zmm17386; AVX512DQ-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7387; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm17388; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm13, %zmm17389; AVX512DQ-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7390; AVX512DQ-NEXT: vmovdqa64 %zmm8, %zmm17391; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm15, %zmm17392; AVX512DQ-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7393; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm26, %zmm87394; AVX512DQ-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7395; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm07396; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm9, %zmm07397; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7398; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm07399; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm13, %zmm07400; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7401; AVX512DQ-NEXT: vmovdqa64 %zmm7, %zmm07402; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm15, %zmm07403; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7404; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm26, %zmm77405; AVX512DQ-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7406; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm07407; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm9, %zmm07408; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7409; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm07410; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm13, %zmm07411; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7412; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm07413; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm15, %zmm07414; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7415; AVX512DQ-NEXT: vpermt2q %zmm23, %zmm26, %zmm67416; AVX512DQ-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7417; AVX512DQ-NEXT: vmovdqa64 448(%rdx), %zmm287418; AVX512DQ-NEXT: vmovdqa64 448(%rcx), %zmm07419; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm28, %zmm97420; AVX512DQ-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7421; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm28, %zmm137422; AVX512DQ-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7423; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm28, %zmm157424; AVX512DQ-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7425; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm26, %zmm287426; AVX512DQ-NEXT: vmovdqa64 (%rdi), %zmm267427; AVX512DQ-NEXT: vmovdqa64 (%rsi), %zmm37428; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]7429; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm07430; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm7, %zmm07431; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm307432; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]7433; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm07434; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm5, %zmm07435; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7436; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]7437; AVX512DQ-NEXT: vmovdqa64 %zmm26, %zmm07438; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm2, %zmm07439; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7440; AVX512DQ-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]7441; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm22, %zmm267442; AVX512DQ-NEXT: vmovdqa64 64(%rdi), %zmm207443; AVX512DQ-NEXT: vmovdqa64 64(%rsi), %zmm37444; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm07445; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm7, %zmm07446; AVX512DQ-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7447; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm07448; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm5, %zmm07449; AVX512DQ-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill7450; AVX512DQ-NEXT: vmovdqa64 %zmm20, %zmm297451; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm2, %zmm297452; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm22, %zmm207453; AVX512DQ-NEXT: vmovdqa64 128(%rdi), %zmm187454; AVX512DQ-NEXT: vmovdqa64 128(%rsi), %zmm37455; AVX512DQ-NEXT: vmovdqa64 %zmm18, %zmm277456; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm7, %zmm277457; AVX512DQ-NEXT: vmovdqa64 %zmm18, %zmm257458; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm5, %zmm257459; AVX512DQ-NEXT: vmovdqa64 %zmm18, %zmm247460; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm2, %zmm247461; AVX512DQ-NEXT: vpermt2q %zmm3, %zmm22, %zmm187462; AVX512DQ-NEXT: vmovdqa64 192(%rdi), %zmm197463; AVX512DQ-NEXT: vmovdqa64 192(%rsi), %zmm47464; AVX512DQ-NEXT: vmovdqa64 %zmm19, %zmm237465; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm7, %zmm237466; AVX512DQ-NEXT: vmovdqa64 %zmm19, %zmm217467; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm5, %zmm217468; AVX512DQ-NEXT: vmovdqa64 %zmm19, %zmm177469; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm2, %zmm177470; AVX512DQ-NEXT: vpermt2q %zmm4, %zmm22, %zmm197471; AVX512DQ-NEXT: vmovdqa64 256(%rdi), %zmm47472; AVX512DQ-NEXT: vmovdqa64 256(%rsi), %zmm67473; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm167474; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm7, %zmm167475; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm157476; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm5, %zmm157477; AVX512DQ-NEXT: vmovdqa64 %zmm4, %zmm147478; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm2, %zmm147479; AVX512DQ-NEXT: vpermt2q %zmm6, %zmm22, %zmm47480; AVX512DQ-NEXT: vmovdqa64 320(%rdi), %zmm67481; AVX512DQ-NEXT: vmovdqa64 320(%rsi), %zmm07482; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm137483; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm7, %zmm137484; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm127485; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm5, %zmm127486; AVX512DQ-NEXT: vmovdqa64 %zmm6, %zmm117487; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm2, %zmm117488; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm22, %zmm67489; AVX512DQ-NEXT: vmovdqa64 384(%rdi), %zmm97490; AVX512DQ-NEXT: vmovdqa64 384(%rsi), %zmm07491; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm107492; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm7, %zmm107493; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm87494; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm5, %zmm87495; AVX512DQ-NEXT: vmovdqa64 %zmm9, %zmm37496; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm2, %zmm37497; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm22, %zmm97498; AVX512DQ-NEXT: vmovdqa64 448(%rdi), %zmm17499; AVX512DQ-NEXT: vmovdqa64 448(%rsi), %zmm07500; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm1, %zmm77501; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm1, %zmm57502; AVX512DQ-NEXT: vpermi2q %zmm0, %zmm1, %zmm27503; AVX512DQ-NEXT: vpermt2q %zmm0, %zmm22, %zmm17504; AVX512DQ-NEXT: movb $-52, %al7505; AVX512DQ-NEXT: kmovw %eax, %k17506; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7507; AVX512DQ-NEXT: vmovdqa64 %zmm30, %zmm227508; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}7509; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7510; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7511; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7512; AVX512DQ-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7513; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7514; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7515; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7516; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7517; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}7518; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7519; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload7520; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7521; AVX512DQ-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7522; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7523; AVX512DQ-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload7524; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7525; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7526; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}7527; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7528; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}7529; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7530; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}7531; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7532; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}7533; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7534; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}7535; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7536; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}7537; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7538; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}7539; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7540; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}7541; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7542; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}7543; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7544; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}7545; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7546; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}7547; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7548; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}7549; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7550; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}7551; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7552; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}7553; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7554; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}7555; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7556; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}7557; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7558; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}7559; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7560; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}7561; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7562; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}7563; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7564; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}7565; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7566; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}7567; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7568; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}7569; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7570; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}7571; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7572; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}7573; AVX512DQ-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7574; AVX512DQ-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}7575; AVX512DQ-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}7576; AVX512DQ-NEXT: vmovdqa64 %zmm1, 1984(%r8)7577; AVX512DQ-NEXT: vmovdqa64 %zmm2, 1920(%r8)7578; AVX512DQ-NEXT: vmovdqa64 %zmm5, 1856(%r8)7579; AVX512DQ-NEXT: vmovdqa64 %zmm7, 1792(%r8)7580; AVX512DQ-NEXT: vmovdqa64 %zmm9, 1728(%r8)7581; AVX512DQ-NEXT: vmovdqa64 %zmm3, 1664(%r8)7582; AVX512DQ-NEXT: vmovdqa64 %zmm8, 1600(%r8)7583; AVX512DQ-NEXT: vmovdqa64 %zmm10, 1536(%r8)7584; AVX512DQ-NEXT: vmovdqa64 %zmm6, 1472(%r8)7585; AVX512DQ-NEXT: vmovdqa64 %zmm11, 1408(%r8)7586; AVX512DQ-NEXT: vmovdqa64 %zmm12, 1344(%r8)7587; AVX512DQ-NEXT: vmovdqa64 %zmm13, 1280(%r8)7588; AVX512DQ-NEXT: vmovdqa64 %zmm4, 1216(%r8)7589; AVX512DQ-NEXT: vmovdqa64 %zmm14, 1152(%r8)7590; AVX512DQ-NEXT: vmovdqa64 %zmm15, 1088(%r8)7591; AVX512DQ-NEXT: vmovdqa64 %zmm16, 1024(%r8)7592; AVX512DQ-NEXT: vmovdqa64 %zmm19, 960(%r8)7593; AVX512DQ-NEXT: vmovdqa64 %zmm17, 896(%r8)7594; AVX512DQ-NEXT: vmovdqa64 %zmm21, 832(%r8)7595; AVX512DQ-NEXT: vmovdqa64 %zmm23, 768(%r8)7596; AVX512DQ-NEXT: vmovdqa64 %zmm18, 704(%r8)7597; AVX512DQ-NEXT: vmovdqa64 %zmm24, 640(%r8)7598; AVX512DQ-NEXT: vmovdqa64 %zmm25, 576(%r8)7599; AVX512DQ-NEXT: vmovdqa64 %zmm27, 512(%r8)7600; AVX512DQ-NEXT: vmovdqa64 %zmm20, 448(%r8)7601; AVX512DQ-NEXT: vmovdqa64 %zmm29, 384(%r8)7602; AVX512DQ-NEXT: vmovdqa64 %zmm30, 320(%r8)7603; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7604; AVX512DQ-NEXT: vmovaps %zmm0, 256(%r8)7605; AVX512DQ-NEXT: vmovdqa64 %zmm26, 192(%r8)7606; AVX512DQ-NEXT: vmovdqa64 %zmm31, 128(%r8)7607; AVX512DQ-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7608; AVX512DQ-NEXT: vmovaps %zmm0, 64(%r8)7609; AVX512DQ-NEXT: vmovdqa64 %zmm22, (%r8)7610; AVX512DQ-NEXT: addq $2120, %rsp # imm = 0x8487611; AVX512DQ-NEXT: vzeroupper7612; AVX512DQ-NEXT: retq7613;7614; AVX512DQ-FCP-LABEL: store_i64_stride4_vf64:7615; AVX512DQ-FCP: # %bb.0:7616; AVX512DQ-FCP-NEXT: subq $2120, %rsp # imm = 0x8487617; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rdx), %zmm67618; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdx), %zmm77619; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rdx), %zmm87620; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdx), %zmm147621; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdx), %zmm127622; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdx), %zmm117623; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdx), %zmm107624; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rcx), %zmm237625; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rcx), %zmm37626; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rcx), %zmm07627; AVX512DQ-FCP-NEXT: vmovdqa64 (%rcx), %zmm47628; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rcx), %zmm57629; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rcx), %zmm27630; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rcx), %zmm17631; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]7632; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm137633; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm9, %zmm137634; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7635; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]7636; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm157637; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm13, %zmm157638; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7639; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]7640; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, %zmm167641; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm15, %zmm167642; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7643; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]7644; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm26, %zmm147645; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7646; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, %zmm47647; AVX512DQ-FCP-NEXT: vpermt2q %zmm5, %zmm9, %zmm127648; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7649; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm127650; AVX512DQ-FCP-NEXT: vpermt2q %zmm5, %zmm13, %zmm127651; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7652; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm127653; AVX512DQ-FCP-NEXT: vpermt2q %zmm5, %zmm15, %zmm127654; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7655; AVX512DQ-FCP-NEXT: vpermt2q %zmm5, %zmm26, %zmm47656; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7657; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm47658; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm9, %zmm47659; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7660; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm47661; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm47662; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7663; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, %zmm47664; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm15, %zmm47665; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7666; AVX512DQ-FCP-NEXT: vpermt2q %zmm2, %zmm26, %zmm117667; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7668; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm27669; AVX512DQ-FCP-NEXT: vpermt2q %zmm1, %zmm9, %zmm27670; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7671; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm27672; AVX512DQ-FCP-NEXT: vpermt2q %zmm1, %zmm13, %zmm27673; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7674; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, %zmm27675; AVX512DQ-FCP-NEXT: vpermt2q %zmm1, %zmm15, %zmm27676; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7677; AVX512DQ-FCP-NEXT: vpermt2q %zmm1, %zmm26, %zmm107678; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7679; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm17680; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm9, %zmm17681; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7682; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm17683; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm13, %zmm17684; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7685; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, %zmm17686; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm15, %zmm17687; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7688; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm87689; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7690; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm07691; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm9, %zmm07692; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7693; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm07694; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm13, %zmm07695; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7696; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, %zmm07697; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm15, %zmm07698; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7699; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm26, %zmm77700; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7701; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm07702; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm9, %zmm07703; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7704; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm07705; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm13, %zmm07706; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7707; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm07708; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm07709; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7710; AVX512DQ-FCP-NEXT: vpermt2q %zmm23, %zmm26, %zmm67711; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7712; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rdx), %zmm287713; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rcx), %zmm07714; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm97715; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7716; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm137717; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7718; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm157719; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7720; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm287721; AVX512DQ-FCP-NEXT: vmovdqa64 (%rdi), %zmm267722; AVX512DQ-FCP-NEXT: vmovdqa64 (%rsi), %zmm37723; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]7724; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, %zmm07725; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm07726; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm307727; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]7728; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, %zmm07729; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm07730; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7731; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]7732; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, %zmm07733; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm07734; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7735; AVX512DQ-FCP-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]7736; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm267737; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rdi), %zmm207738; AVX512DQ-FCP-NEXT: vmovdqa64 64(%rsi), %zmm37739; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm07740; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm07741; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7742; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm07743; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm07744; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill7745; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, %zmm297746; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm297747; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm207748; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rdi), %zmm187749; AVX512DQ-FCP-NEXT: vmovdqa64 128(%rsi), %zmm37750; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, %zmm277751; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm277752; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, %zmm257753; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm257754; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, %zmm247755; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm247756; AVX512DQ-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm187757; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rdi), %zmm197758; AVX512DQ-FCP-NEXT: vmovdqa64 192(%rsi), %zmm47759; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, %zmm237760; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm7, %zmm237761; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, %zmm217762; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm5, %zmm217763; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, %zmm177764; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm2, %zmm177765; AVX512DQ-FCP-NEXT: vpermt2q %zmm4, %zmm22, %zmm197766; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rdi), %zmm47767; AVX512DQ-FCP-NEXT: vmovdqa64 256(%rsi), %zmm67768; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm167769; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm7, %zmm167770; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm157771; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm5, %zmm157772; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, %zmm147773; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm2, %zmm147774; AVX512DQ-FCP-NEXT: vpermt2q %zmm6, %zmm22, %zmm47775; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rdi), %zmm67776; AVX512DQ-FCP-NEXT: vmovdqa64 320(%rsi), %zmm07777; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm137778; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm137779; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm127780; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm127781; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, %zmm117782; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm117783; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm67784; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rdi), %zmm97785; AVX512DQ-FCP-NEXT: vmovdqa64 384(%rsi), %zmm07786; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm107787; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm107788; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm87789; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm87790; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, %zmm37791; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm37792; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm97793; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rdi), %zmm17794; AVX512DQ-FCP-NEXT: vmovdqa64 448(%rsi), %zmm07795; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm77796; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm57797; AVX512DQ-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm27798; AVX512DQ-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm17799; AVX512DQ-FCP-NEXT: movb $-52, %al7800; AVX512DQ-FCP-NEXT: kmovw %eax, %k17801; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7802; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm30, %zmm227803; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}7804; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7805; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7806; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7807; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7808; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7809; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload7810; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}7811; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7812; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}7813; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7814; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload7815; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7816; AVX512DQ-FCP-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7817; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7818; AVX512DQ-FCP-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload7819; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}7820; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7821; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}7822; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7823; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}7824; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7825; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}7826; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7827; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}7828; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7829; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}7830; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7831; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}7832; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7833; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}7834; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7835; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}7836; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7837; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}7838; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7839; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}7840; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7841; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}7842; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7843; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}7844; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7845; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}7846; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7847; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}7848; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7849; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}7850; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7851; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}7852; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7853; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}7854; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7855; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}7856; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7857; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}7858; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7859; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}7860; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7861; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}7862; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7863; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}7864; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7865; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}7866; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7867; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}7868; AVX512DQ-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7869; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}7870; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}7871; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm1, 1984(%r8)7872; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm2, 1920(%r8)7873; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm5, 1856(%r8)7874; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm7, 1792(%r8)7875; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm9, 1728(%r8)7876; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm3, 1664(%r8)7877; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm8, 1600(%r8)7878; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm10, 1536(%r8)7879; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm6, 1472(%r8)7880; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm11, 1408(%r8)7881; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm12, 1344(%r8)7882; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm13, 1280(%r8)7883; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm4, 1216(%r8)7884; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm14, 1152(%r8)7885; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm15, 1088(%r8)7886; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm16, 1024(%r8)7887; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm19, 960(%r8)7888; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm17, 896(%r8)7889; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm21, 832(%r8)7890; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm23, 768(%r8)7891; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm18, 704(%r8)7892; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm24, 640(%r8)7893; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)7894; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm27, 512(%r8)7895; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm20, 448(%r8)7896; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm29, 384(%r8)7897; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm30, 320(%r8)7898; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7899; AVX512DQ-FCP-NEXT: vmovaps %zmm0, 256(%r8)7900; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm26, 192(%r8)7901; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm31, 128(%r8)7902; AVX512DQ-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload7903; AVX512DQ-FCP-NEXT: vmovaps %zmm0, 64(%r8)7904; AVX512DQ-FCP-NEXT: vmovdqa64 %zmm22, (%r8)7905; AVX512DQ-FCP-NEXT: addq $2120, %rsp # imm = 0x8487906; AVX512DQ-FCP-NEXT: vzeroupper7907; AVX512DQ-FCP-NEXT: retq7908;7909; AVX512BW-LABEL: store_i64_stride4_vf64:7910; AVX512BW: # %bb.0:7911; AVX512BW-NEXT: subq $2120, %rsp # imm = 0x8487912; AVX512BW-NEXT: vmovdqa64 384(%rdx), %zmm67913; AVX512BW-NEXT: vmovdqa64 320(%rdx), %zmm77914; AVX512BW-NEXT: vmovdqa64 256(%rdx), %zmm87915; AVX512BW-NEXT: vmovdqa64 (%rdx), %zmm147916; AVX512BW-NEXT: vmovdqa64 64(%rdx), %zmm127917; AVX512BW-NEXT: vmovdqa64 128(%rdx), %zmm117918; AVX512BW-NEXT: vmovdqa64 192(%rdx), %zmm107919; AVX512BW-NEXT: vmovdqa64 384(%rcx), %zmm237920; AVX512BW-NEXT: vmovdqa64 320(%rcx), %zmm37921; AVX512BW-NEXT: vmovdqa64 256(%rcx), %zmm07922; AVX512BW-NEXT: vmovdqa64 (%rcx), %zmm47923; AVX512BW-NEXT: vmovdqa64 64(%rcx), %zmm57924; AVX512BW-NEXT: vmovdqa64 128(%rcx), %zmm27925; AVX512BW-NEXT: vmovdqa64 192(%rcx), %zmm17926; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]7927; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm137928; AVX512BW-NEXT: vpermt2q %zmm4, %zmm9, %zmm137929; AVX512BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7930; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]7931; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm157932; AVX512BW-NEXT: vpermt2q %zmm4, %zmm13, %zmm157933; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7934; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]7935; AVX512BW-NEXT: vmovdqa64 %zmm14, %zmm167936; AVX512BW-NEXT: vpermt2q %zmm4, %zmm15, %zmm167937; AVX512BW-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7938; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]7939; AVX512BW-NEXT: vpermt2q %zmm4, %zmm26, %zmm147940; AVX512BW-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7941; AVX512BW-NEXT: vmovdqa64 %zmm12, %zmm47942; AVX512BW-NEXT: vpermt2q %zmm5, %zmm9, %zmm127943; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7944; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm127945; AVX512BW-NEXT: vpermt2q %zmm5, %zmm13, %zmm127946; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7947; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm127948; AVX512BW-NEXT: vpermt2q %zmm5, %zmm15, %zmm127949; AVX512BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7950; AVX512BW-NEXT: vpermt2q %zmm5, %zmm26, %zmm47951; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7952; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm47953; AVX512BW-NEXT: vpermt2q %zmm2, %zmm9, %zmm47954; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7955; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm47956; AVX512BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm47957; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7958; AVX512BW-NEXT: vmovdqa64 %zmm11, %zmm47959; AVX512BW-NEXT: vpermt2q %zmm2, %zmm15, %zmm47960; AVX512BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7961; AVX512BW-NEXT: vpermt2q %zmm2, %zmm26, %zmm117962; AVX512BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7963; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm27964; AVX512BW-NEXT: vpermt2q %zmm1, %zmm9, %zmm27965; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7966; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm27967; AVX512BW-NEXT: vpermt2q %zmm1, %zmm13, %zmm27968; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7969; AVX512BW-NEXT: vmovdqa64 %zmm10, %zmm27970; AVX512BW-NEXT: vpermt2q %zmm1, %zmm15, %zmm27971; AVX512BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7972; AVX512BW-NEXT: vpermt2q %zmm1, %zmm26, %zmm107973; AVX512BW-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7974; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm17975; AVX512BW-NEXT: vpermt2q %zmm0, %zmm9, %zmm17976; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7977; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm17978; AVX512BW-NEXT: vpermt2q %zmm0, %zmm13, %zmm17979; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7980; AVX512BW-NEXT: vmovdqa64 %zmm8, %zmm17981; AVX512BW-NEXT: vpermt2q %zmm0, %zmm15, %zmm17982; AVX512BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7983; AVX512BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm87984; AVX512BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7985; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm07986; AVX512BW-NEXT: vpermt2q %zmm3, %zmm9, %zmm07987; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7988; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm07989; AVX512BW-NEXT: vpermt2q %zmm3, %zmm13, %zmm07990; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7991; AVX512BW-NEXT: vmovdqa64 %zmm7, %zmm07992; AVX512BW-NEXT: vpermt2q %zmm3, %zmm15, %zmm07993; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7994; AVX512BW-NEXT: vpermt2q %zmm3, %zmm26, %zmm77995; AVX512BW-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7996; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm07997; AVX512BW-NEXT: vpermt2q %zmm23, %zmm9, %zmm07998; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill7999; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm08000; AVX512BW-NEXT: vpermt2q %zmm23, %zmm13, %zmm08001; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8002; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm08003; AVX512BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm08004; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8005; AVX512BW-NEXT: vpermt2q %zmm23, %zmm26, %zmm68006; AVX512BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8007; AVX512BW-NEXT: vmovdqa64 448(%rdx), %zmm288008; AVX512BW-NEXT: vmovdqa64 448(%rcx), %zmm08009; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm98010; AVX512BW-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8011; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm138012; AVX512BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8013; AVX512BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm158014; AVX512BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8015; AVX512BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm288016; AVX512BW-NEXT: vmovdqa64 (%rdi), %zmm268017; AVX512BW-NEXT: vmovdqa64 (%rsi), %zmm38018; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]8019; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm08020; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm08021; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm308022; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]8023; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm08024; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm08025; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8026; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]8027; AVX512BW-NEXT: vmovdqa64 %zmm26, %zmm08028; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm08029; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8030; AVX512BW-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]8031; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm268032; AVX512BW-NEXT: vmovdqa64 64(%rdi), %zmm208033; AVX512BW-NEXT: vmovdqa64 64(%rsi), %zmm38034; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm08035; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm08036; AVX512BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8037; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm08038; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm08039; AVX512BW-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill8040; AVX512BW-NEXT: vmovdqa64 %zmm20, %zmm298041; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm298042; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm208043; AVX512BW-NEXT: vmovdqa64 128(%rdi), %zmm188044; AVX512BW-NEXT: vmovdqa64 128(%rsi), %zmm38045; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm278046; AVX512BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm278047; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm258048; AVX512BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm258049; AVX512BW-NEXT: vmovdqa64 %zmm18, %zmm248050; AVX512BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm248051; AVX512BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm188052; AVX512BW-NEXT: vmovdqa64 192(%rdi), %zmm198053; AVX512BW-NEXT: vmovdqa64 192(%rsi), %zmm48054; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm238055; AVX512BW-NEXT: vpermt2q %zmm4, %zmm7, %zmm238056; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm218057; AVX512BW-NEXT: vpermt2q %zmm4, %zmm5, %zmm218058; AVX512BW-NEXT: vmovdqa64 %zmm19, %zmm178059; AVX512BW-NEXT: vpermt2q %zmm4, %zmm2, %zmm178060; AVX512BW-NEXT: vpermt2q %zmm4, %zmm22, %zmm198061; AVX512BW-NEXT: vmovdqa64 256(%rdi), %zmm48062; AVX512BW-NEXT: vmovdqa64 256(%rsi), %zmm68063; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm168064; AVX512BW-NEXT: vpermt2q %zmm6, %zmm7, %zmm168065; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm158066; AVX512BW-NEXT: vpermt2q %zmm6, %zmm5, %zmm158067; AVX512BW-NEXT: vmovdqa64 %zmm4, %zmm148068; AVX512BW-NEXT: vpermt2q %zmm6, %zmm2, %zmm148069; AVX512BW-NEXT: vpermt2q %zmm6, %zmm22, %zmm48070; AVX512BW-NEXT: vmovdqa64 320(%rdi), %zmm68071; AVX512BW-NEXT: vmovdqa64 320(%rsi), %zmm08072; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm138073; AVX512BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm138074; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm128075; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm128076; AVX512BW-NEXT: vmovdqa64 %zmm6, %zmm118077; AVX512BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm118078; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm68079; AVX512BW-NEXT: vmovdqa64 384(%rdi), %zmm98080; AVX512BW-NEXT: vmovdqa64 384(%rsi), %zmm08081; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm108082; AVX512BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm108083; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm88084; AVX512BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm88085; AVX512BW-NEXT: vmovdqa64 %zmm9, %zmm38086; AVX512BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm38087; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm98088; AVX512BW-NEXT: vmovdqa64 448(%rdi), %zmm18089; AVX512BW-NEXT: vmovdqa64 448(%rsi), %zmm08090; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm78091; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm58092; AVX512BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm28093; AVX512BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm18094; AVX512BW-NEXT: movb $-52, %al8095; AVX512BW-NEXT: kmovd %eax, %k18096; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8097; AVX512BW-NEXT: vmovdqa64 %zmm30, %zmm228098; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}8099; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8100; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8101; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8102; AVX512BW-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8103; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8104; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8105; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8106; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8107; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}8108; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8109; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload8110; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8111; AVX512BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8112; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8113; AVX512BW-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload8114; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8115; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8116; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}8117; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8118; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}8119; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8120; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}8121; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8122; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}8123; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8124; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}8125; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8126; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}8127; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8128; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}8129; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8130; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}8131; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8132; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}8133; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8134; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}8135; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8136; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}8137; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8138; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}8139; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8140; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}8141; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8142; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}8143; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8144; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}8145; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8146; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}8147; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8148; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8149; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8150; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}8151; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8152; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}8153; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8154; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}8155; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8156; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}8157; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8158; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}8159; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8160; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}8161; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8162; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}8163; AVX512BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8164; AVX512BW-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}8165; AVX512BW-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}8166; AVX512BW-NEXT: vmovdqa64 %zmm1, 1984(%r8)8167; AVX512BW-NEXT: vmovdqa64 %zmm2, 1920(%r8)8168; AVX512BW-NEXT: vmovdqa64 %zmm5, 1856(%r8)8169; AVX512BW-NEXT: vmovdqa64 %zmm7, 1792(%r8)8170; AVX512BW-NEXT: vmovdqa64 %zmm9, 1728(%r8)8171; AVX512BW-NEXT: vmovdqa64 %zmm3, 1664(%r8)8172; AVX512BW-NEXT: vmovdqa64 %zmm8, 1600(%r8)8173; AVX512BW-NEXT: vmovdqa64 %zmm10, 1536(%r8)8174; AVX512BW-NEXT: vmovdqa64 %zmm6, 1472(%r8)8175; AVX512BW-NEXT: vmovdqa64 %zmm11, 1408(%r8)8176; AVX512BW-NEXT: vmovdqa64 %zmm12, 1344(%r8)8177; AVX512BW-NEXT: vmovdqa64 %zmm13, 1280(%r8)8178; AVX512BW-NEXT: vmovdqa64 %zmm4, 1216(%r8)8179; AVX512BW-NEXT: vmovdqa64 %zmm14, 1152(%r8)8180; AVX512BW-NEXT: vmovdqa64 %zmm15, 1088(%r8)8181; AVX512BW-NEXT: vmovdqa64 %zmm16, 1024(%r8)8182; AVX512BW-NEXT: vmovdqa64 %zmm19, 960(%r8)8183; AVX512BW-NEXT: vmovdqa64 %zmm17, 896(%r8)8184; AVX512BW-NEXT: vmovdqa64 %zmm21, 832(%r8)8185; AVX512BW-NEXT: vmovdqa64 %zmm23, 768(%r8)8186; AVX512BW-NEXT: vmovdqa64 %zmm18, 704(%r8)8187; AVX512BW-NEXT: vmovdqa64 %zmm24, 640(%r8)8188; AVX512BW-NEXT: vmovdqa64 %zmm25, 576(%r8)8189; AVX512BW-NEXT: vmovdqa64 %zmm27, 512(%r8)8190; AVX512BW-NEXT: vmovdqa64 %zmm20, 448(%r8)8191; AVX512BW-NEXT: vmovdqa64 %zmm29, 384(%r8)8192; AVX512BW-NEXT: vmovdqa64 %zmm30, 320(%r8)8193; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8194; AVX512BW-NEXT: vmovaps %zmm0, 256(%r8)8195; AVX512BW-NEXT: vmovdqa64 %zmm26, 192(%r8)8196; AVX512BW-NEXT: vmovdqa64 %zmm31, 128(%r8)8197; AVX512BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8198; AVX512BW-NEXT: vmovaps %zmm0, 64(%r8)8199; AVX512BW-NEXT: vmovdqa64 %zmm22, (%r8)8200; AVX512BW-NEXT: addq $2120, %rsp # imm = 0x8488201; AVX512BW-NEXT: vzeroupper8202; AVX512BW-NEXT: retq8203;8204; AVX512BW-FCP-LABEL: store_i64_stride4_vf64:8205; AVX512BW-FCP: # %bb.0:8206; AVX512BW-FCP-NEXT: subq $2120, %rsp # imm = 0x8488207; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdx), %zmm68208; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdx), %zmm78209; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdx), %zmm88210; AVX512BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm148211; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm128212; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm118213; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm108214; AVX512BW-FCP-NEXT: vmovdqa64 384(%rcx), %zmm238215; AVX512BW-FCP-NEXT: vmovdqa64 320(%rcx), %zmm38216; AVX512BW-FCP-NEXT: vmovdqa64 256(%rcx), %zmm08217; AVX512BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm48218; AVX512BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm58219; AVX512BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm28220; AVX512BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm18221; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]8222; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm138223; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm9, %zmm138224; AVX512BW-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8225; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]8226; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm158227; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm13, %zmm158228; AVX512BW-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8229; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]8230; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm168231; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm15, %zmm168232; AVX512BW-FCP-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8233; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]8234; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm26, %zmm148235; AVX512BW-FCP-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8236; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm48237; AVX512BW-FCP-NEXT: vpermt2q %zmm5, %zmm9, %zmm128238; AVX512BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8239; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm128240; AVX512BW-FCP-NEXT: vpermt2q %zmm5, %zmm13, %zmm128241; AVX512BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8242; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm128243; AVX512BW-FCP-NEXT: vpermt2q %zmm5, %zmm15, %zmm128244; AVX512BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8245; AVX512BW-FCP-NEXT: vpermt2q %zmm5, %zmm26, %zmm48246; AVX512BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8247; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48248; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm9, %zmm48249; AVX512BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8250; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48251; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm48252; AVX512BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8253; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48254; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm15, %zmm48255; AVX512BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8256; AVX512BW-FCP-NEXT: vpermt2q %zmm2, %zmm26, %zmm118257; AVX512BW-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8258; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28259; AVX512BW-FCP-NEXT: vpermt2q %zmm1, %zmm9, %zmm28260; AVX512BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8261; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28262; AVX512BW-FCP-NEXT: vpermt2q %zmm1, %zmm13, %zmm28263; AVX512BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8264; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28265; AVX512BW-FCP-NEXT: vpermt2q %zmm1, %zmm15, %zmm28266; AVX512BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8267; AVX512BW-FCP-NEXT: vpermt2q %zmm1, %zmm26, %zmm108268; AVX512BW-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8269; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18270; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm9, %zmm18271; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8272; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18273; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm13, %zmm18274; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8275; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18276; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm15, %zmm18277; AVX512BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8278; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm88279; AVX512BW-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8280; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08281; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm9, %zmm08282; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8283; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08284; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm13, %zmm08285; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8286; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08287; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm15, %zmm08288; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8289; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm26, %zmm78290; AVX512BW-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8291; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08292; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm9, %zmm08293; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8294; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08295; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm13, %zmm08296; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8297; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08298; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm08299; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8300; AVX512BW-FCP-NEXT: vpermt2q %zmm23, %zmm26, %zmm68301; AVX512BW-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8302; AVX512BW-FCP-NEXT: vmovdqa64 448(%rdx), %zmm288303; AVX512BW-FCP-NEXT: vmovdqa64 448(%rcx), %zmm08304; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm98305; AVX512BW-FCP-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8306; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm138307; AVX512BW-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8308; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm158309; AVX512BW-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8310; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm288311; AVX512BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm268312; AVX512BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm38313; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]8314; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08315; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm08316; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm308317; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]8318; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08319; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm08320; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8321; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]8322; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08323; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm08324; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8325; AVX512BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]8326; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm268327; AVX512BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm208328; AVX512BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm38329; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm08330; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm08331; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8332; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm08333; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm08334; AVX512BW-FCP-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill8335; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm298336; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm298337; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm208338; AVX512BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm188339; AVX512BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm38340; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm278341; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm278342; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm258343; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm258344; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm248345; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm248346; AVX512BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm188347; AVX512BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm198348; AVX512BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm48349; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm238350; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm7, %zmm238351; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm218352; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm5, %zmm218353; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm178354; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm2, %zmm178355; AVX512BW-FCP-NEXT: vpermt2q %zmm4, %zmm22, %zmm198356; AVX512BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm48357; AVX512BW-FCP-NEXT: vmovdqa64 256(%rsi), %zmm68358; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm168359; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm7, %zmm168360; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm158361; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm5, %zmm158362; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm148363; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm2, %zmm148364; AVX512BW-FCP-NEXT: vpermt2q %zmm6, %zmm22, %zmm48365; AVX512BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm68366; AVX512BW-FCP-NEXT: vmovdqa64 320(%rsi), %zmm08367; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm138368; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm138369; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm128370; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm128371; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm118372; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm118373; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm68374; AVX512BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm98375; AVX512BW-FCP-NEXT: vmovdqa64 384(%rsi), %zmm08376; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm108377; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm108378; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm88379; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm88380; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm38381; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm38382; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm98383; AVX512BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm18384; AVX512BW-FCP-NEXT: vmovdqa64 448(%rsi), %zmm08385; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm78386; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm58387; AVX512BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm28388; AVX512BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm18389; AVX512BW-FCP-NEXT: movb $-52, %al8390; AVX512BW-FCP-NEXT: kmovd %eax, %k18391; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8392; AVX512BW-FCP-NEXT: vmovdqa64 %zmm30, %zmm228393; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}8394; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8395; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8396; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8397; AVX512BW-FCP-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8398; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8399; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8400; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8401; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8402; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}8403; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8404; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload8405; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8406; AVX512BW-FCP-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8407; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8408; AVX512BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload8409; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8410; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8411; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}8412; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8413; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}8414; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8415; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}8416; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8417; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}8418; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8419; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}8420; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8421; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}8422; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8423; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}8424; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8425; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}8426; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8427; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}8428; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8429; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}8430; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8431; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}8432; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8433; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}8434; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8435; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}8436; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8437; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}8438; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8439; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}8440; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8441; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}8442; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8443; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8444; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8445; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}8446; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8447; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}8448; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8449; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}8450; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8451; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}8452; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8453; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}8454; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8455; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}8456; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8457; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}8458; AVX512BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8459; AVX512BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}8460; AVX512BW-FCP-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}8461; AVX512BW-FCP-NEXT: vmovdqa64 %zmm1, 1984(%r8)8462; AVX512BW-FCP-NEXT: vmovdqa64 %zmm2, 1920(%r8)8463; AVX512BW-FCP-NEXT: vmovdqa64 %zmm5, 1856(%r8)8464; AVX512BW-FCP-NEXT: vmovdqa64 %zmm7, 1792(%r8)8465; AVX512BW-FCP-NEXT: vmovdqa64 %zmm9, 1728(%r8)8466; AVX512BW-FCP-NEXT: vmovdqa64 %zmm3, 1664(%r8)8467; AVX512BW-FCP-NEXT: vmovdqa64 %zmm8, 1600(%r8)8468; AVX512BW-FCP-NEXT: vmovdqa64 %zmm10, 1536(%r8)8469; AVX512BW-FCP-NEXT: vmovdqa64 %zmm6, 1472(%r8)8470; AVX512BW-FCP-NEXT: vmovdqa64 %zmm11, 1408(%r8)8471; AVX512BW-FCP-NEXT: vmovdqa64 %zmm12, 1344(%r8)8472; AVX512BW-FCP-NEXT: vmovdqa64 %zmm13, 1280(%r8)8473; AVX512BW-FCP-NEXT: vmovdqa64 %zmm4, 1216(%r8)8474; AVX512BW-FCP-NEXT: vmovdqa64 %zmm14, 1152(%r8)8475; AVX512BW-FCP-NEXT: vmovdqa64 %zmm15, 1088(%r8)8476; AVX512BW-FCP-NEXT: vmovdqa64 %zmm16, 1024(%r8)8477; AVX512BW-FCP-NEXT: vmovdqa64 %zmm19, 960(%r8)8478; AVX512BW-FCP-NEXT: vmovdqa64 %zmm17, 896(%r8)8479; AVX512BW-FCP-NEXT: vmovdqa64 %zmm21, 832(%r8)8480; AVX512BW-FCP-NEXT: vmovdqa64 %zmm23, 768(%r8)8481; AVX512BW-FCP-NEXT: vmovdqa64 %zmm18, 704(%r8)8482; AVX512BW-FCP-NEXT: vmovdqa64 %zmm24, 640(%r8)8483; AVX512BW-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)8484; AVX512BW-FCP-NEXT: vmovdqa64 %zmm27, 512(%r8)8485; AVX512BW-FCP-NEXT: vmovdqa64 %zmm20, 448(%r8)8486; AVX512BW-FCP-NEXT: vmovdqa64 %zmm29, 384(%r8)8487; AVX512BW-FCP-NEXT: vmovdqa64 %zmm30, 320(%r8)8488; AVX512BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8489; AVX512BW-FCP-NEXT: vmovaps %zmm0, 256(%r8)8490; AVX512BW-FCP-NEXT: vmovdqa64 %zmm26, 192(%r8)8491; AVX512BW-FCP-NEXT: vmovdqa64 %zmm31, 128(%r8)8492; AVX512BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8493; AVX512BW-FCP-NEXT: vmovaps %zmm0, 64(%r8)8494; AVX512BW-FCP-NEXT: vmovdqa64 %zmm22, (%r8)8495; AVX512BW-FCP-NEXT: addq $2120, %rsp # imm = 0x8488496; AVX512BW-FCP-NEXT: vzeroupper8497; AVX512BW-FCP-NEXT: retq8498;8499; AVX512DQ-BW-LABEL: store_i64_stride4_vf64:8500; AVX512DQ-BW: # %bb.0:8501; AVX512DQ-BW-NEXT: subq $2120, %rsp # imm = 0x8488502; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdx), %zmm68503; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdx), %zmm78504; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdx), %zmm88505; AVX512DQ-BW-NEXT: vmovdqa64 (%rdx), %zmm148506; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdx), %zmm128507; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdx), %zmm118508; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdx), %zmm108509; AVX512DQ-BW-NEXT: vmovdqa64 384(%rcx), %zmm238510; AVX512DQ-BW-NEXT: vmovdqa64 320(%rcx), %zmm38511; AVX512DQ-BW-NEXT: vmovdqa64 256(%rcx), %zmm08512; AVX512DQ-BW-NEXT: vmovdqa64 (%rcx), %zmm48513; AVX512DQ-BW-NEXT: vmovdqa64 64(%rcx), %zmm58514; AVX512DQ-BW-NEXT: vmovdqa64 128(%rcx), %zmm28515; AVX512DQ-BW-NEXT: vmovdqa64 192(%rcx), %zmm18516; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]8517; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, %zmm138518; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm9, %zmm138519; AVX512DQ-BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8520; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]8521; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, %zmm158522; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm13, %zmm158523; AVX512DQ-BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8524; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]8525; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, %zmm168526; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm15, %zmm168527; AVX512DQ-BW-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8528; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]8529; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm26, %zmm148530; AVX512DQ-BW-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8531; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, %zmm48532; AVX512DQ-BW-NEXT: vpermt2q %zmm5, %zmm9, %zmm128533; AVX512DQ-BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8534; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm128535; AVX512DQ-BW-NEXT: vpermt2q %zmm5, %zmm13, %zmm128536; AVX512DQ-BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8537; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm128538; AVX512DQ-BW-NEXT: vpermt2q %zmm5, %zmm15, %zmm128539; AVX512DQ-BW-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8540; AVX512DQ-BW-NEXT: vpermt2q %zmm5, %zmm26, %zmm48541; AVX512DQ-BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8542; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm48543; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm9, %zmm48544; AVX512DQ-BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8545; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm48546; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm13, %zmm48547; AVX512DQ-BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8548; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, %zmm48549; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm15, %zmm48550; AVX512DQ-BW-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8551; AVX512DQ-BW-NEXT: vpermt2q %zmm2, %zmm26, %zmm118552; AVX512DQ-BW-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8553; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm28554; AVX512DQ-BW-NEXT: vpermt2q %zmm1, %zmm9, %zmm28555; AVX512DQ-BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8556; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm28557; AVX512DQ-BW-NEXT: vpermt2q %zmm1, %zmm13, %zmm28558; AVX512DQ-BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8559; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, %zmm28560; AVX512DQ-BW-NEXT: vpermt2q %zmm1, %zmm15, %zmm28561; AVX512DQ-BW-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8562; AVX512DQ-BW-NEXT: vpermt2q %zmm1, %zmm26, %zmm108563; AVX512DQ-BW-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8564; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm18565; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm9, %zmm18566; AVX512DQ-BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8567; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm18568; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm13, %zmm18569; AVX512DQ-BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8570; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, %zmm18571; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm15, %zmm18572; AVX512DQ-BW-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8573; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm88574; AVX512DQ-BW-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8575; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm08576; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm9, %zmm08577; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8578; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm08579; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm13, %zmm08580; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8581; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, %zmm08582; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm15, %zmm08583; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8584; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm26, %zmm78585; AVX512DQ-BW-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8586; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm08587; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm9, %zmm08588; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8589; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm08590; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm13, %zmm08591; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8592; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm08593; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm15, %zmm08594; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8595; AVX512DQ-BW-NEXT: vpermt2q %zmm23, %zmm26, %zmm68596; AVX512DQ-BW-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8597; AVX512DQ-BW-NEXT: vmovdqa64 448(%rdx), %zmm288598; AVX512DQ-BW-NEXT: vmovdqa64 448(%rcx), %zmm08599; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm98600; AVX512DQ-BW-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8601; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm138602; AVX512DQ-BW-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8603; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm28, %zmm158604; AVX512DQ-BW-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8605; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm26, %zmm288606; AVX512DQ-BW-NEXT: vmovdqa64 (%rdi), %zmm268607; AVX512DQ-BW-NEXT: vmovdqa64 (%rsi), %zmm38608; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]8609; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm08610; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm08611; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm308612; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]8613; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm08614; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm08615; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8616; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]8617; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, %zmm08618; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm08619; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8620; AVX512DQ-BW-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]8621; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm268622; AVX512DQ-BW-NEXT: vmovdqa64 64(%rdi), %zmm208623; AVX512DQ-BW-NEXT: vmovdqa64 64(%rsi), %zmm38624; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm08625; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm08626; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8627; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm08628; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm08629; AVX512DQ-BW-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill8630; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, %zmm298631; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm298632; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm208633; AVX512DQ-BW-NEXT: vmovdqa64 128(%rdi), %zmm188634; AVX512DQ-BW-NEXT: vmovdqa64 128(%rsi), %zmm38635; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, %zmm278636; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm7, %zmm278637; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, %zmm258638; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm5, %zmm258639; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, %zmm248640; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm2, %zmm248641; AVX512DQ-BW-NEXT: vpermt2q %zmm3, %zmm22, %zmm188642; AVX512DQ-BW-NEXT: vmovdqa64 192(%rdi), %zmm198643; AVX512DQ-BW-NEXT: vmovdqa64 192(%rsi), %zmm48644; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, %zmm238645; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm7, %zmm238646; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, %zmm218647; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm5, %zmm218648; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, %zmm178649; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm2, %zmm178650; AVX512DQ-BW-NEXT: vpermt2q %zmm4, %zmm22, %zmm198651; AVX512DQ-BW-NEXT: vmovdqa64 256(%rdi), %zmm48652; AVX512DQ-BW-NEXT: vmovdqa64 256(%rsi), %zmm68653; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm168654; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm7, %zmm168655; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm158656; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm5, %zmm158657; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, %zmm148658; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm2, %zmm148659; AVX512DQ-BW-NEXT: vpermt2q %zmm6, %zmm22, %zmm48660; AVX512DQ-BW-NEXT: vmovdqa64 320(%rdi), %zmm68661; AVX512DQ-BW-NEXT: vmovdqa64 320(%rsi), %zmm08662; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm138663; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm138664; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm128665; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm128666; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, %zmm118667; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm118668; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm68669; AVX512DQ-BW-NEXT: vmovdqa64 384(%rdi), %zmm98670; AVX512DQ-BW-NEXT: vmovdqa64 384(%rsi), %zmm08671; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm108672; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm7, %zmm108673; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm88674; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm5, %zmm88675; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, %zmm38676; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm2, %zmm38677; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm98678; AVX512DQ-BW-NEXT: vmovdqa64 448(%rdi), %zmm18679; AVX512DQ-BW-NEXT: vmovdqa64 448(%rsi), %zmm08680; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm78681; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm58682; AVX512DQ-BW-NEXT: vpermi2q %zmm0, %zmm1, %zmm28683; AVX512DQ-BW-NEXT: vpermt2q %zmm0, %zmm22, %zmm18684; AVX512DQ-BW-NEXT: movb $-52, %al8685; AVX512DQ-BW-NEXT: kmovd %eax, %k18686; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8687; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, %zmm228688; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}8689; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8690; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8691; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8692; AVX512DQ-BW-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8693; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8694; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8695; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8696; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8697; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}8698; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8699; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload8700; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8701; AVX512DQ-BW-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8702; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8703; AVX512DQ-BW-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload8704; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8705; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8706; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}8707; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8708; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}8709; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8710; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}8711; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8712; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}8713; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8714; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}8715; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8716; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}8717; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8718; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}8719; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8720; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}8721; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8722; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}8723; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8724; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}8725; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8726; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}8727; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8728; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}8729; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8730; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}8731; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8732; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}8733; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8734; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}8735; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8736; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}8737; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8738; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}8739; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8740; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}8741; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8742; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}8743; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8744; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}8745; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8746; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}8747; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8748; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}8749; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8750; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}8751; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8752; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}8753; AVX512DQ-BW-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8754; AVX512DQ-BW-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}8755; AVX512DQ-BW-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}8756; AVX512DQ-BW-NEXT: vmovdqa64 %zmm1, 1984(%r8)8757; AVX512DQ-BW-NEXT: vmovdqa64 %zmm2, 1920(%r8)8758; AVX512DQ-BW-NEXT: vmovdqa64 %zmm5, 1856(%r8)8759; AVX512DQ-BW-NEXT: vmovdqa64 %zmm7, 1792(%r8)8760; AVX512DQ-BW-NEXT: vmovdqa64 %zmm9, 1728(%r8)8761; AVX512DQ-BW-NEXT: vmovdqa64 %zmm3, 1664(%r8)8762; AVX512DQ-BW-NEXT: vmovdqa64 %zmm8, 1600(%r8)8763; AVX512DQ-BW-NEXT: vmovdqa64 %zmm10, 1536(%r8)8764; AVX512DQ-BW-NEXT: vmovdqa64 %zmm6, 1472(%r8)8765; AVX512DQ-BW-NEXT: vmovdqa64 %zmm11, 1408(%r8)8766; AVX512DQ-BW-NEXT: vmovdqa64 %zmm12, 1344(%r8)8767; AVX512DQ-BW-NEXT: vmovdqa64 %zmm13, 1280(%r8)8768; AVX512DQ-BW-NEXT: vmovdqa64 %zmm4, 1216(%r8)8769; AVX512DQ-BW-NEXT: vmovdqa64 %zmm14, 1152(%r8)8770; AVX512DQ-BW-NEXT: vmovdqa64 %zmm15, 1088(%r8)8771; AVX512DQ-BW-NEXT: vmovdqa64 %zmm16, 1024(%r8)8772; AVX512DQ-BW-NEXT: vmovdqa64 %zmm19, 960(%r8)8773; AVX512DQ-BW-NEXT: vmovdqa64 %zmm17, 896(%r8)8774; AVX512DQ-BW-NEXT: vmovdqa64 %zmm21, 832(%r8)8775; AVX512DQ-BW-NEXT: vmovdqa64 %zmm23, 768(%r8)8776; AVX512DQ-BW-NEXT: vmovdqa64 %zmm18, 704(%r8)8777; AVX512DQ-BW-NEXT: vmovdqa64 %zmm24, 640(%r8)8778; AVX512DQ-BW-NEXT: vmovdqa64 %zmm25, 576(%r8)8779; AVX512DQ-BW-NEXT: vmovdqa64 %zmm27, 512(%r8)8780; AVX512DQ-BW-NEXT: vmovdqa64 %zmm20, 448(%r8)8781; AVX512DQ-BW-NEXT: vmovdqa64 %zmm29, 384(%r8)8782; AVX512DQ-BW-NEXT: vmovdqa64 %zmm30, 320(%r8)8783; AVX512DQ-BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8784; AVX512DQ-BW-NEXT: vmovaps %zmm0, 256(%r8)8785; AVX512DQ-BW-NEXT: vmovdqa64 %zmm26, 192(%r8)8786; AVX512DQ-BW-NEXT: vmovdqa64 %zmm31, 128(%r8)8787; AVX512DQ-BW-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8788; AVX512DQ-BW-NEXT: vmovaps %zmm0, 64(%r8)8789; AVX512DQ-BW-NEXT: vmovdqa64 %zmm22, (%r8)8790; AVX512DQ-BW-NEXT: addq $2120, %rsp # imm = 0x8488791; AVX512DQ-BW-NEXT: vzeroupper8792; AVX512DQ-BW-NEXT: retq8793;8794; AVX512DQ-BW-FCP-LABEL: store_i64_stride4_vf64:8795; AVX512DQ-BW-FCP: # %bb.0:8796; AVX512DQ-BW-FCP-NEXT: subq $2120, %rsp # imm = 0x8488797; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdx), %zmm68798; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdx), %zmm78799; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdx), %zmm88800; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdx), %zmm148801; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdx), %zmm128802; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdx), %zmm118803; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdx), %zmm108804; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rcx), %zmm238805; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rcx), %zmm38806; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rcx), %zmm08807; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rcx), %zmm48808; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rcx), %zmm58809; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rcx), %zmm28810; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rcx), %zmm18811; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm9 = [0,0,0,8,0,0,1,9]8812; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm138813; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm9, %zmm138814; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8815; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,3,11]8816; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm158817; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm13, %zmm158818; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8819; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm15 = [0,0,4,12,0,0,5,13]8820; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, %zmm168821; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm15, %zmm168822; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8823; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm26 = [0,0,6,14,0,0,7,15]8824; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm26, %zmm148825; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8826; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, %zmm48827; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm5, %zmm9, %zmm128828; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8829; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm128830; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm5, %zmm13, %zmm128831; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8832; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm128833; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm5, %zmm15, %zmm128834; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8835; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm5, %zmm26, %zmm48836; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8837; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48838; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm9, %zmm48839; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8840; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48841; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm13, %zmm48842; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8843; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, %zmm48844; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm15, %zmm48845; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8846; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm2, %zmm26, %zmm118847; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8848; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28849; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm1, %zmm9, %zmm28850; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8851; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28852; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm1, %zmm13, %zmm28853; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8854; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, %zmm28855; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm1, %zmm15, %zmm28856; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8857; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm1, %zmm26, %zmm108858; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8859; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18860; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm9, %zmm18861; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8862; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18863; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm13, %zmm18864; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8865; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, %zmm18866; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm15, %zmm18867; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8868; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm88869; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8870; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08871; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm9, %zmm08872; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8873; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08874; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm13, %zmm08875; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8876; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, %zmm08877; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm15, %zmm08878; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8879; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm26, %zmm78880; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8881; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08882; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm9, %zmm08883; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8884; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08885; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm13, %zmm08886; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8887; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm08888; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm15, %zmm08889; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8890; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm23, %zmm26, %zmm68891; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8892; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rdx), %zmm288893; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rcx), %zmm08894; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm98895; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8896; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm138897; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8898; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm28, %zmm158899; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8900; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm26, %zmm288901; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rdi), %zmm268902; AVX512DQ-BW-FCP-NEXT: vmovdqa64 (%rsi), %zmm38903; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,1,9,0,0]8904; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08905; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm08906; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm308907; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm5 = [2,10,0,0,3,11,0,0]8908; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08909; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm08910; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8911; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm2 = [4,12,0,0,5,13,0,0]8912; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, %zmm08913; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm08914; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8915; AVX512DQ-BW-FCP-NEXT: vpmovsxbq {{.*#+}} zmm22 = [6,14,0,0,7,15,0,0]8916; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm268917; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rdi), %zmm208918; AVX512DQ-BW-FCP-NEXT: vmovdqa64 64(%rsi), %zmm38919; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm08920; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm08921; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8922; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm08923; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm08924; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm0, (%rsp) # 64-byte Spill8925; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, %zmm298926; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm298927; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm208928; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rdi), %zmm188929; AVX512DQ-BW-FCP-NEXT: vmovdqa64 128(%rsi), %zmm38930; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm278931; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm7, %zmm278932; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm258933; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm5, %zmm258934; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, %zmm248935; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm2, %zmm248936; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm3, %zmm22, %zmm188937; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rdi), %zmm198938; AVX512DQ-BW-FCP-NEXT: vmovdqa64 192(%rsi), %zmm48939; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm238940; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm7, %zmm238941; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm218942; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm5, %zmm218943; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, %zmm178944; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm2, %zmm178945; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm4, %zmm22, %zmm198946; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rdi), %zmm48947; AVX512DQ-BW-FCP-NEXT: vmovdqa64 256(%rsi), %zmm68948; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm168949; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm7, %zmm168950; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm158951; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm5, %zmm158952; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, %zmm148953; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm2, %zmm148954; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm6, %zmm22, %zmm48955; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rdi), %zmm68956; AVX512DQ-BW-FCP-NEXT: vmovdqa64 320(%rsi), %zmm08957; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm138958; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm138959; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm128960; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm128961; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, %zmm118962; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm118963; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm68964; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rdi), %zmm98965; AVX512DQ-BW-FCP-NEXT: vmovdqa64 384(%rsi), %zmm08966; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm108967; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm7, %zmm108968; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm88969; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm5, %zmm88970; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, %zmm38971; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm2, %zmm38972; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm98973; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rdi), %zmm18974; AVX512DQ-BW-FCP-NEXT: vmovdqa64 448(%rsi), %zmm08975; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm78976; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm58977; AVX512DQ-BW-FCP-NEXT: vpermi2q %zmm0, %zmm1, %zmm28978; AVX512DQ-BW-FCP-NEXT: vpermt2q %zmm0, %zmm22, %zmm18979; AVX512DQ-BW-FCP-NEXT: movb $-52, %al8980; AVX512DQ-BW-FCP-NEXT: kmovd %eax, %k18981; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8982; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm30, %zmm228983; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm22 {%k1}8984; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8985; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8986; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8987; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8988; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8989; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm31 # 64-byte Reload8990; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm31 {%k1}8991; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8992; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm26 {%k1}8993; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8994; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload8995; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}8996; AVX512DQ-BW-FCP-NEXT: vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill8997; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload8998; AVX512DQ-BW-FCP-NEXT: vmovdqu64 (%rsp), %zmm30 # 64-byte Reload8999; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm30 {%k1}9000; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9001; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm29 {%k1}9002; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9003; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm20 {%k1}9004; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9005; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm27 {%k1}9006; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9007; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm25 {%k1}9008; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9009; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm24 {%k1}9010; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9011; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm18 {%k1}9012; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9013; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm23 {%k1}9014; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9015; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm21 {%k1}9016; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9017; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm17 {%k1}9018; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9019; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm19 {%k1}9020; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9021; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm16 {%k1}9022; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9023; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm15 {%k1}9024; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9025; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm14 {%k1}9026; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9027; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm4 {%k1}9028; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9029; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm13 {%k1}9030; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9031; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm12 {%k1}9032; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9033; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm11 {%k1}9034; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9035; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm6 {%k1}9036; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9037; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm10 {%k1}9038; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9039; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm8 {%k1}9040; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9041; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm3 {%k1}9042; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9043; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm9 {%k1}9044; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9045; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm7 {%k1}9046; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9047; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm5 {%k1}9048; AVX512DQ-BW-FCP-NEXT: vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9049; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm0, %zmm2 {%k1}9050; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm28, %zmm1 {%k1}9051; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm1, 1984(%r8)9052; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm2, 1920(%r8)9053; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm5, 1856(%r8)9054; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm7, 1792(%r8)9055; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm9, 1728(%r8)9056; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm3, 1664(%r8)9057; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm8, 1600(%r8)9058; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm10, 1536(%r8)9059; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm6, 1472(%r8)9060; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm11, 1408(%r8)9061; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm12, 1344(%r8)9062; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm13, 1280(%r8)9063; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm4, 1216(%r8)9064; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm14, 1152(%r8)9065; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm15, 1088(%r8)9066; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm16, 1024(%r8)9067; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm19, 960(%r8)9068; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm17, 896(%r8)9069; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm21, 832(%r8)9070; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm23, 768(%r8)9071; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm18, 704(%r8)9072; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm24, 640(%r8)9073; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm25, 576(%r8)9074; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm27, 512(%r8)9075; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm20, 448(%r8)9076; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm29, 384(%r8)9077; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm30, 320(%r8)9078; AVX512DQ-BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9079; AVX512DQ-BW-FCP-NEXT: vmovaps %zmm0, 256(%r8)9080; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm26, 192(%r8)9081; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm31, 128(%r8)9082; AVX512DQ-BW-FCP-NEXT: vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload9083; AVX512DQ-BW-FCP-NEXT: vmovaps %zmm0, 64(%r8)9084; AVX512DQ-BW-FCP-NEXT: vmovdqa64 %zmm22, (%r8)9085; AVX512DQ-BW-FCP-NEXT: addq $2120, %rsp # imm = 0x8489086; AVX512DQ-BW-FCP-NEXT: vzeroupper9087; AVX512DQ-BW-FCP-NEXT: retq9088 %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 649089 %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 649090 %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 649091 %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 649092 %1 = shufflevector <64 x i64> %in.vec0, <64 x i64> %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>9093 %2 = shufflevector <64 x i64> %in.vec2, <64 x i64> %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>9094 %3 = shufflevector <128 x i64> %1, <128 x i64> %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>9095 %interleaved.vec = shufflevector <256 x i64> %3, <256 x i64> poison, <256 x i32> <i32 0, i32 64, i32 128, i32 192, i32 1, i32 65, i32 129, i32 193, i32 2, i32 66, i32 130, i32 194, i32 3, i32 67, i32 131, i32 195, i32 4, i32 68, i32 132, i32 196, i32 5, i32 69, i32 133, i32 197, i32 6, i32 70, i32 134, i32 198, i32 7, i32 71, i32 135, i32 199, i32 8, i32 72, i32 136, i32 200, i32 9, i32 73, i32 137, i32 201, i32 10, i32 74, i32 138, i32 202, i32 11, i32 75, i32 139, i32 203, i32 12, i32 76, i32 140, i32 204, i32 13, i32 77, i32 141, i32 205, i32 14, i32 78, i32 142, i32 206, i32 15, i32 79, i32 143, i32 207, i32 16, i32 80, i32 144, i32 208, i32 17, i32 81, i32 145, i32 209, i32 18, i32 82, i32 146, i32 210, i32 19, i32 83, i32 147, i32 211, i32 20, i32 84, i32 148, i32 212, i32 21, i32 85, i32 149, i32 213, i32 22, i32 86, i32 150, i32 214, i32 23, i32 87, i32 151, i32 215, i32 24, i32 88, i32 152, i32 216, i32 25, i32 89, i32 153, i32 217, i32 26, i32 90, i32 154, i32 218, i32 27, i32 91, i32 155, i32 219, i32 28, i32 92, i32 156, i32 220, i32 29, i32 93, i32 157, i32 221, i32 30, i32 94, i32 158, i32 222, i32 31, i32 95, i32 159, i32 223, i32 32, i32 96, i32 160, i32 224, i32 33, i32 97, i32 161, i32 225, i32 34, i32 98, i32 162, i32 226, i32 35, i32 99, i32 163, i32 227, i32 36, i32 100, i32 164, i32 228, i32 37, i32 101, i32 165, i32 229, i32 38, i32 102, i32 166, i32 230, i32 39, i32 103, i32 167, i32 231, i32 40, i32 104, i32 168, i32 232, i32 41, i32 105, i32 169, i32 233, i32 42, i32 106, i32 170, i32 234, i32 43, i32 107, i32 171, i32 235, i32 44, i32 108, i32 172, i32 236, i32 45, i32 109, i32 173, i32 237, i32 46, i32 110, i32 174, i32 238, i32 47, i32 111, i32 175, i32 239, i32 48, i32 112, i32 176, i32 240, i32 49, i32 113, i32 177, i32 241, i32 50, i32 114, i32 178, i32 242, i32 51, i32 115, i32 179, i32 243, i32 52, i32 116, i32 180, i32 244, i32 53, i32 117, i32 181, i32 245, i32 54, i32 118, i32 182, i32 246, i32 55, i32 119, i32 183, i32 247, i32 56, i32 120, i32 184, i32 248, i32 57, i32 121, i32 185, i32 249, i32 58, i32 122, i32 186, i32 250, i32 59, i32 123, i32 187, i32 251, i32 60, i32 124, i32 188, i32 252, i32 61, i32 125, i32 189, i32 253, i32 62, i32 126, i32 190, i32 254, i32 63, i32 127, i32 191, i32 255>9096 store <256 x i64> %interleaved.vec, ptr %out.vec, align 649097 ret void9098}9099