brintos

brintos / llvm-project-archived public Read only

0
0
Text · 230.4 KiB · 8af9594 Raw
4098 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE3; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX4; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX25; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FP6; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FCP7; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX5128; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512-FCP9; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ10; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-FCP11; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512BW12; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512BW-FCP13; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512DQ-BW14; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-BW-FCP15 16; These patterns are produced by LoopVectorizer for interleaved loads.17 18define void @load_i32_stride3_vf2(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {19; SSE-LABEL: load_i32_stride3_vf2:20; SSE:       # %bb.0:21; SSE-NEXT:    movdqa (%rdi), %xmm022; SSE-NEXT:    movdqa 16(%rdi), %xmm123; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[0,3,2,3]24; SSE-NEXT:    movq %xmm2, (%rsi)25; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm0[1,1,1,1]26; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]27; SSE-NEXT:    movq %xmm2, (%rdx)28; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]29; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[2,3,2,3]30; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]31; SSE-NEXT:    movq %xmm0, (%rcx)32; SSE-NEXT:    retq33;34; AVX-LABEL: load_i32_stride3_vf2:35; AVX:       # %bb.0:36; AVX-NEXT:    vmovaps (%rdi), %xmm037; AVX-NEXT:    vmovaps 16(%rdi), %xmm138; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]39; AVX-NEXT:    vmovlps %xmm2, (%rsi)40; AVX-NEXT:    vblendps {{.*#+}} xmm2 = xmm1[0],xmm0[1],xmm1[2,3]41; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[1,0,2,3]42; AVX-NEXT:    vmovlps %xmm2, (%rdx)43; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]44; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]45; AVX-NEXT:    vmovlps %xmm0, (%rcx)46; AVX-NEXT:    retq47;48; AVX2-LABEL: load_i32_stride3_vf2:49; AVX2:       # %bb.0:50; AVX2-NEXT:    vmovaps (%rdi), %xmm051; AVX2-NEXT:    vmovaps 16(%rdi), %xmm152; AVX2-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]53; AVX2-NEXT:    vbroadcastss 8(%rdi), %xmm354; AVX2-NEXT:    vmovlps %xmm2, (%rsi)55; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]56; AVX2-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]57; AVX2-NEXT:    vmovlps %xmm0, (%rdx)58; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]59; AVX2-NEXT:    vmovlps %xmm0, (%rcx)60; AVX2-NEXT:    retq61;62; AVX2-FP-LABEL: load_i32_stride3_vf2:63; AVX2-FP:       # %bb.0:64; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm065; AVX2-FP-NEXT:    vmovaps 16(%rdi), %xmm166; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]67; AVX2-FP-NEXT:    vbroadcastss 8(%rdi), %xmm368; AVX2-FP-NEXT:    vmovlps %xmm2, (%rsi)69; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]70; AVX2-FP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]71; AVX2-FP-NEXT:    vmovlps %xmm0, (%rdx)72; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]73; AVX2-FP-NEXT:    vmovlps %xmm0, (%rcx)74; AVX2-FP-NEXT:    retq75;76; AVX2-FCP-LABEL: load_i32_stride3_vf2:77; AVX2-FCP:       # %bb.0:78; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm079; AVX2-FCP-NEXT:    vmovaps 16(%rdi), %xmm180; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]81; AVX2-FCP-NEXT:    vbroadcastss 8(%rdi), %xmm382; AVX2-FCP-NEXT:    vmovlps %xmm2, (%rsi)83; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]84; AVX2-FCP-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]85; AVX2-FCP-NEXT:    vmovlps %xmm0, (%rdx)86; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]87; AVX2-FCP-NEXT:    vmovlps %xmm0, (%rcx)88; AVX2-FCP-NEXT:    retq89;90; AVX512-LABEL: load_i32_stride3_vf2:91; AVX512:       # %bb.0:92; AVX512-NEXT:    vmovaps (%rdi), %xmm093; AVX512-NEXT:    vmovaps 16(%rdi), %xmm194; AVX512-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]95; AVX512-NEXT:    vbroadcastss 8(%rdi), %xmm396; AVX512-NEXT:    vmovlps %xmm2, (%rsi)97; AVX512-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]98; AVX512-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]99; AVX512-NEXT:    vmovlps %xmm0, (%rdx)100; AVX512-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]101; AVX512-NEXT:    vmovlps %xmm0, (%rcx)102; AVX512-NEXT:    retq103;104; AVX512-FCP-LABEL: load_i32_stride3_vf2:105; AVX512-FCP:       # %bb.0:106; AVX512-FCP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[0,3,2,3]107; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm1 = [1,4,6,7]108; AVX512-FCP-NEXT:    vpermps (%rdi), %ymm1, %ymm1109; AVX512-FCP-NEXT:    vbroadcastss 8(%rdi), %xmm2110; AVX512-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],mem[1],xmm2[2,3]111; AVX512-FCP-NEXT:    vmovlps %xmm0, (%rsi)112; AVX512-FCP-NEXT:    vmovlps %xmm1, (%rdx)113; AVX512-FCP-NEXT:    vmovlps %xmm2, (%rcx)114; AVX512-FCP-NEXT:    vzeroupper115; AVX512-FCP-NEXT:    retq116;117; AVX512DQ-LABEL: load_i32_stride3_vf2:118; AVX512DQ:       # %bb.0:119; AVX512DQ-NEXT:    vmovaps (%rdi), %xmm0120; AVX512DQ-NEXT:    vmovaps 16(%rdi), %xmm1121; AVX512DQ-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]122; AVX512DQ-NEXT:    vbroadcastss 8(%rdi), %xmm3123; AVX512DQ-NEXT:    vmovlps %xmm2, (%rsi)124; AVX512DQ-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]125; AVX512DQ-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]126; AVX512DQ-NEXT:    vmovlps %xmm0, (%rdx)127; AVX512DQ-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]128; AVX512DQ-NEXT:    vmovlps %xmm0, (%rcx)129; AVX512DQ-NEXT:    retq130;131; AVX512DQ-FCP-LABEL: load_i32_stride3_vf2:132; AVX512DQ-FCP:       # %bb.0:133; AVX512DQ-FCP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[0,3,2,3]134; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm1 = [1,4,6,7]135; AVX512DQ-FCP-NEXT:    vpermps (%rdi), %ymm1, %ymm1136; AVX512DQ-FCP-NEXT:    vbroadcastss 8(%rdi), %xmm2137; AVX512DQ-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],mem[1],xmm2[2,3]138; AVX512DQ-FCP-NEXT:    vmovlps %xmm0, (%rsi)139; AVX512DQ-FCP-NEXT:    vmovlps %xmm1, (%rdx)140; AVX512DQ-FCP-NEXT:    vmovlps %xmm2, (%rcx)141; AVX512DQ-FCP-NEXT:    vzeroupper142; AVX512DQ-FCP-NEXT:    retq143;144; AVX512BW-LABEL: load_i32_stride3_vf2:145; AVX512BW:       # %bb.0:146; AVX512BW-NEXT:    vmovaps (%rdi), %xmm0147; AVX512BW-NEXT:    vmovaps 16(%rdi), %xmm1148; AVX512BW-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]149; AVX512BW-NEXT:    vbroadcastss 8(%rdi), %xmm3150; AVX512BW-NEXT:    vmovlps %xmm2, (%rsi)151; AVX512BW-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]152; AVX512BW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]153; AVX512BW-NEXT:    vmovlps %xmm0, (%rdx)154; AVX512BW-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]155; AVX512BW-NEXT:    vmovlps %xmm0, (%rcx)156; AVX512BW-NEXT:    retq157;158; AVX512BW-FCP-LABEL: load_i32_stride3_vf2:159; AVX512BW-FCP:       # %bb.0:160; AVX512BW-FCP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[0,3,2,3]161; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm1 = [1,4,6,7]162; AVX512BW-FCP-NEXT:    vpermps (%rdi), %ymm1, %ymm1163; AVX512BW-FCP-NEXT:    vbroadcastss 8(%rdi), %xmm2164; AVX512BW-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],mem[1],xmm2[2,3]165; AVX512BW-FCP-NEXT:    vmovlps %xmm0, (%rsi)166; AVX512BW-FCP-NEXT:    vmovlps %xmm1, (%rdx)167; AVX512BW-FCP-NEXT:    vmovlps %xmm2, (%rcx)168; AVX512BW-FCP-NEXT:    vzeroupper169; AVX512BW-FCP-NEXT:    retq170;171; AVX512DQ-BW-LABEL: load_i32_stride3_vf2:172; AVX512DQ-BW:       # %bb.0:173; AVX512DQ-BW-NEXT:    vmovaps (%rdi), %xmm0174; AVX512DQ-BW-NEXT:    vmovaps 16(%rdi), %xmm1175; AVX512DQ-BW-NEXT:    vshufps {{.*#+}} xmm2 = xmm0[0,3,2,3]176; AVX512DQ-BW-NEXT:    vbroadcastss 8(%rdi), %xmm3177; AVX512DQ-BW-NEXT:    vmovlps %xmm2, (%rsi)178; AVX512DQ-BW-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0],xmm0[1],xmm1[2,3]179; AVX512DQ-BW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,0,2,3]180; AVX512DQ-BW-NEXT:    vmovlps %xmm0, (%rdx)181; AVX512DQ-BW-NEXT:    vblendps {{.*#+}} xmm0 = xmm3[0],xmm1[1],xmm3[2,3]182; AVX512DQ-BW-NEXT:    vmovlps %xmm0, (%rcx)183; AVX512DQ-BW-NEXT:    retq184;185; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf2:186; AVX512DQ-BW-FCP:       # %bb.0:187; AVX512DQ-BW-FCP-NEXT:    vpermilps {{.*#+}} xmm0 = mem[0,3,2,3]188; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm1 = [1,4,6,7]189; AVX512DQ-BW-FCP-NEXT:    vpermps (%rdi), %ymm1, %ymm1190; AVX512DQ-BW-FCP-NEXT:    vbroadcastss 8(%rdi), %xmm2191; AVX512DQ-BW-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0],mem[1],xmm2[2,3]192; AVX512DQ-BW-FCP-NEXT:    vmovlps %xmm0, (%rsi)193; AVX512DQ-BW-FCP-NEXT:    vmovlps %xmm1, (%rdx)194; AVX512DQ-BW-FCP-NEXT:    vmovlps %xmm2, (%rcx)195; AVX512DQ-BW-FCP-NEXT:    vzeroupper196; AVX512DQ-BW-FCP-NEXT:    retq197  %wide.vec = load <6 x i32>, ptr %in.vec, align 64198  %strided.vec0 = shufflevector <6 x i32> %wide.vec, <6 x i32> poison, <2 x i32> <i32 0, i32 3>199  %strided.vec1 = shufflevector <6 x i32> %wide.vec, <6 x i32> poison, <2 x i32> <i32 1, i32 4>200  %strided.vec2 = shufflevector <6 x i32> %wide.vec, <6 x i32> poison, <2 x i32> <i32 2, i32 5>201  store <2 x i32> %strided.vec0, ptr %out.vec0, align 64202  store <2 x i32> %strided.vec1, ptr %out.vec1, align 64203  store <2 x i32> %strided.vec2, ptr %out.vec2, align 64204  ret void205}206 207define void @load_i32_stride3_vf4(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {208; SSE-LABEL: load_i32_stride3_vf4:209; SSE:       # %bb.0:210; SSE-NEXT:    movdqa (%rdi), %xmm0211; SSE-NEXT:    movaps 16(%rdi), %xmm1212; SSE-NEXT:    movaps 32(%rdi), %xmm2213; SSE-NEXT:    movdqa %xmm0, %xmm3214; SSE-NEXT:    movaps %xmm1, %xmm4215; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm0[2,3,2,3]216; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]217; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm1[1,1,1,1]218; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm2[1,0]219; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,3],xmm1[0,2]220; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,1],xmm2[2,3]221; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm4[0,2]222; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm6[0],xmm5[1],xmm6[1]223; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm2[0,3]224; SSE-NEXT:    movaps %xmm3, (%rsi)225; SSE-NEXT:    movaps %xmm0, (%rdx)226; SSE-NEXT:    movaps %xmm5, (%rcx)227; SSE-NEXT:    retq228;229; AVX-LABEL: load_i32_stride3_vf4:230; AVX:       # %bb.0:231; AVX-NEXT:    vmovaps (%rdi), %xmm0232; AVX-NEXT:    vmovaps 16(%rdi), %xmm1233; AVX-NEXT:    vmovaps 32(%rdi), %xmm2234; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm0[0],xmm2[1],xmm0[2,3]235; AVX-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm1[2],xmm3[3]236; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,3,2,1]237; AVX-NEXT:    vmovaps 32(%rdi), %xmm4238; AVX-NEXT:    vblendps {{.*#+}} xmm4 = mem[0,1],xmm4[2,3]239; AVX-NEXT:    vblendps {{.*#+}} xmm4 = xmm1[0],xmm4[1,2],xmm1[3]240; AVX-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[1,0,3,2]241; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm2[0,1],xmm0[2],xmm2[3]242; AVX-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0],xmm1[1],xmm0[2,3]243; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,1,0,3]244; AVX-NEXT:    vmovaps %xmm3, (%rsi)245; AVX-NEXT:    vmovaps %xmm4, (%rdx)246; AVX-NEXT:    vmovaps %xmm0, (%rcx)247; AVX-NEXT:    retq248;249; AVX2-LABEL: load_i32_stride3_vf4:250; AVX2:       # %bb.0:251; AVX2-NEXT:    vmovaps (%rdi), %ymm0252; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1253; AVX2-NEXT:    vmovaps {{.*#+}} xmm2 = [0,3,6,1]254; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6,7]255; AVX2-NEXT:    vpermps %ymm3, %ymm2, %ymm2256; AVX2-NEXT:    vmovaps {{.*#+}} xmm3 = [1,4,7,2]257; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]258; AVX2-NEXT:    vpermps %ymm4, %ymm3, %ymm3259; AVX2-NEXT:    vmovaps {{.*#+}} xmm4 = [2,5,0,3]260; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4,5,6,7]261; AVX2-NEXT:    vpermps %ymm0, %ymm4, %ymm0262; AVX2-NEXT:    vmovaps %xmm2, (%rsi)263; AVX2-NEXT:    vmovaps %xmm3, (%rdx)264; AVX2-NEXT:    vmovaps %xmm0, (%rcx)265; AVX2-NEXT:    vzeroupper266; AVX2-NEXT:    retq267;268; AVX2-FP-LABEL: load_i32_stride3_vf4:269; AVX2-FP:       # %bb.0:270; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0271; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1272; AVX2-FP-NEXT:    vmovaps {{.*#+}} xmm2 = [0,3,6,1]273; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6,7]274; AVX2-FP-NEXT:    vpermps %ymm3, %ymm2, %ymm2275; AVX2-FP-NEXT:    vmovaps {{.*#+}} xmm3 = [1,4,7,2]276; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]277; AVX2-FP-NEXT:    vpermps %ymm4, %ymm3, %ymm3278; AVX2-FP-NEXT:    vmovaps {{.*#+}} xmm4 = [2,5,0,3]279; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4,5,6,7]280; AVX2-FP-NEXT:    vpermps %ymm0, %ymm4, %ymm0281; AVX2-FP-NEXT:    vmovaps %xmm2, (%rsi)282; AVX2-FP-NEXT:    vmovaps %xmm3, (%rdx)283; AVX2-FP-NEXT:    vmovaps %xmm0, (%rcx)284; AVX2-FP-NEXT:    vzeroupper285; AVX2-FP-NEXT:    retq286;287; AVX2-FCP-LABEL: load_i32_stride3_vf4:288; AVX2-FCP:       # %bb.0:289; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0290; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1291; AVX2-FCP-NEXT:    vmovaps {{.*#+}} xmm2 = [0,3,6,1]292; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3,4,5,6,7]293; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm2, %ymm2294; AVX2-FCP-NEXT:    vmovaps {{.*#+}} xmm3 = [1,4,7,2]295; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]296; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm3, %ymm3297; AVX2-FCP-NEXT:    vmovaps {{.*#+}} xmm4 = [2,5,0,3]298; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3],ymm0[4,5,6,7]299; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm4, %ymm0300; AVX2-FCP-NEXT:    vmovaps %xmm2, (%rsi)301; AVX2-FCP-NEXT:    vmovaps %xmm3, (%rdx)302; AVX2-FCP-NEXT:    vmovaps %xmm0, (%rcx)303; AVX2-FCP-NEXT:    vzeroupper304; AVX2-FCP-NEXT:    retq305;306; AVX512-LABEL: load_i32_stride3_vf4:307; AVX512:       # %bb.0:308; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]309; AVX512-NEXT:    vmovaps (%rdi), %zmm1310; AVX512-NEXT:    vpermps %zmm1, %zmm0, %zmm0311; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]312; AVX512-NEXT:    vpermps %zmm1, %zmm2, %zmm2313; AVX512-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]314; AVX512-NEXT:    vpermps %zmm1, %zmm3, %zmm1315; AVX512-NEXT:    vmovaps %xmm0, (%rsi)316; AVX512-NEXT:    vmovaps %xmm2, (%rdx)317; AVX512-NEXT:    vmovaps %xmm1, (%rcx)318; AVX512-NEXT:    vzeroupper319; AVX512-NEXT:    retq320;321; AVX512-FCP-LABEL: load_i32_stride3_vf4:322; AVX512-FCP:       # %bb.0:323; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]324; AVX512-FCP-NEXT:    vmovaps (%rdi), %zmm1325; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0326; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]327; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2328; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]329; AVX512-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm1330; AVX512-FCP-NEXT:    vmovaps %xmm0, (%rsi)331; AVX512-FCP-NEXT:    vmovaps %xmm2, (%rdx)332; AVX512-FCP-NEXT:    vmovaps %xmm1, (%rcx)333; AVX512-FCP-NEXT:    vzeroupper334; AVX512-FCP-NEXT:    retq335;336; AVX512DQ-LABEL: load_i32_stride3_vf4:337; AVX512DQ:       # %bb.0:338; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]339; AVX512DQ-NEXT:    vmovaps (%rdi), %zmm1340; AVX512DQ-NEXT:    vpermps %zmm1, %zmm0, %zmm0341; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]342; AVX512DQ-NEXT:    vpermps %zmm1, %zmm2, %zmm2343; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]344; AVX512DQ-NEXT:    vpermps %zmm1, %zmm3, %zmm1345; AVX512DQ-NEXT:    vmovaps %xmm0, (%rsi)346; AVX512DQ-NEXT:    vmovaps %xmm2, (%rdx)347; AVX512DQ-NEXT:    vmovaps %xmm1, (%rcx)348; AVX512DQ-NEXT:    vzeroupper349; AVX512DQ-NEXT:    retq350;351; AVX512DQ-FCP-LABEL: load_i32_stride3_vf4:352; AVX512DQ-FCP:       # %bb.0:353; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]354; AVX512DQ-FCP-NEXT:    vmovaps (%rdi), %zmm1355; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0356; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]357; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2358; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]359; AVX512DQ-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm1360; AVX512DQ-FCP-NEXT:    vmovaps %xmm0, (%rsi)361; AVX512DQ-FCP-NEXT:    vmovaps %xmm2, (%rdx)362; AVX512DQ-FCP-NEXT:    vmovaps %xmm1, (%rcx)363; AVX512DQ-FCP-NEXT:    vzeroupper364; AVX512DQ-FCP-NEXT:    retq365;366; AVX512BW-LABEL: load_i32_stride3_vf4:367; AVX512BW:       # %bb.0:368; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]369; AVX512BW-NEXT:    vmovaps (%rdi), %zmm1370; AVX512BW-NEXT:    vpermps %zmm1, %zmm0, %zmm0371; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]372; AVX512BW-NEXT:    vpermps %zmm1, %zmm2, %zmm2373; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]374; AVX512BW-NEXT:    vpermps %zmm1, %zmm3, %zmm1375; AVX512BW-NEXT:    vmovaps %xmm0, (%rsi)376; AVX512BW-NEXT:    vmovaps %xmm2, (%rdx)377; AVX512BW-NEXT:    vmovaps %xmm1, (%rcx)378; AVX512BW-NEXT:    vzeroupper379; AVX512BW-NEXT:    retq380;381; AVX512BW-FCP-LABEL: load_i32_stride3_vf4:382; AVX512BW-FCP:       # %bb.0:383; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]384; AVX512BW-FCP-NEXT:    vmovaps (%rdi), %zmm1385; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0386; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]387; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2388; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]389; AVX512BW-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm1390; AVX512BW-FCP-NEXT:    vmovaps %xmm0, (%rsi)391; AVX512BW-FCP-NEXT:    vmovaps %xmm2, (%rdx)392; AVX512BW-FCP-NEXT:    vmovaps %xmm1, (%rcx)393; AVX512BW-FCP-NEXT:    vzeroupper394; AVX512BW-FCP-NEXT:    retq395;396; AVX512DQ-BW-LABEL: load_i32_stride3_vf4:397; AVX512DQ-BW:       # %bb.0:398; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]399; AVX512DQ-BW-NEXT:    vmovaps (%rdi), %zmm1400; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm0, %zmm0401; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]402; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm2, %zmm2403; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]404; AVX512DQ-BW-NEXT:    vpermps %zmm1, %zmm3, %zmm1405; AVX512DQ-BW-NEXT:    vmovaps %xmm0, (%rsi)406; AVX512DQ-BW-NEXT:    vmovaps %xmm2, (%rdx)407; AVX512DQ-BW-NEXT:    vmovaps %xmm1, (%rcx)408; AVX512DQ-BW-NEXT:    vzeroupper409; AVX512DQ-BW-NEXT:    retq410;411; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf4:412; AVX512DQ-BW-FCP:       # %bb.0:413; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm0 = [0,3,6,9]414; AVX512DQ-BW-FCP-NEXT:    vmovaps (%rdi), %zmm1415; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm0, %zmm0416; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm2 = [1,4,7,10]417; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm2, %zmm2418; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} xmm3 = [2,5,8,11]419; AVX512DQ-BW-FCP-NEXT:    vpermps %zmm1, %zmm3, %zmm1420; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm0, (%rsi)421; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm2, (%rdx)422; AVX512DQ-BW-FCP-NEXT:    vmovaps %xmm1, (%rcx)423; AVX512DQ-BW-FCP-NEXT:    vzeroupper424; AVX512DQ-BW-FCP-NEXT:    retq425  %wide.vec = load <12 x i32>, ptr %in.vec, align 64426  %strided.vec0 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <4 x i32> <i32 0, i32 3, i32 6, i32 9>427  %strided.vec1 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <4 x i32> <i32 1, i32 4, i32 7, i32 10>428  %strided.vec2 = shufflevector <12 x i32> %wide.vec, <12 x i32> poison, <4 x i32> <i32 2, i32 5, i32 8, i32 11>429  store <4 x i32> %strided.vec0, ptr %out.vec0, align 64430  store <4 x i32> %strided.vec1, ptr %out.vec1, align 64431  store <4 x i32> %strided.vec2, ptr %out.vec2, align 64432  ret void433}434 435define void @load_i32_stride3_vf8(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {436; SSE-LABEL: load_i32_stride3_vf8:437; SSE:       # %bb.0:438; SSE-NEXT:    movaps 80(%rdi), %xmm1439; SSE-NEXT:    movaps 64(%rdi), %xmm5440; SSE-NEXT:    movdqa (%rdi), %xmm0441; SSE-NEXT:    movaps 16(%rdi), %xmm7442; SSE-NEXT:    movaps 32(%rdi), %xmm4443; SSE-NEXT:    movdqa 48(%rdi), %xmm2444; SSE-NEXT:    movdqa %xmm0, %xmm3445; SSE-NEXT:    movaps %xmm7, %xmm8446; SSE-NEXT:    pshufd {{.*#+}} xmm6 = xmm0[2,3,2,3]447; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm7[0,0]448; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm7[1,1,1,1]449; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,0],xmm4[1,0]450; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,3],xmm7[0,2]451; SSE-NEXT:    movdqa %xmm2, %xmm7452; SSE-NEXT:    movaps %xmm5, %xmm10453; SSE-NEXT:    pshufd {{.*#+}} xmm11 = xmm2[2,3,2,3]454; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,0],xmm5[0,0]455; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm5[1,1,1,1]456; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,0],xmm1[1,0]457; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,3],xmm5[0,2]458; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[3,1],xmm1[2,3]459; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm10[0,2]460; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[3,1],xmm4[2,3]461; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm8[0,2]462; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm9[0],xmm6[1],xmm9[1]463; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm4[0,3]464; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm12[0],xmm11[1],xmm12[1]465; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,1],xmm1[0,3]466; SSE-NEXT:    movaps %xmm7, 16(%rsi)467; SSE-NEXT:    movaps %xmm3, (%rsi)468; SSE-NEXT:    movaps %xmm2, 16(%rdx)469; SSE-NEXT:    movaps %xmm0, (%rdx)470; SSE-NEXT:    movaps %xmm11, 16(%rcx)471; SSE-NEXT:    movaps %xmm6, (%rcx)472; SSE-NEXT:    retq473;474; AVX-LABEL: load_i32_stride3_vf8:475; AVX:       # %bb.0:476; AVX-NEXT:    vmovaps 64(%rdi), %ymm0477; AVX-NEXT:    vmovaps 32(%rdi), %ymm1478; AVX-NEXT:    vmovaps (%rdi), %ymm2479; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]480; AVX-NEXT:    vmovaps 16(%rdi), %xmm4481; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,1],ymm1[1,3],ymm4[6,5],ymm1[5,7]482; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,3],ymm4[0,2],ymm3[4,7],ymm4[4,6]483; AVX-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm0[2,3,0,1]484; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm0[1,0],ymm4[2,0],ymm0[5,4],ymm4[6,4]485; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,1,2,0,4,5,6,4]486; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm5[6,7]487; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm0[2,0],ymm4[3,0],ymm0[6,4],ymm4[7,4]488; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm4[0,0],ymm5[2,0],ymm4[4,4],ymm5[6,4]489; AVX-NEXT:    vmovaps 16(%rdi), %xmm6490; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]491; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,2],ymm6[0,3],ymm7[5,6],ymm6[4,7]492; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,2,3,1,4,6,7,5]493; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1,2,3,4],ymm5[5,6,7]494; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]495; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm6[1,0],ymm2[2,0],ymm6[5,4],ymm2[6,4]496; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[0,3],ymm2[6,4],ymm1[4,7]497; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[0,1],ymm0[0,3],ymm4[4,5],ymm0[4,7]498; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]499; AVX-NEXT:    vmovaps %ymm3, (%rsi)500; AVX-NEXT:    vmovaps %ymm5, (%rdx)501; AVX-NEXT:    vmovaps %ymm0, (%rcx)502; AVX-NEXT:    vzeroupper503; AVX-NEXT:    retq504;505; AVX2-LABEL: load_i32_stride3_vf8:506; AVX2:       # %bb.0:507; AVX2-NEXT:    vmovaps (%rdi), %ymm0508; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1509; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2510; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]511; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]512; AVX2-NEXT:    vmovaps {{.*#+}} ymm4 = [0,3,6,1,4,7,2,5]513; AVX2-NEXT:    vpermps %ymm3, %ymm4, %ymm3514; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]515; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0],ymm4[1,2],ymm2[3],ymm4[4,5],ymm2[6],ymm4[7]516; AVX2-NEXT:    vmovaps {{.*#+}} ymm5 = [1,4,7,2,5,0,3,6]517; AVX2-NEXT:    vpermps %ymm4, %ymm5, %ymm4518; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]519; AVX2-NEXT:    vmovaps {{.*#+}} ymm1 = [2,5,0,3,6,u,u,u]520; AVX2-NEXT:    vpermps %ymm0, %ymm1, %ymm0521; AVX2-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,0,3,4,5,4,7]522; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]523; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]524; AVX2-NEXT:    vmovaps %ymm3, (%rsi)525; AVX2-NEXT:    vmovaps %ymm4, (%rdx)526; AVX2-NEXT:    vmovaps %ymm0, (%rcx)527; AVX2-NEXT:    vzeroupper528; AVX2-NEXT:    retq529;530; AVX2-FP-LABEL: load_i32_stride3_vf8:531; AVX2-FP:       # %bb.0:532; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0533; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1534; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2535; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]536; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]537; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm4 = [0,3,6,1,4,7,2,5]538; AVX2-FP-NEXT:    vpermps %ymm3, %ymm4, %ymm3539; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]540; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0],ymm4[1,2],ymm2[3],ymm4[4,5],ymm2[6],ymm4[7]541; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm5 = [1,4,7,2,5,0,3,6]542; AVX2-FP-NEXT:    vpermps %ymm4, %ymm5, %ymm4543; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]544; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm1 = [2,5,0,3,6,u,u,u]545; AVX2-FP-NEXT:    vpermps %ymm0, %ymm1, %ymm0546; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,0,3,4,5,4,7]547; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]548; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]549; AVX2-FP-NEXT:    vmovaps %ymm3, (%rsi)550; AVX2-FP-NEXT:    vmovaps %ymm4, (%rdx)551; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)552; AVX2-FP-NEXT:    vzeroupper553; AVX2-FP-NEXT:    retq554;555; AVX2-FCP-LABEL: load_i32_stride3_vf8:556; AVX2-FCP:       # %bb.0:557; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0558; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1559; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2560; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]561; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]562; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm4 = [0,3,6,1,4,7,2,5]563; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm4, %ymm3564; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]565; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0],ymm4[1,2],ymm2[3],ymm4[4,5],ymm2[6],ymm4[7]566; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm5 = [1,4,7,2,5,0,3,6]567; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm5, %ymm4568; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]569; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2,3],ymm2[4],ymm0[5,6],ymm2[7]570; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm1 = [2,5,0,3,6,1,4,7]571; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm1, %ymm0572; AVX2-FCP-NEXT:    vmovaps %ymm3, (%rsi)573; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rdx)574; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)575; AVX2-FCP-NEXT:    vzeroupper576; AVX2-FCP-NEXT:    retq577;578; AVX512-LABEL: load_i32_stride3_vf8:579; AVX512:       # %bb.0:580; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0581; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1582; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]583; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2584; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]585; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3586; AVX512-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]587; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4588; AVX512-NEXT:    vmovdqa %ymm2, (%rsi)589; AVX512-NEXT:    vmovdqa %ymm3, (%rdx)590; AVX512-NEXT:    vmovdqa %ymm4, (%rcx)591; AVX512-NEXT:    vzeroupper592; AVX512-NEXT:    retq593;594; AVX512-FCP-LABEL: load_i32_stride3_vf8:595; AVX512-FCP:       # %bb.0:596; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0597; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1598; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]599; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2600; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]601; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3602; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]603; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4604; AVX512-FCP-NEXT:    vmovdqa %ymm2, (%rsi)605; AVX512-FCP-NEXT:    vmovdqa %ymm3, (%rdx)606; AVX512-FCP-NEXT:    vmovdqa %ymm4, (%rcx)607; AVX512-FCP-NEXT:    vzeroupper608; AVX512-FCP-NEXT:    retq609;610; AVX512DQ-LABEL: load_i32_stride3_vf8:611; AVX512DQ:       # %bb.0:612; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0613; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm1614; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]615; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2616; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]617; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3618; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]619; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4620; AVX512DQ-NEXT:    vmovdqa %ymm2, (%rsi)621; AVX512DQ-NEXT:    vmovdqa %ymm3, (%rdx)622; AVX512DQ-NEXT:    vmovdqa %ymm4, (%rcx)623; AVX512DQ-NEXT:    vzeroupper624; AVX512DQ-NEXT:    retq625;626; AVX512DQ-FCP-LABEL: load_i32_stride3_vf8:627; AVX512DQ-FCP:       # %bb.0:628; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0629; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1630; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]631; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2632; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]633; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3634; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]635; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4636; AVX512DQ-FCP-NEXT:    vmovdqa %ymm2, (%rsi)637; AVX512DQ-FCP-NEXT:    vmovdqa %ymm3, (%rdx)638; AVX512DQ-FCP-NEXT:    vmovdqa %ymm4, (%rcx)639; AVX512DQ-FCP-NEXT:    vzeroupper640; AVX512DQ-FCP-NEXT:    retq641;642; AVX512BW-LABEL: load_i32_stride3_vf8:643; AVX512BW:       # %bb.0:644; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0645; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm1646; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]647; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2648; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]649; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3650; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]651; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4652; AVX512BW-NEXT:    vmovdqa %ymm2, (%rsi)653; AVX512BW-NEXT:    vmovdqa %ymm3, (%rdx)654; AVX512BW-NEXT:    vmovdqa %ymm4, (%rcx)655; AVX512BW-NEXT:    vzeroupper656; AVX512BW-NEXT:    retq657;658; AVX512BW-FCP-LABEL: load_i32_stride3_vf8:659; AVX512BW-FCP:       # %bb.0:660; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0661; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1662; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]663; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2664; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]665; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3666; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]667; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4668; AVX512BW-FCP-NEXT:    vmovdqa %ymm2, (%rsi)669; AVX512BW-FCP-NEXT:    vmovdqa %ymm3, (%rdx)670; AVX512BW-FCP-NEXT:    vmovdqa %ymm4, (%rcx)671; AVX512BW-FCP-NEXT:    vzeroupper672; AVX512BW-FCP-NEXT:    retq673;674; AVX512DQ-BW-LABEL: load_i32_stride3_vf8:675; AVX512DQ-BW:       # %bb.0:676; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0677; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm1678; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]679; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2680; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]681; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3682; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]683; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4684; AVX512DQ-BW-NEXT:    vmovdqa %ymm2, (%rsi)685; AVX512DQ-BW-NEXT:    vmovdqa %ymm3, (%rdx)686; AVX512DQ-BW-NEXT:    vmovdqa %ymm4, (%rcx)687; AVX512DQ-BW-NEXT:    vzeroupper688; AVX512DQ-BW-NEXT:    retq689;690; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf8:691; AVX512DQ-BW-FCP:       # %bb.0:692; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0693; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm1694; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm2 = [0,3,6,9,12,15,18,21]695; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2696; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm3 = [1,4,7,10,13,16,19,22]697; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3698; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} ymm4 = [2,5,8,11,14,17,20,23]699; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4700; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm2, (%rsi)701; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm3, (%rdx)702; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm4, (%rcx)703; AVX512DQ-BW-FCP-NEXT:    vzeroupper704; AVX512DQ-BW-FCP-NEXT:    retq705  %wide.vec = load <24 x i32>, ptr %in.vec, align 64706  %strided.vec0 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <8 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21>707  %strided.vec1 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <8 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22>708  %strided.vec2 = shufflevector <24 x i32> %wide.vec, <24 x i32> poison, <8 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23>709  store <8 x i32> %strided.vec0, ptr %out.vec0, align 64710  store <8 x i32> %strided.vec1, ptr %out.vec1, align 64711  store <8 x i32> %strided.vec2, ptr %out.vec2, align 64712  ret void713}714 715define void @load_i32_stride3_vf16(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {716; SSE-LABEL: load_i32_stride3_vf16:717; SSE:       # %bb.0:718; SSE-NEXT:    movaps 96(%rdi), %xmm6719; SSE-NEXT:    movaps 128(%rdi), %xmm12720; SSE-NEXT:    movaps 112(%rdi), %xmm13721; SSE-NEXT:    movaps 144(%rdi), %xmm11722; SSE-NEXT:    movaps 176(%rdi), %xmm10723; SSE-NEXT:    movaps 160(%rdi), %xmm9724; SSE-NEXT:    movaps (%rdi), %xmm7725; SSE-NEXT:    movaps 16(%rdi), %xmm8726; SSE-NEXT:    movaps 32(%rdi), %xmm3727; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill728; SSE-NEXT:    movaps 48(%rdi), %xmm15729; SSE-NEXT:    movaps 80(%rdi), %xmm14730; SSE-NEXT:    movaps 64(%rdi), %xmm2731; SSE-NEXT:    movaps %xmm2, %xmm0732; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm14[1,0]733; SSE-NEXT:    movaps %xmm15, %xmm5734; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,3],xmm0[0,2]735; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill736; SSE-NEXT:    movaps %xmm8, %xmm0737; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm3[1,0]738; SSE-NEXT:    movaps %xmm7, %xmm5739; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,3],xmm0[0,2]740; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill741; SSE-NEXT:    movaps %xmm9, %xmm0742; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm10[1,0]743; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill744; SSE-NEXT:    movaps %xmm11, %xmm3745; SSE-NEXT:    movaps %xmm11, %xmm4746; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill747; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,3],xmm0[0,2]748; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill749; SSE-NEXT:    movaps %xmm13, %xmm0750; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm12[1,0]751; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill752; SSE-NEXT:    movaps %xmm6, %xmm5753; SSE-NEXT:    movaps %xmm6, %xmm3754; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,3],xmm0[0,2]755; SSE-NEXT:    movaps %xmm15, %xmm11756; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,0],xmm2[0,0]757; SSE-NEXT:    movaps %xmm2, %xmm0758; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm14[2,3]759; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,2]760; SSE-NEXT:    movaps %xmm4, %xmm6761; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[1,0],xmm9[0,0]762; SSE-NEXT:    movaps %xmm9, %xmm0763; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm10[2,3]764; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,2],xmm0[0,2]765; SSE-NEXT:    movaps %xmm3, %xmm1766; SSE-NEXT:    movaps %xmm3, %xmm10767; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,0],xmm13[0,0]768; SSE-NEXT:    movaps %xmm13, %xmm0769; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm12[2,3]770; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,2]771; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm7[2,3,2,3]772; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[1,0],xmm8[0,0]773; SSE-NEXT:    movaps %xmm8, %xmm12774; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload775; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[3,1],xmm4[2,3]776; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,2],xmm12[0,2]777; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm2[1,1,1,1]778; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm15[2,3,2,3]779; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm12[0],xmm2[1],xmm12[1]780; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm14[0,3]781; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm8[1,1,1,1]782; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]783; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm4[0,3]784; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm9[1,1,1,1]785; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload786; SSE-NEXT:    # xmm8 = mem[2,3,2,3]787; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm3[0],xmm8[1],xmm3[1]788; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload789; SSE-NEXT:    # xmm8 = xmm8[0,1],mem[0,3]790; SSE-NEXT:    pshufd {{.*#+}} xmm3 = xmm13[1,1,1,1]791; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm10[2,3,2,3]792; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]793; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload794; SSE-NEXT:    # xmm4 = xmm4[0,1],mem[0,3]795; SSE-NEXT:    movaps %xmm5, 32(%rsi)796; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload797; SSE-NEXT:    movaps %xmm3, 48(%rsi)798; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload799; SSE-NEXT:    movaps %xmm3, (%rsi)800; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload801; SSE-NEXT:    movaps %xmm3, 16(%rsi)802; SSE-NEXT:    movaps %xmm1, 32(%rdx)803; SSE-NEXT:    movaps %xmm6, 48(%rdx)804; SSE-NEXT:    movaps %xmm7, (%rdx)805; SSE-NEXT:    movaps %xmm11, 16(%rdx)806; SSE-NEXT:    movaps %xmm4, 32(%rcx)807; SSE-NEXT:    movaps %xmm8, 48(%rcx)808; SSE-NEXT:    movaps %xmm0, (%rcx)809; SSE-NEXT:    movaps %xmm2, 16(%rcx)810; SSE-NEXT:    retq811;812; AVX-LABEL: load_i32_stride3_vf16:813; AVX:       # %bb.0:814; AVX-NEXT:    vmovaps 160(%rdi), %ymm0815; AVX-NEXT:    vmovaps 128(%rdi), %ymm1816; AVX-NEXT:    vmovaps 96(%rdi), %ymm2817; AVX-NEXT:    vmovaps 64(%rdi), %ymm3818; AVX-NEXT:    vmovaps 32(%rdi), %ymm4819; AVX-NEXT:    vmovaps (%rdi), %ymm6820; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6],ymm4[7]821; AVX-NEXT:    vmovaps 16(%rdi), %xmm7822; AVX-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,1],ymm4[1,3],ymm7[6,5],ymm4[5,7]823; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[0,3],ymm7[0,2],ymm5[4,7],ymm7[4,6]824; AVX-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm3[2,3,0,1]825; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,0],ymm7[2,0],ymm3[5,4],ymm7[6,4]826; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]827; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm8[6,7]828; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0],ymm1[1],ymm2[2,3],ymm1[4],ymm2[5,6],ymm1[7]829; AVX-NEXT:    vmovaps 112(%rdi), %xmm9830; AVX-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[2,1],ymm1[1,3],ymm9[6,5],ymm1[5,7]831; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,3],ymm9[0,2],ymm8[4,7],ymm9[4,6]832; AVX-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm0[2,3,0,1]833; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm0[1,0],ymm9[2,0],ymm0[5,4],ymm9[6,4]834; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,1,2,0,4,5,6,4]835; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm10[6,7]836; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[2,0],ymm7[3,0],ymm3[6,4],ymm7[7,4]837; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm7[0,0],ymm10[2,0],ymm7[4,4],ymm10[6,4]838; AVX-NEXT:    vmovaps 16(%rdi), %xmm11839; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]840; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[1,2],ymm11[0,3],ymm12[5,6],ymm11[4,7]841; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[0,2,3,1,4,6,7,5]842; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1,2,3,4],ymm10[5,6,7]843; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm0[2,0],ymm9[3,0],ymm0[6,4],ymm9[7,4]844; AVX-NEXT:    vshufps {{.*#+}} ymm12 = ymm9[0,0],ymm12[2,0],ymm9[4,4],ymm12[6,4]845; AVX-NEXT:    vmovaps 112(%rdi), %xmm13846; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]847; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[1,2],ymm13[0,3],ymm14[5,6],ymm13[4,7]848; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,2,3,1,4,6,7,5]849; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1,2,3,4],ymm12[5,6,7]850; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm4[0,1],ymm6[2],ymm4[3,4],ymm6[5],ymm4[6,7]851; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm11[1,0],ymm6[2,0],ymm11[5,4],ymm6[6,4]852; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm6[2,0],ymm4[0,3],ymm6[6,4],ymm4[4,7]853; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1],ymm3[0,3],ymm7[4,5],ymm3[4,7]854; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3,4],ymm3[5,6,7]855; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]856; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm13[1,0],ymm2[2,0],ymm13[5,4],ymm2[6,4]857; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,0],ymm1[0,3],ymm2[6,4],ymm1[4,7]858; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm9[0,1],ymm0[0,3],ymm9[4,5],ymm0[4,7]859; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]860; AVX-NEXT:    vmovaps %ymm8, 32(%rsi)861; AVX-NEXT:    vmovaps %ymm5, (%rsi)862; AVX-NEXT:    vmovaps %ymm12, 32(%rdx)863; AVX-NEXT:    vmovaps %ymm10, (%rdx)864; AVX-NEXT:    vmovaps %ymm0, 32(%rcx)865; AVX-NEXT:    vmovaps %ymm3, (%rcx)866; AVX-NEXT:    vzeroupper867; AVX-NEXT:    retq868;869; AVX2-LABEL: load_i32_stride3_vf16:870; AVX2:       # %bb.0:871; AVX2-NEXT:    vmovaps 160(%rdi), %ymm0872; AVX2-NEXT:    vmovaps 128(%rdi), %ymm1873; AVX2-NEXT:    vmovaps (%rdi), %ymm2874; AVX2-NEXT:    vmovaps 32(%rdi), %ymm3875; AVX2-NEXT:    vmovaps 64(%rdi), %ymm4876; AVX2-NEXT:    vmovaps 96(%rdi), %ymm5877; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm2[0],ymm3[1],ymm2[2,3],ymm3[4],ymm2[5,6],ymm3[7]878; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]879; AVX2-NEXT:    vmovaps {{.*#+}} ymm7 = [0,3,6,1,4,7,2,5]880; AVX2-NEXT:    vpermps %ymm6, %ymm7, %ymm6881; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0],ymm1[1],ymm5[2,3],ymm1[4],ymm5[5,6],ymm1[7]882; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]883; AVX2-NEXT:    vpermps %ymm8, %ymm7, %ymm7884; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]885; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm4[0],ymm8[1,2],ymm4[3],ymm8[4,5],ymm4[6],ymm8[7]886; AVX2-NEXT:    vmovaps {{.*#+}} ymm9 = [1,4,7,2,5,0,3,6]887; AVX2-NEXT:    vpermps %ymm8, %ymm9, %ymm8888; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm5[0,1],ymm1[2],ymm5[3,4],ymm1[5],ymm5[6,7]889; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0],ymm10[1,2],ymm0[3],ymm10[4,5],ymm0[6],ymm10[7]890; AVX2-NEXT:    vpermps %ymm10, %ymm9, %ymm9891; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]892; AVX2-NEXT:    vmovaps {{.*#+}} ymm3 = [2,5,0,3,6,u,u,u]893; AVX2-NEXT:    vpermps %ymm2, %ymm3, %ymm2894; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,1,0,3,4,5,4,7]895; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]896; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]897; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]898; AVX2-NEXT:    vpermps %ymm1, %ymm3, %ymm1899; AVX2-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,3,4,5,4,7]900; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,3]901; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]902; AVX2-NEXT:    vmovaps %ymm7, 32(%rsi)903; AVX2-NEXT:    vmovaps %ymm6, (%rsi)904; AVX2-NEXT:    vmovaps %ymm9, 32(%rdx)905; AVX2-NEXT:    vmovaps %ymm8, (%rdx)906; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)907; AVX2-NEXT:    vmovaps %ymm2, (%rcx)908; AVX2-NEXT:    vzeroupper909; AVX2-NEXT:    retq910;911; AVX2-FP-LABEL: load_i32_stride3_vf16:912; AVX2-FP:       # %bb.0:913; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm0914; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm1915; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm2916; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm3917; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm4918; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm5919; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm2[0],ymm3[1],ymm2[2,3],ymm3[4],ymm2[5,6],ymm3[7]920; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]921; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm7 = [0,3,6,1,4,7,2,5]922; AVX2-FP-NEXT:    vpermps %ymm6, %ymm7, %ymm6923; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0],ymm1[1],ymm5[2,3],ymm1[4],ymm5[5,6],ymm1[7]924; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]925; AVX2-FP-NEXT:    vpermps %ymm8, %ymm7, %ymm7926; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]927; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm4[0],ymm8[1,2],ymm4[3],ymm8[4,5],ymm4[6],ymm8[7]928; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm9 = [1,4,7,2,5,0,3,6]929; AVX2-FP-NEXT:    vpermps %ymm8, %ymm9, %ymm8930; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm5[0,1],ymm1[2],ymm5[3,4],ymm1[5],ymm5[6,7]931; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0],ymm10[1,2],ymm0[3],ymm10[4,5],ymm0[6],ymm10[7]932; AVX2-FP-NEXT:    vpermps %ymm10, %ymm9, %ymm9933; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]934; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm3 = [2,5,0,3,6,u,u,u]935; AVX2-FP-NEXT:    vpermps %ymm2, %ymm3, %ymm2936; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,1,0,3,4,5,4,7]937; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]938; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm4[5,6,7]939; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]940; AVX2-FP-NEXT:    vpermps %ymm1, %ymm3, %ymm1941; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1,0,3,4,5,4,7]942; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,0,3]943; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]944; AVX2-FP-NEXT:    vmovaps %ymm7, 32(%rsi)945; AVX2-FP-NEXT:    vmovaps %ymm6, (%rsi)946; AVX2-FP-NEXT:    vmovaps %ymm9, 32(%rdx)947; AVX2-FP-NEXT:    vmovaps %ymm8, (%rdx)948; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)949; AVX2-FP-NEXT:    vmovaps %ymm2, (%rcx)950; AVX2-FP-NEXT:    vzeroupper951; AVX2-FP-NEXT:    retq952;953; AVX2-FCP-LABEL: load_i32_stride3_vf16:954; AVX2-FCP:       # %bb.0:955; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm0956; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm1957; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm2958; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm3959; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm4960; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm5961; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm2[0],ymm3[1],ymm2[2,3],ymm3[4],ymm2[5,6],ymm3[7]962; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm4[2],ymm6[3,4],ymm4[5],ymm6[6,7]963; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm7 = [0,3,6,1,4,7,2,5]964; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm7, %ymm6965; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0],ymm1[1],ymm5[2,3],ymm1[4],ymm5[5,6],ymm1[7]966; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm0[2],ymm8[3,4],ymm0[5],ymm8[6,7]967; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm7, %ymm7968; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1],ymm3[2],ymm2[3,4],ymm3[5],ymm2[6,7]969; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm4[0],ymm8[1,2],ymm4[3],ymm8[4,5],ymm4[6],ymm8[7]970; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm9 = [1,4,7,2,5,0,3,6]971; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm9, %ymm8972; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm5[0,1],ymm1[2],ymm5[3,4],ymm1[5],ymm5[6,7]973; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0],ymm10[1,2],ymm0[3],ymm10[4,5],ymm0[6],ymm10[7]974; AVX2-FCP-NEXT:    vpermps %ymm10, %ymm9, %ymm9975; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2],ymm3[3,4],ymm2[5],ymm3[6,7]976; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6],ymm4[7]977; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm3 = [2,5,0,3,6,1,4,7]978; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm3, %ymm2979; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]980; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]981; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm3, %ymm0982; AVX2-FCP-NEXT:    vmovaps %ymm7, 32(%rsi)983; AVX2-FCP-NEXT:    vmovaps %ymm6, (%rsi)984; AVX2-FCP-NEXT:    vmovaps %ymm9, 32(%rdx)985; AVX2-FCP-NEXT:    vmovaps %ymm8, (%rdx)986; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)987; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rcx)988; AVX2-FCP-NEXT:    vzeroupper989; AVX2-FCP-NEXT:    retq990;991; AVX512-LABEL: load_i32_stride3_vf16:992; AVX512:       # %bb.0:993; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0994; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm1995; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm2996; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]997; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm3998; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]999; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41000; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1001; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31002; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1003; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51004; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1005; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31006; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1007; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01008; AVX512-NEXT:    vmovdqa64 %zmm4, (%rsi)1009; AVX512-NEXT:    vmovdqa64 %zmm5, (%rdx)1010; AVX512-NEXT:    vmovdqa64 %zmm0, (%rcx)1011; AVX512-NEXT:    vzeroupper1012; AVX512-NEXT:    retq1013;1014; AVX512-FCP-LABEL: load_i32_stride3_vf16:1015; AVX512-FCP:       # %bb.0:1016; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01017; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11018; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21019; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1020; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31021; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1022; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41023; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1024; AVX512-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31025; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1026; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51027; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1028; AVX512-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31029; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1030; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01031; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1032; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1033; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, (%rcx)1034; AVX512-FCP-NEXT:    vzeroupper1035; AVX512-FCP-NEXT:    retq1036;1037; AVX512DQ-LABEL: load_i32_stride3_vf16:1038; AVX512DQ:       # %bb.0:1039; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm01040; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm11041; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm21042; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1043; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31044; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1045; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41046; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1047; AVX512DQ-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31048; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1049; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51050; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1051; AVX512DQ-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31052; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1053; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01054; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rsi)1055; AVX512DQ-NEXT:    vmovdqa64 %zmm5, (%rdx)1056; AVX512DQ-NEXT:    vmovdqa64 %zmm0, (%rcx)1057; AVX512DQ-NEXT:    vzeroupper1058; AVX512DQ-NEXT:    retq1059;1060; AVX512DQ-FCP-LABEL: load_i32_stride3_vf16:1061; AVX512DQ-FCP:       # %bb.0:1062; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01063; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11064; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21065; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1066; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31067; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1068; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41069; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1070; AVX512DQ-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31071; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1072; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51073; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1074; AVX512DQ-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31075; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1076; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01077; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1078; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1079; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, (%rcx)1080; AVX512DQ-FCP-NEXT:    vzeroupper1081; AVX512DQ-FCP-NEXT:    retq1082;1083; AVX512BW-LABEL: load_i32_stride3_vf16:1084; AVX512BW:       # %bb.0:1085; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm01086; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm11087; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm21088; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1089; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31090; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1091; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41092; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1093; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31094; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1095; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51096; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1097; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31098; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1099; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01100; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rsi)1101; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%rdx)1102; AVX512BW-NEXT:    vmovdqa64 %zmm0, (%rcx)1103; AVX512BW-NEXT:    vzeroupper1104; AVX512BW-NEXT:    retq1105;1106; AVX512BW-FCP-LABEL: load_i32_stride3_vf16:1107; AVX512BW-FCP:       # %bb.0:1108; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01109; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11110; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21111; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1112; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31113; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1114; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41115; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1116; AVX512BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31117; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1118; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51119; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1120; AVX512BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31121; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1122; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01123; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1124; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1125; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rcx)1126; AVX512BW-FCP-NEXT:    vzeroupper1127; AVX512BW-FCP-NEXT:    retq1128;1129; AVX512DQ-BW-LABEL: load_i32_stride3_vf16:1130; AVX512DQ-BW:       # %bb.0:1131; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm01132; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm11133; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm21134; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1135; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31136; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1137; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41138; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1139; AVX512DQ-BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31140; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1141; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51142; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1143; AVX512DQ-BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31144; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1145; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01146; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%rsi)1147; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%rdx)1148; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, (%rcx)1149; AVX512DQ-BW-NEXT:    vzeroupper1150; AVX512DQ-BW-NEXT:    retq1151;1152; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf16:1153; AVX512DQ-BW-FCP:       # %bb.0:1154; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm01155; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm11156; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm21157; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1158; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31159; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm4 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1160; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm41161; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1162; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm0, %zmm1, %zmm31163; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm5 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1164; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm51165; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm3 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1166; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm1, %zmm0, %zmm31167; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm0 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1168; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm01169; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, (%rsi)1170; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, (%rdx)1171; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, (%rcx)1172; AVX512DQ-BW-FCP-NEXT:    vzeroupper1173; AVX512DQ-BW-FCP-NEXT:    retq1174  %wide.vec = load <48 x i32>, ptr %in.vec, align 641175  %strided.vec0 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <16 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21, i32 24, i32 27, i32 30, i32 33, i32 36, i32 39, i32 42, i32 45>1176  %strided.vec1 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <16 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22, i32 25, i32 28, i32 31, i32 34, i32 37, i32 40, i32 43, i32 46>1177  %strided.vec2 = shufflevector <48 x i32> %wide.vec, <48 x i32> poison, <16 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23, i32 26, i32 29, i32 32, i32 35, i32 38, i32 41, i32 44, i32 47>1178  store <16 x i32> %strided.vec0, ptr %out.vec0, align 641179  store <16 x i32> %strided.vec1, ptr %out.vec1, align 641180  store <16 x i32> %strided.vec2, ptr %out.vec2, align 641181  ret void1182}1183 1184define void @load_i32_stride3_vf32(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {1185; SSE-LABEL: load_i32_stride3_vf32:1186; SSE:       # %bb.0:1187; SSE-NEXT:    subq $392, %rsp # imm = 0x1881188; SSE-NEXT:    movaps 192(%rdi), %xmm41189; SSE-NEXT:    movaps 224(%rdi), %xmm31190; SSE-NEXT:    movaps 208(%rdi), %xmm141191; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1192; SSE-NEXT:    movaps 240(%rdi), %xmm71193; SSE-NEXT:    movaps 272(%rdi), %xmm101194; SSE-NEXT:    movaps 256(%rdi), %xmm91195; SSE-NEXT:    movaps (%rdi), %xmm131196; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1197; SSE-NEXT:    movaps 16(%rdi), %xmm81198; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1199; SSE-NEXT:    movaps 32(%rdi), %xmm111200; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1201; SSE-NEXT:    movaps 48(%rdi), %xmm21202; SSE-NEXT:    movaps 80(%rdi), %xmm121203; SSE-NEXT:    movaps 64(%rdi), %xmm51204; SSE-NEXT:    movaps %xmm5, %xmm01205; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm12[1,0]1206; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1207; SSE-NEXT:    movaps %xmm2, %xmm11208; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1209; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1210; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1211; SSE-NEXT:    movaps %xmm9, %xmm01212; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm10[1,0]1213; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1214; SSE-NEXT:    movaps %xmm7, %xmm11215; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1216; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1217; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1218; SSE-NEXT:    movaps %xmm8, %xmm01219; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm11[1,0]1220; SSE-NEXT:    movaps %xmm13, %xmm11221; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1222; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1223; SSE-NEXT:    movaps %xmm14, %xmm01224; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm3[1,0]1225; SSE-NEXT:    movaps %xmm3, %xmm131226; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1227; SSE-NEXT:    movaps %xmm4, %xmm11228; SSE-NEXT:    movaps %xmm4, %xmm111229; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1230; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1231; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1232; SSE-NEXT:    movaps 176(%rdi), %xmm11233; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1234; SSE-NEXT:    movaps 160(%rdi), %xmm01235; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1236; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]1237; SSE-NEXT:    movaps 144(%rdi), %xmm31238; SSE-NEXT:    movaps %xmm3, %xmm11239; SSE-NEXT:    movaps %xmm3, (%rsp) # 16-byte Spill1240; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1241; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1242; SSE-NEXT:    movaps 368(%rdi), %xmm11243; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1244; SSE-NEXT:    movaps 352(%rdi), %xmm01245; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1246; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]1247; SSE-NEXT:    movaps 336(%rdi), %xmm41248; SSE-NEXT:    movaps %xmm4, %xmm11249; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1250; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1251; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1252; SSE-NEXT:    movaps 128(%rdi), %xmm11253; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1254; SSE-NEXT:    movaps 112(%rdi), %xmm151255; SSE-NEXT:    movaps %xmm15, %xmm01256; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]1257; SSE-NEXT:    movaps 96(%rdi), %xmm11258; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1259; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1260; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1261; SSE-NEXT:    movaps 320(%rdi), %xmm11262; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1263; SSE-NEXT:    movaps 304(%rdi), %xmm61264; SSE-NEXT:    movaps %xmm6, %xmm01265; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]1266; SSE-NEXT:    movaps 288(%rdi), %xmm81267; SSE-NEXT:    movaps %xmm8, %xmm11268; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1269; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]1270; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1271; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1272; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,0],xmm5[0,0]1273; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,1],xmm12[2,3]1274; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm5[0,2]1275; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1276; SSE-NEXT:    movaps %xmm7, %xmm141277; SSE-NEXT:    movaps %xmm9, %xmm01278; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1279; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[1,0],xmm9[0,0]1280; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm10[2,3]1281; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,2],xmm0[0,2]1282; SSE-NEXT:    movaps %xmm11, %xmm101283; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1284; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[1,0],xmm0[0,0]1285; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm13[2,3]1286; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,2],xmm0[0,2]1287; SSE-NEXT:    movaps %xmm3, %xmm91288; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1289; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[1,0],xmm0[0,0]1290; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1291; SSE-NEXT:    # xmm0 = xmm0[3,1],mem[2,3]1292; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,2],xmm0[0,2]1293; SSE-NEXT:    movaps %xmm4, %xmm71294; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1295; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[1,0],xmm0[0,0]1296; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1297; SSE-NEXT:    # xmm0 = xmm0[3,1],mem[2,3]1298; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,2],xmm0[0,2]1299; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload1300; SSE-NEXT:    movaps %xmm4, %xmm111301; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,0],xmm15[0,0]1302; SSE-NEXT:    movaps %xmm15, %xmm01303; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Reload1304; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm12[2,3]1305; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,2]1306; SSE-NEXT:    movaps %xmm8, %xmm31307; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1308; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,0],xmm6[0,0]1309; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload1310; SSE-NEXT:    # xmm6 = xmm6[3,1],mem[2,3]1311; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm6[0,2]1312; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1313; SSE-NEXT:    pshufd {{.*#+}} xmm5 = xmm2[2,3,2,3]1314; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload1315; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,0],xmm0[0,0]1316; SSE-NEXT:    movaps %xmm0, %xmm131317; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload1318; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[3,1],xmm1[2,3]1319; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm13[0,2]1320; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill1321; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1322; SSE-NEXT:    # xmm13 = mem[1,1,1,1]1323; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1324; SSE-NEXT:    # xmm8 = mem[2,3,2,3]1325; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm13[0],xmm8[1],xmm13[1]1326; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload1327; SSE-NEXT:    # xmm8 = xmm8[0,1],mem[0,3]1328; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm0[1,1,1,1]1329; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm13[0],xmm5[1],xmm13[1]1330; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm1[0,3]1331; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1332; SSE-NEXT:    # xmm13 = mem[1,1,1,1]1333; SSE-NEXT:    pshufd $238, (%rsp), %xmm6 # 16-byte Folded Reload1334; SSE-NEXT:    # xmm6 = mem[2,3,2,3]1335; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm13[0],xmm6[1],xmm13[1]1336; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload1337; SSE-NEXT:    # xmm6 = xmm6[0,1],mem[0,3]1338; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm15[1,1,1,1]1339; SSE-NEXT:    pshufd {{.*#+}} xmm4 = xmm4[2,3,2,3]1340; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm13[0],xmm4[1],xmm13[1]1341; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm12[0,3]1342; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1343; SSE-NEXT:    # xmm15 = mem[1,1,1,1]1344; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1345; SSE-NEXT:    # xmm13 = mem[2,3,2,3]1346; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm15[0],xmm13[1],xmm15[1]1347; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload1348; SSE-NEXT:    # xmm13 = xmm13[0,1],mem[0,3]1349; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1350; SSE-NEXT:    # xmm0 = mem[1,1,1,1]1351; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1352; SSE-NEXT:    # xmm15 = mem[2,3,2,3]1353; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]1354; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload1355; SSE-NEXT:    # xmm15 = xmm15[0,1],mem[0,3]1356; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1357; SSE-NEXT:    # xmm0 = mem[1,1,1,1]1358; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1359; SSE-NEXT:    # xmm1 = mem[2,3,2,3]1360; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]1361; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload1362; SSE-NEXT:    # xmm1 = xmm1[0,1],mem[0,3]1363; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload1364; SSE-NEXT:    # xmm2 = mem[1,1,1,1]1365; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1366; SSE-NEXT:    # xmm0 = mem[2,3,2,3]1367; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]1368; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload1369; SSE-NEXT:    # xmm0 = xmm0[0,1],mem[0,3]1370; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1371; SSE-NEXT:    movaps %xmm2, 96(%rsi)1372; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1373; SSE-NEXT:    movaps %xmm2, 32(%rsi)1374; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1375; SSE-NEXT:    movaps %xmm2, 112(%rsi)1376; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1377; SSE-NEXT:    movaps %xmm2, 48(%rsi)1378; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1379; SSE-NEXT:    movaps %xmm2, 64(%rsi)1380; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1381; SSE-NEXT:    movaps %xmm2, (%rsi)1382; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1383; SSE-NEXT:    movaps %xmm2, 80(%rsi)1384; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1385; SSE-NEXT:    movaps %xmm2, 16(%rsi)1386; SSE-NEXT:    movaps %xmm3, 96(%rdx)1387; SSE-NEXT:    movaps %xmm11, 32(%rdx)1388; SSE-NEXT:    movaps %xmm7, 112(%rdx)1389; SSE-NEXT:    movaps %xmm9, 48(%rdx)1390; SSE-NEXT:    movaps %xmm10, 64(%rdx)1391; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1392; SSE-NEXT:    movaps %xmm2, (%rdx)1393; SSE-NEXT:    movaps %xmm14, 80(%rdx)1394; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload1395; SSE-NEXT:    movaps %xmm2, 16(%rdx)1396; SSE-NEXT:    movaps %xmm0, 96(%rcx)1397; SSE-NEXT:    movaps %xmm1, 112(%rcx)1398; SSE-NEXT:    movaps %xmm15, 64(%rcx)1399; SSE-NEXT:    movaps %xmm13, 80(%rcx)1400; SSE-NEXT:    movaps %xmm4, 32(%rcx)1401; SSE-NEXT:    movaps %xmm6, 48(%rcx)1402; SSE-NEXT:    movaps %xmm5, (%rcx)1403; SSE-NEXT:    movaps %xmm8, 16(%rcx)1404; SSE-NEXT:    addq $392, %rsp # imm = 0x1881405; SSE-NEXT:    retq1406;1407; AVX-LABEL: load_i32_stride3_vf32:1408; AVX:       # %bb.0:1409; AVX-NEXT:    subq $392, %rsp # imm = 0x1881410; AVX-NEXT:    vmovaps 256(%rdi), %ymm21411; AVX-NEXT:    vmovaps 224(%rdi), %ymm71412; AVX-NEXT:    vmovaps 192(%rdi), %ymm31413; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1414; AVX-NEXT:    vmovaps 352(%rdi), %ymm41415; AVX-NEXT:    vmovaps 320(%rdi), %ymm51416; AVX-NEXT:    vmovaps 288(%rdi), %ymm61417; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1418; AVX-NEXT:    vmovaps 160(%rdi), %ymm101419; AVX-NEXT:    vmovaps 128(%rdi), %ymm91420; AVX-NEXT:    vmovaps 96(%rdi), %ymm01421; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1422; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm9[1],ymm0[2,3],ymm9[4],ymm0[5,6],ymm9[7]1423; AVX-NEXT:    vmovaps 112(%rdi), %xmm11424; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm9[1,3],ymm1[6,5],ymm9[5,7]1425; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]1426; AVX-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm10[2,3,0,1]1427; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,0],ymm11[2,0],ymm10[5,4],ymm11[6,4]1428; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1429; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]1430; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]1431; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1432; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0],ymm5[1],ymm6[2,3],ymm5[4],ymm6[5,6],ymm5[7]1433; AVX-NEXT:    vmovaps 304(%rdi), %xmm11434; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm5[1,3],ymm1[6,5],ymm5[5,7]1435; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]1436; AVX-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm4[2,3,0,1]1437; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,0],ymm14[2,0],ymm4[5,4],ymm14[6,4]1438; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1439; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]1440; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]1441; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1442; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1443; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm7[1],ymm3[2,3],ymm7[4],ymm3[5,6],ymm7[7]1444; AVX-NEXT:    vmovaps 208(%rdi), %xmm11445; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm7[1,3],ymm1[6,5],ymm7[5,7]1446; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]1447; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1448; AVX-NEXT:    vperm2f128 {{.*#+}} ymm12 = ymm2[2,3,0,1]1449; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,0],ymm12[2,0],ymm2[5,4],ymm12[6,4]1450; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]1451; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]1452; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1453; AVX-NEXT:    vmovaps 32(%rdi), %ymm151454; AVX-NEXT:    vmovaps 16(%rdi), %xmm01455; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm15[1,3],ymm0[6,5],ymm15[5,7]1456; AVX-NEXT:    vmovaps (%rdi), %ymm21457; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0],ymm15[1],ymm2[2,3],ymm15[4],ymm2[5,6],ymm15[7]1458; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1459; AVX-NEXT:    vshufps {{.*#+}} ymm13 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]1460; AVX-NEXT:    vmovaps 64(%rdi), %ymm71461; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm7[2,3,0,1]1462; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm7[1,0],ymm0[2,0],ymm7[5,4],ymm0[6,4]1463; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[0,1,2,0,4,5,6,4]1464; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm8[6,7]1465; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1466; AVX-NEXT:    vmovups %ymm11, (%rsp) # 32-byte Spill1467; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm10[2,0],ymm11[3,0],ymm10[6,4],ymm11[7,4]1468; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm11[0,0],ymm8[2,0],ymm11[4,4],ymm8[6,4]1469; AVX-NEXT:    vmovaps 112(%rdi), %xmm131470; AVX-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm6 # 32-byte Folded Reload1471; AVX-NEXT:    # ymm6 = mem[0,1],ymm9[2],mem[3,4],ymm9[5],mem[6,7]1472; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,2],ymm13[0,3],ymm6[5,6],ymm13[4,7]1473; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,2,3,1,4,6,7,5]1474; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4],ymm8[5,6,7]1475; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1476; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm4[2,0],ymm14[3,0],ymm4[6,4],ymm14[7,4]1477; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm14[0,0],ymm6[2,0],ymm14[4,4],ymm6[6,4]1478; AVX-NEXT:    vmovaps 304(%rdi), %xmm81479; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1480; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]1481; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[1,2],ymm8[0,3],ymm10[5,6],ymm8[4,7]1482; AVX-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[0,2,3,1,4,6,7,5]1483; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3,4],ymm6[5,6,7]1484; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1485; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,0],ymm0[3,0],ymm7[6,4],ymm0[7,4]1486; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm0[0,0],ymm6[2,0],ymm0[4,4],ymm6[6,4]1487; AVX-NEXT:    vmovaps 16(%rdi), %xmm111488; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1],ymm15[2],ymm2[3,4],ymm15[5],ymm2[6,7]1489; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[1,2],ymm11[0,3],ymm4[5,6],ymm11[4,7]1490; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,2,3,1,4,6,7,5]1491; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3,4],ymm6[5,6,7]1492; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1493; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1494; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm1[2,0],ymm12[3,0],ymm1[6,4],ymm12[7,4]1495; AVX-NEXT:    vshufps {{.*#+}} ymm4 = ymm12[0,0],ymm4[2,0],ymm12[4,4],ymm4[6,4]1496; AVX-NEXT:    vmovaps 208(%rdi), %xmm101497; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1498; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1499; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]1500; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[1,2],ymm10[0,3],ymm6[5,6],ymm10[4,7]1501; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[0,2,3,1,4,6,7,5]1502; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3,4],ymm4[5,6,7]1503; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm6 # 32-byte Folded Reload1504; AVX-NEXT:    # ymm6 = ymm9[0,1],mem[2],ymm9[3,4],mem[5],ymm9[6,7]1505; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm13[1,0],ymm6[2,0],ymm13[5,4],ymm6[6,4]1506; AVX-NEXT:    vshufps {{.*#+}} ymm6 = ymm6[2,0],ymm9[0,3],ymm6[6,4],ymm9[4,7]1507; AVX-NEXT:    vmovups (%rsp), %ymm9 # 32-byte Reload1508; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload1509; AVX-NEXT:    # ymm9 = ymm9[0,1],mem[0,3],ymm9[4,5],mem[4,7]1510; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm9[5,6,7]1511; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm5[0,1],ymm3[2],ymm5[3,4],ymm3[5],ymm5[6,7]1512; AVX-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[1,0],ymm9[2,0],ymm8[5,4],ymm9[6,4]1513; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm8[2,0],ymm5[0,3],ymm8[6,4],ymm5[4,7]1514; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm8 # 32-byte Folded Reload1515; AVX-NEXT:    # ymm8 = ymm14[0,1],mem[0,3],ymm14[4,5],mem[4,7]1516; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm8[5,6,7]1517; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload1518; AVX-NEXT:    # ymm3 = ymm15[0,1],mem[2],ymm15[3,4],mem[5],ymm15[6,7]1519; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm11[1,0],ymm3[2,0],ymm11[5,4],ymm3[6,4]1520; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0],ymm15[0,3],ymm3[6,4],ymm15[4,7]1521; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,1],ymm7[0,3],ymm0[4,5],ymm7[4,7]1522; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3,4],ymm0[5,6,7]1523; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]1524; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,0],ymm1[2,0],ymm10[5,4],ymm1[6,4]1525; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0],ymm2[0,3],ymm1[6,4],ymm2[4,7]1526; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm2 # 32-byte Folded Reload1527; AVX-NEXT:    # ymm2 = ymm12[0,1],mem[0,3],ymm12[4,5],mem[4,7]1528; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]1529; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1530; AVX-NEXT:    vmovaps %ymm2, (%rsi)1531; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1532; AVX-NEXT:    vmovaps %ymm2, 64(%rsi)1533; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1534; AVX-NEXT:    vmovaps %ymm2, 96(%rsi)1535; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1536; AVX-NEXT:    vmovaps %ymm2, 32(%rsi)1537; AVX-NEXT:    vmovaps %ymm4, 64(%rdx)1538; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1539; AVX-NEXT:    vmovaps %ymm2, (%rdx)1540; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1541; AVX-NEXT:    vmovaps %ymm2, 96(%rdx)1542; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1543; AVX-NEXT:    vmovaps %ymm2, 32(%rdx)1544; AVX-NEXT:    vmovaps %ymm1, 64(%rcx)1545; AVX-NEXT:    vmovaps %ymm0, (%rcx)1546; AVX-NEXT:    vmovaps %ymm5, 96(%rcx)1547; AVX-NEXT:    vmovaps %ymm6, 32(%rcx)1548; AVX-NEXT:    addq $392, %rsp # imm = 0x1881549; AVX-NEXT:    vzeroupper1550; AVX-NEXT:    retq1551;1552; AVX2-LABEL: load_i32_stride3_vf32:1553; AVX2:       # %bb.0:1554; AVX2-NEXT:    subq $40, %rsp1555; AVX2-NEXT:    vmovaps 256(%rdi), %ymm151556; AVX2-NEXT:    vmovaps 224(%rdi), %ymm51557; AVX2-NEXT:    vmovaps 192(%rdi), %ymm31558; AVX2-NEXT:    vmovaps 352(%rdi), %ymm41559; AVX2-NEXT:    vmovaps 320(%rdi), %ymm81560; AVX2-NEXT:    vmovaps 288(%rdi), %ymm101561; AVX2-NEXT:    vmovaps 160(%rdi), %ymm131562; AVX2-NEXT:    vmovaps 128(%rdi), %ymm11563; AVX2-NEXT:    vmovaps (%rdi), %ymm61564; AVX2-NEXT:    vmovaps 32(%rdi), %ymm91565; AVX2-NEXT:    vmovaps 64(%rdi), %ymm71566; AVX2-NEXT:    vmovaps 96(%rdi), %ymm01567; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]1568; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm13[2],ymm11[3,4],ymm13[5],ymm11[6,7]1569; AVX2-NEXT:    vmovaps {{.*#+}} ymm12 = [0,3,6,1,4,7,2,5]1570; AVX2-NEXT:    vpermps %ymm11, %ymm12, %ymm21571; AVX2-NEXT:    vmovups %ymm2, (%rsp) # 32-byte Spill1572; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0],ymm8[1],ymm10[2,3],ymm8[4],ymm10[5,6],ymm8[7]1573; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm4[2],ymm11[3,4],ymm4[5],ymm11[6,7]1574; AVX2-NEXT:    vpermps %ymm11, %ymm12, %ymm21575; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1576; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm6[0],ymm9[1],ymm6[2,3],ymm9[4],ymm6[5,6],ymm9[7]1577; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm7[2],ymm11[3,4],ymm7[5],ymm11[6,7]1578; AVX2-NEXT:    vpermps %ymm11, %ymm12, %ymm21579; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1580; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm3[0],ymm5[1],ymm3[2,3],ymm5[4],ymm3[5,6],ymm5[7]1581; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]1582; AVX2-NEXT:    vpermps %ymm14, %ymm12, %ymm21583; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1584; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]1585; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0],ymm12[1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]1586; AVX2-NEXT:    vmovaps {{.*#+}} ymm2 = [1,4,7,2,5,0,3,6]1587; AVX2-NEXT:    vpermps %ymm12, %ymm2, %ymm111588; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1589; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0,1],ymm8[2],ymm10[3,4],ymm8[5],ymm10[6,7]1590; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm4[0],ymm11[1,2],ymm4[3],ymm11[4,5],ymm4[6],ymm11[7]1591; AVX2-NEXT:    vpermps %ymm11, %ymm2, %ymm111592; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm6[0,1],ymm9[2],ymm6[3,4],ymm9[5],ymm6[6,7]1593; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm7[0],ymm12[1,2],ymm7[3],ymm12[4,5],ymm7[6],ymm12[7]1594; AVX2-NEXT:    vpermps %ymm12, %ymm2, %ymm121595; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]1596; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3],ymm14[4,5],ymm15[6],ymm14[7]1597; AVX2-NEXT:    vpermps %ymm14, %ymm2, %ymm21598; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]1599; AVX2-NEXT:    vmovaps {{.*#+}} ymm1 = [2,5,0,3,6,u,u,u]1600; AVX2-NEXT:    vpermps %ymm0, %ymm1, %ymm01601; AVX2-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,0,3,4,5,4,7]1602; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,0,3]1603; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]1604; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm10[2],ymm8[3,4],ymm10[5],ymm8[6,7]1605; AVX2-NEXT:    vpermps %ymm8, %ymm1, %ymm81606; AVX2-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,1,0,3,4,5,4,7]1607; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]1608; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3,4],ymm4[5,6,7]1609; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1],ymm6[2],ymm9[3,4],ymm6[5],ymm9[6,7]1610; AVX2-NEXT:    vpermps %ymm6, %ymm1, %ymm61611; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,0,3,4,5,4,7]1612; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]1613; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7]1614; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2],ymm5[3,4],ymm3[5],ymm5[6,7]1615; AVX2-NEXT:    vpermps %ymm3, %ymm1, %ymm11616; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm15[0,1,0,3,4,5,4,7]1617; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]1618; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]1619; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1620; AVX2-NEXT:    vmovaps %ymm3, 64(%rsi)1621; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1622; AVX2-NEXT:    vmovaps %ymm3, (%rsi)1623; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1624; AVX2-NEXT:    vmovaps %ymm3, 96(%rsi)1625; AVX2-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload1626; AVX2-NEXT:    vmovaps %ymm3, 32(%rsi)1627; AVX2-NEXT:    vmovaps %ymm2, 64(%rdx)1628; AVX2-NEXT:    vmovaps %ymm12, (%rdx)1629; AVX2-NEXT:    vmovaps %ymm11, 96(%rdx)1630; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1631; AVX2-NEXT:    vmovaps %ymm2, 32(%rdx)1632; AVX2-NEXT:    vmovaps %ymm1, 64(%rcx)1633; AVX2-NEXT:    vmovaps %ymm6, (%rcx)1634; AVX2-NEXT:    vmovaps %ymm4, 96(%rcx)1635; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)1636; AVX2-NEXT:    addq $40, %rsp1637; AVX2-NEXT:    vzeroupper1638; AVX2-NEXT:    retq1639;1640; AVX2-FP-LABEL: load_i32_stride3_vf32:1641; AVX2-FP:       # %bb.0:1642; AVX2-FP-NEXT:    subq $40, %rsp1643; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm151644; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm51645; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm31646; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm41647; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm81648; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm101649; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm131650; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm11651; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm61652; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm91653; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm71654; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm01655; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0],ymm1[1],ymm0[2,3],ymm1[4],ymm0[5,6],ymm1[7]1656; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm13[2],ymm11[3,4],ymm13[5],ymm11[6,7]1657; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm12 = [0,3,6,1,4,7,2,5]1658; AVX2-FP-NEXT:    vpermps %ymm11, %ymm12, %ymm21659; AVX2-FP-NEXT:    vmovups %ymm2, (%rsp) # 32-byte Spill1660; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0],ymm8[1],ymm10[2,3],ymm8[4],ymm10[5,6],ymm8[7]1661; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm4[2],ymm11[3,4],ymm4[5],ymm11[6,7]1662; AVX2-FP-NEXT:    vpermps %ymm11, %ymm12, %ymm21663; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1664; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm6[0],ymm9[1],ymm6[2,3],ymm9[4],ymm6[5,6],ymm9[7]1665; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm7[2],ymm11[3,4],ymm7[5],ymm11[6,7]1666; AVX2-FP-NEXT:    vpermps %ymm11, %ymm12, %ymm21667; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1668; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm3[0],ymm5[1],ymm3[2,3],ymm5[4],ymm3[5,6],ymm5[7]1669; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]1670; AVX2-FP-NEXT:    vpermps %ymm14, %ymm12, %ymm21671; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1672; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]1673; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0],ymm12[1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]1674; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm2 = [1,4,7,2,5,0,3,6]1675; AVX2-FP-NEXT:    vpermps %ymm12, %ymm2, %ymm111676; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1677; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0,1],ymm8[2],ymm10[3,4],ymm8[5],ymm10[6,7]1678; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm4[0],ymm11[1,2],ymm4[3],ymm11[4,5],ymm4[6],ymm11[7]1679; AVX2-FP-NEXT:    vpermps %ymm11, %ymm2, %ymm111680; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm6[0,1],ymm9[2],ymm6[3,4],ymm9[5],ymm6[6,7]1681; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm7[0],ymm12[1,2],ymm7[3],ymm12[4,5],ymm7[6],ymm12[7]1682; AVX2-FP-NEXT:    vpermps %ymm12, %ymm2, %ymm121683; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm3[0,1],ymm5[2],ymm3[3,4],ymm5[5],ymm3[6,7]1684; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3],ymm14[4,5],ymm15[6],ymm14[7]1685; AVX2-FP-NEXT:    vpermps %ymm14, %ymm2, %ymm21686; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]1687; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm1 = [2,5,0,3,6,u,u,u]1688; AVX2-FP-NEXT:    vpermps %ymm0, %ymm1, %ymm01689; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm13 = ymm13[0,1,0,3,4,5,4,7]1690; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,0,3]1691; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm13[5,6,7]1692; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm10[2],ymm8[3,4],ymm10[5],ymm8[6,7]1693; AVX2-FP-NEXT:    vpermps %ymm8, %ymm1, %ymm81694; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[0,1,0,3,4,5,4,7]1695; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]1696; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3,4],ymm4[5,6,7]1697; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1],ymm6[2],ymm9[3,4],ymm6[5],ymm9[6,7]1698; AVX2-FP-NEXT:    vpermps %ymm6, %ymm1, %ymm61699; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,0,3,4,5,4,7]1700; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]1701; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7]1702; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2],ymm5[3,4],ymm3[5],ymm5[6,7]1703; AVX2-FP-NEXT:    vpermps %ymm3, %ymm1, %ymm11704; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm15[0,1,0,3,4,5,4,7]1705; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]1706; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm3[5,6,7]1707; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1708; AVX2-FP-NEXT:    vmovaps %ymm3, 64(%rsi)1709; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1710; AVX2-FP-NEXT:    vmovaps %ymm3, (%rsi)1711; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload1712; AVX2-FP-NEXT:    vmovaps %ymm3, 96(%rsi)1713; AVX2-FP-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload1714; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rsi)1715; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rdx)1716; AVX2-FP-NEXT:    vmovaps %ymm12, (%rdx)1717; AVX2-FP-NEXT:    vmovaps %ymm11, 96(%rdx)1718; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1719; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rdx)1720; AVX2-FP-NEXT:    vmovaps %ymm1, 64(%rcx)1721; AVX2-FP-NEXT:    vmovaps %ymm6, (%rcx)1722; AVX2-FP-NEXT:    vmovaps %ymm4, 96(%rcx)1723; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)1724; AVX2-FP-NEXT:    addq $40, %rsp1725; AVX2-FP-NEXT:    vzeroupper1726; AVX2-FP-NEXT:    retq1727;1728; AVX2-FCP-LABEL: load_i32_stride3_vf32:1729; AVX2-FCP:       # %bb.0:1730; AVX2-FCP-NEXT:    subq $72, %rsp1731; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm01732; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm21733; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1734; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm11735; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm41736; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm61737; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm71738; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm131739; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm141740; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm81741; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm91742; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm101743; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm151744; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0],ymm14[1],ymm15[2,3],ymm14[4],ymm15[5,6],ymm14[7]1745; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm13[2],ymm3[3,4],ymm13[5],ymm3[6,7]1746; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm12 = [0,3,6,1,4,7,2,5]1747; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm12, %ymm31748; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1749; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0],ymm6[1],ymm7[2,3],ymm6[4],ymm7[5,6],ymm6[7]1750; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm4[2],ymm5[3,4],ymm4[5],ymm5[6,7]1751; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm12, %ymm31752; AVX2-FCP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill1753; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm8[0],ymm9[1],ymm8[2,3],ymm9[4],ymm8[5,6],ymm9[7]1754; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm10[2],ymm11[3,4],ymm10[5],ymm11[6,7]1755; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm12, %ymm31756; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1757; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1758; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm0[2],ymm3[3,4],ymm0[5],ymm3[6,7]1759; AVX2-FCP-NEXT:    vmovaps %ymm0, %ymm21760; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm12, %ymm01761; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1762; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm15[0,1],ymm14[2],ymm15[3,4],ymm14[5],ymm15[6,7]1763; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0],ymm12[1,2],ymm13[3],ymm12[4,5],ymm13[6],ymm12[7]1764; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm3 = [1,4,7,2,5,0,3,6]1765; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm3, %ymm51766; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill1767; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm6[2],ymm7[3,4],ymm6[5],ymm7[6,7]1768; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm4[0],ymm5[1,2],ymm4[3],ymm5[4,5],ymm4[6],ymm5[7]1769; AVX2-FCP-NEXT:    vpermps %ymm5, %ymm3, %ymm51770; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm8[0,1],ymm9[2],ymm8[3,4],ymm9[5],ymm8[6,7]1771; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm10[0],ymm11[1,2],ymm10[3],ymm11[4,5],ymm10[6],ymm11[7]1772; AVX2-FCP-NEXT:    vpermps %ymm11, %ymm3, %ymm111773; AVX2-FCP-NEXT:    vmovaps %ymm1, %ymm01774; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload1775; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1],ymm1[2],ymm0[3,4],ymm1[5],ymm0[6,7]1776; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm2[0],ymm12[1,2],ymm2[3],ymm12[4,5],ymm2[6],ymm12[7]1777; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm3, %ymm31778; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0,1],ymm15[2],ymm14[3,4],ymm15[5],ymm14[6,7]1779; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm13[1],ymm12[2,3],ymm13[4],ymm12[5,6],ymm13[7]1780; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2],ymm6[3,4],ymm7[5],ymm6[6,7]1781; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0],ymm4[1],ymm6[2,3],ymm4[4],ymm6[5,6],ymm4[7]1782; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0,1],ymm8[2],ymm9[3,4],ymm8[5],ymm9[6,7]1783; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm10[1],ymm6[2,3],ymm10[4],ymm6[5,6],ymm10[7]1784; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm0[2],ymm1[3,4],ymm0[5],ymm1[6,7]1785; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]1786; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm2 = [2,5,0,3,6,1,4,7]1787; AVX2-FCP-NEXT:    vpermps %ymm12, %ymm2, %ymm71788; AVX2-FCP-NEXT:    vpermps %ymm4, %ymm2, %ymm41789; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm2, %ymm61790; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm2, %ymm11791; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1792; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rsi)1793; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1794; AVX2-FCP-NEXT:    vmovaps %ymm2, (%rsi)1795; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm2 # 32-byte Reload1796; AVX2-FCP-NEXT:    vmovaps %ymm2, 96(%rsi)1797; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload1798; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rsi)1799; AVX2-FCP-NEXT:    vmovaps %ymm3, 64(%rdx)1800; AVX2-FCP-NEXT:    vmovaps %ymm11, (%rdx)1801; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rdx)1802; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload1803; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rdx)1804; AVX2-FCP-NEXT:    vmovaps %ymm1, 64(%rcx)1805; AVX2-FCP-NEXT:    vmovaps %ymm6, (%rcx)1806; AVX2-FCP-NEXT:    vmovaps %ymm4, 96(%rcx)1807; AVX2-FCP-NEXT:    vmovaps %ymm7, 32(%rcx)1808; AVX2-FCP-NEXT:    addq $72, %rsp1809; AVX2-FCP-NEXT:    vzeroupper1810; AVX2-FCP-NEXT:    retq1811;1812; AVX512-LABEL: load_i32_stride3_vf32:1813; AVX512:       # %bb.0:1814; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm01815; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm11816; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm21817; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm31818; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm41819; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm51820; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1821; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm71822; AVX512-NEXT:    vpermt2d %zmm1, %zmm6, %zmm71823; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1824; AVX512-NEXT:    vpermt2d %zmm0, %zmm8, %zmm71825; AVX512-NEXT:    vpermi2d %zmm3, %zmm2, %zmm61826; AVX512-NEXT:    vpermt2d %zmm4, %zmm8, %zmm61827; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1828; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm91829; AVX512-NEXT:    vpermt2d %zmm5, %zmm8, %zmm91830; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1831; AVX512-NEXT:    vpermt2d %zmm0, %zmm10, %zmm91832; AVX512-NEXT:    vpermi2d %zmm2, %zmm3, %zmm81833; AVX512-NEXT:    vpermt2d %zmm4, %zmm10, %zmm81834; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1835; AVX512-NEXT:    vpermt2d %zmm1, %zmm10, %zmm51836; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1837; AVX512-NEXT:    vpermt2d %zmm0, %zmm1, %zmm51838; AVX512-NEXT:    vpermt2d %zmm3, %zmm10, %zmm21839; AVX512-NEXT:    vpermt2d %zmm4, %zmm1, %zmm21840; AVX512-NEXT:    vmovdqa64 %zmm7, 64(%rsi)1841; AVX512-NEXT:    vmovdqa64 %zmm6, (%rsi)1842; AVX512-NEXT:    vmovdqa64 %zmm9, 64(%rdx)1843; AVX512-NEXT:    vmovdqa64 %zmm8, (%rdx)1844; AVX512-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1845; AVX512-NEXT:    vmovdqa64 %zmm2, (%rcx)1846; AVX512-NEXT:    vzeroupper1847; AVX512-NEXT:    retq1848;1849; AVX512-FCP-LABEL: load_i32_stride3_vf32:1850; AVX512-FCP:       # %bb.0:1851; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm01852; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm11853; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm21854; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm31855; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm41856; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm51857; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1858; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm71859; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm71860; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1861; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm71862; AVX512-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm61863; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm61864; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1865; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm91866; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm91867; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1868; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm91869; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm81870; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm81871; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1872; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm10, %zmm51873; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1874; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm51875; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm21876; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm1, %zmm21877; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rsi)1878; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, (%rsi)1879; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rdx)1880; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%rdx)1881; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1882; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)1883; AVX512-FCP-NEXT:    vzeroupper1884; AVX512-FCP-NEXT:    retq1885;1886; AVX512DQ-LABEL: load_i32_stride3_vf32:1887; AVX512DQ:       # %bb.0:1888; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm01889; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm11890; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm21891; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm31892; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm41893; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm51894; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1895; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm71896; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm6, %zmm71897; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1898; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm8, %zmm71899; AVX512DQ-NEXT:    vpermi2d %zmm3, %zmm2, %zmm61900; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm8, %zmm61901; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1902; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm91903; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm8, %zmm91904; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1905; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm10, %zmm91906; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm3, %zmm81907; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm10, %zmm81908; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1909; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm10, %zmm51910; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1911; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm1, %zmm51912; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm10, %zmm21913; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm1, %zmm21914; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 64(%rsi)1915; AVX512DQ-NEXT:    vmovdqa64 %zmm6, (%rsi)1916; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 64(%rdx)1917; AVX512DQ-NEXT:    vmovdqa64 %zmm8, (%rdx)1918; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1919; AVX512DQ-NEXT:    vmovdqa64 %zmm2, (%rcx)1920; AVX512DQ-NEXT:    vzeroupper1921; AVX512DQ-NEXT:    retq1922;1923; AVX512DQ-FCP-LABEL: load_i32_stride3_vf32:1924; AVX512DQ-FCP:       # %bb.0:1925; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm01926; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm11927; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm21928; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm31929; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm41930; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm51931; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1932; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm71933; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm71934; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1935; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm71936; AVX512DQ-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm61937; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm61938; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1939; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm91940; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm91941; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1942; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm91943; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm81944; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm81945; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1946; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm10, %zmm51947; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1948; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm51949; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm21950; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm1, %zmm21951; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rsi)1952; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, (%rsi)1953; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rdx)1954; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%rdx)1955; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1956; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)1957; AVX512DQ-FCP-NEXT:    vzeroupper1958; AVX512DQ-FCP-NEXT:    retq1959;1960; AVX512BW-LABEL: load_i32_stride3_vf32:1961; AVX512BW:       # %bb.0:1962; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm01963; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm11964; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm21965; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm31966; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm41967; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm51968; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]1969; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm71970; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm6, %zmm71971; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]1972; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm71973; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm61974; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm61975; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]1976; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm91977; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm91978; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]1979; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm91980; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm81981; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm81982; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]1983; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm10, %zmm51984; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]1985; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm51986; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm10, %zmm21987; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm1, %zmm21988; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rsi)1989; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%rsi)1990; AVX512BW-NEXT:    vmovdqa64 %zmm9, 64(%rdx)1991; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rdx)1992; AVX512BW-NEXT:    vmovdqa64 %zmm5, 64(%rcx)1993; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rcx)1994; AVX512BW-NEXT:    vzeroupper1995; AVX512BW-NEXT:    retq1996;1997; AVX512BW-FCP-LABEL: load_i32_stride3_vf32:1998; AVX512BW-FCP:       # %bb.0:1999; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm02000; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm12001; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm22002; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm32003; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm42004; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm52005; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]2006; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm72007; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm72008; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]2009; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm72010; AVX512BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm62011; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm62012; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]2013; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm92014; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm92015; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]2016; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm92017; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm82018; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm82019; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]2020; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm10, %zmm52021; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]2022; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm52023; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm22024; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm1, %zmm22025; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rsi)2026; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rsi)2027; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rdx)2028; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rdx)2029; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)2030; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)2031; AVX512BW-FCP-NEXT:    vzeroupper2032; AVX512BW-FCP-NEXT:    retq2033;2034; AVX512DQ-BW-LABEL: load_i32_stride3_vf32:2035; AVX512DQ-BW:       # %bb.0:2036; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm02037; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm12038; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm22039; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm32040; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm42041; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm52042; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]2043; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm72044; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm6, %zmm72045; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]2046; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm8, %zmm72047; AVX512DQ-BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm62048; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm8, %zmm62049; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]2050; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm92051; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm8, %zmm92052; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]2053; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm10, %zmm92054; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm82055; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm10, %zmm82056; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]2057; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm10, %zmm52058; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]2059; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm1, %zmm52060; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm10, %zmm22061; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm1, %zmm22062; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 64(%rsi)2063; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, (%rsi)2064; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 64(%rdx)2065; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, (%rdx)2066; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 64(%rcx)2067; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rcx)2068; AVX512DQ-BW-NEXT:    vzeroupper2069; AVX512DQ-BW-NEXT:    retq2070;2071; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf32:2072; AVX512DQ-BW-FCP:       # %bb.0:2073; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm02074; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm12075; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm22076; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm32077; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm42078; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm52079; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm6 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]2080; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm72081; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm6, %zmm72082; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]2083; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm8, %zmm72084; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm3, %zmm2, %zmm62085; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm8, %zmm62086; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm8 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]2087; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm92088; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm8, %zmm92089; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]2090; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm10, %zmm92091; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm3, %zmm82092; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm10, %zmm82093; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm10 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]2094; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm10, %zmm52095; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm1 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]2096; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm1, %zmm52097; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm10, %zmm22098; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm1, %zmm22099; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rsi)2100; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rsi)2101; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 64(%rdx)2102; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rdx)2103; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 64(%rcx)2104; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)2105; AVX512DQ-BW-FCP-NEXT:    vzeroupper2106; AVX512DQ-BW-FCP-NEXT:    retq2107  %wide.vec = load <96 x i32>, ptr %in.vec, align 642108  %strided.vec0 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <32 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21, i32 24, i32 27, i32 30, i32 33, i32 36, i32 39, i32 42, i32 45, i32 48, i32 51, i32 54, i32 57, i32 60, i32 63, i32 66, i32 69, i32 72, i32 75, i32 78, i32 81, i32 84, i32 87, i32 90, i32 93>2109  %strided.vec1 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <32 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22, i32 25, i32 28, i32 31, i32 34, i32 37, i32 40, i32 43, i32 46, i32 49, i32 52, i32 55, i32 58, i32 61, i32 64, i32 67, i32 70, i32 73, i32 76, i32 79, i32 82, i32 85, i32 88, i32 91, i32 94>2110  %strided.vec2 = shufflevector <96 x i32> %wide.vec, <96 x i32> poison, <32 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23, i32 26, i32 29, i32 32, i32 35, i32 38, i32 41, i32 44, i32 47, i32 50, i32 53, i32 56, i32 59, i32 62, i32 65, i32 68, i32 71, i32 74, i32 77, i32 80, i32 83, i32 86, i32 89, i32 92, i32 95>2111  store <32 x i32> %strided.vec0, ptr %out.vec0, align 642112  store <32 x i32> %strided.vec1, ptr %out.vec1, align 642113  store <32 x i32> %strided.vec2, ptr %out.vec2, align 642114  ret void2115}2116 2117define void @load_i32_stride3_vf64(ptr %in.vec, ptr %out.vec0, ptr %out.vec1, ptr %out.vec2) nounwind {2118; SSE-LABEL: load_i32_stride3_vf64:2119; SSE:       # %bb.0:2120; SSE-NEXT:    subq $1112, %rsp # imm = 0x4582121; SSE-NEXT:    movaps 624(%rdi), %xmm22122; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2123; SSE-NEXT:    movaps 656(%rdi), %xmm42124; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2125; SSE-NEXT:    movaps 640(%rdi), %xmm102126; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2127; SSE-NEXT:    movaps 432(%rdi), %xmm62128; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2129; SSE-NEXT:    movaps 464(%rdi), %xmm52130; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2131; SSE-NEXT:    movaps 448(%rdi), %xmm112132; SSE-NEXT:    movaps %xmm11, (%rsp) # 16-byte Spill2133; SSE-NEXT:    movaps 240(%rdi), %xmm72134; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2135; SSE-NEXT:    movaps 272(%rdi), %xmm32136; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2137; SSE-NEXT:    movaps 256(%rdi), %xmm132138; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2139; SSE-NEXT:    movaps 48(%rdi), %xmm92140; SSE-NEXT:    movaps 80(%rdi), %xmm12141; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2142; SSE-NEXT:    movaps 64(%rdi), %xmm122143; SSE-NEXT:    movaps %xmm12, %xmm02144; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2145; SSE-NEXT:    movaps %xmm9, %xmm12146; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2147; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2148; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2149; SSE-NEXT:    movaps %xmm13, %xmm02150; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm3[1,0]2151; SSE-NEXT:    movaps %xmm7, %xmm12152; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2153; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2154; SSE-NEXT:    movaps %xmm11, %xmm02155; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm5[1,0]2156; SSE-NEXT:    movaps %xmm6, %xmm12157; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2158; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2159; SSE-NEXT:    movaps %xmm10, %xmm02160; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm4[1,0]2161; SSE-NEXT:    movaps %xmm2, %xmm12162; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2163; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2164; SSE-NEXT:    movaps 16(%rdi), %xmm02165; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2166; SSE-NEXT:    movaps 32(%rdi), %xmm12167; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2168; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2169; SSE-NEXT:    movaps (%rdi), %xmm12170; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2171; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2172; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2173; SSE-NEXT:    movaps 224(%rdi), %xmm12174; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2175; SSE-NEXT:    movaps 208(%rdi), %xmm02176; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2177; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2178; SSE-NEXT:    movaps 192(%rdi), %xmm12179; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2180; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2181; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2182; SSE-NEXT:    movaps 416(%rdi), %xmm12183; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2184; SSE-NEXT:    movaps 400(%rdi), %xmm02185; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2186; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2187; SSE-NEXT:    movaps 384(%rdi), %xmm12188; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2189; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2190; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2191; SSE-NEXT:    movaps 608(%rdi), %xmm12192; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2193; SSE-NEXT:    movaps 592(%rdi), %xmm02194; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2195; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2196; SSE-NEXT:    movaps 576(%rdi), %xmm12197; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2198; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2199; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2200; SSE-NEXT:    movaps 176(%rdi), %xmm102201; SSE-NEXT:    movaps 160(%rdi), %xmm82202; SSE-NEXT:    movaps %xmm8, %xmm02203; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm10[1,0]2204; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2205; SSE-NEXT:    movaps 144(%rdi), %xmm22206; SSE-NEXT:    movaps %xmm2, %xmm12207; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2208; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2209; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2210; SSE-NEXT:    movaps 368(%rdi), %xmm12211; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2212; SSE-NEXT:    movaps 352(%rdi), %xmm152213; SSE-NEXT:    movaps %xmm15, %xmm02214; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2215; SSE-NEXT:    movaps 336(%rdi), %xmm142216; SSE-NEXT:    movaps %xmm14, %xmm12217; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2218; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2219; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2220; SSE-NEXT:    movaps 560(%rdi), %xmm12221; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2222; SSE-NEXT:    movaps 544(%rdi), %xmm02223; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2224; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2225; SSE-NEXT:    movaps 528(%rdi), %xmm12226; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2227; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2228; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2229; SSE-NEXT:    movaps 752(%rdi), %xmm12230; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2231; SSE-NEXT:    movaps 736(%rdi), %xmm02232; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2233; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[2,0],xmm1[1,0]2234; SSE-NEXT:    movaps 720(%rdi), %xmm12235; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2236; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,3],xmm0[0,2]2237; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2238; SSE-NEXT:    movaps 128(%rdi), %xmm62239; SSE-NEXT:    movaps 112(%rdi), %xmm42240; SSE-NEXT:    movaps %xmm4, %xmm12241; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm6[1,0]2242; SSE-NEXT:    movaps 96(%rdi), %xmm32243; SSE-NEXT:    movaps %xmm3, %xmm72244; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2245; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,3],xmm1[0,2]2246; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2247; SSE-NEXT:    movaps 320(%rdi), %xmm132248; SSE-NEXT:    movaps 304(%rdi), %xmm112249; SSE-NEXT:    movaps %xmm11, %xmm12250; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm13[1,0]2251; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2252; SSE-NEXT:    movaps 288(%rdi), %xmm52253; SSE-NEXT:    movaps %xmm5, %xmm72254; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2255; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,3],xmm1[0,2]2256; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2257; SSE-NEXT:    movaps 512(%rdi), %xmm02258; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2259; SSE-NEXT:    movaps 496(%rdi), %xmm12260; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2261; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[1,0]2262; SSE-NEXT:    movaps 480(%rdi), %xmm72263; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2264; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,3],xmm1[0,2]2265; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2266; SSE-NEXT:    movaps 704(%rdi), %xmm72267; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2268; SSE-NEXT:    movaps 688(%rdi), %xmm12269; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2270; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm7[1,0]2271; SSE-NEXT:    movaps 672(%rdi), %xmm72272; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2273; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,3],xmm1[0,2]2274; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2275; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2276; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[1,0],xmm12[0,0]2277; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload2278; SSE-NEXT:    # xmm12 = xmm12[3,1],mem[2,3]2279; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,2],xmm12[0,2]2280; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2281; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2282; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,0],xmm8[0,0]2283; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[3,1],xmm10[2,3]2284; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm8[0,2]2285; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2286; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2287; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,0],xmm4[0,0]2288; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[3,1],xmm6[2,3]2289; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm4[0,2]2290; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2291; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2292; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2293; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[1,0],xmm1[0,0]2294; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2295; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2296; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,2],xmm1[0,2]2297; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2298; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Reload2299; SSE-NEXT:    movaps %xmm9, %xmm02300; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload2301; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm3[0,0]2302; SSE-NEXT:    movaps %xmm3, %xmm12303; SSE-NEXT:    movaps %xmm3, %xmm122304; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2305; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2306; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2307; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2308; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2309; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[1,0],xmm15[0,0]2310; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload2311; SSE-NEXT:    # xmm15 = xmm15[3,1],mem[2,3]2312; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,2],xmm15[0,2]2313; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2314; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2315; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,0],xmm11[0,0]2316; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[3,1],xmm13[2,3]2317; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm11[0,2]2318; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2319; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2320; SSE-NEXT:    movaps (%rsp), %xmm1 # 16-byte Reload2321; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]2322; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2323; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2324; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2325; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2326; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload2327; SSE-NEXT:    movaps %xmm7, %xmm02328; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2329; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm4[0,0]2330; SSE-NEXT:    movaps %xmm4, %xmm12331; SSE-NEXT:    movaps %xmm4, %xmm82332; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2333; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2334; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2335; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2336; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2337; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2338; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]2339; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2340; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2341; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2342; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2343; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2344; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2345; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]2346; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload2347; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm5[2,3]2348; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2349; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2350; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2351; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2352; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]2353; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2354; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2355; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2356; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2357; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2358; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2359; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm14[0,0]2360; SSE-NEXT:    movaps %xmm14, %xmm12361; SSE-NEXT:    movaps %xmm14, %xmm32362; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2363; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2364; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2365; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2366; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2367; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2368; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,0],xmm1[0,0]2369; SSE-NEXT:    shufps $231, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2370; SSE-NEXT:    # xmm1 = xmm1[3,1],mem[2,3]2371; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,2],xmm1[0,2]2372; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2373; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload2374; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload2375; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[1,0],xmm1[0,0]2376; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2377; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm4[2,3]2378; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,2],xmm1[0,2]2379; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload2380; SSE-NEXT:    pshufd {{.*#+}} xmm10 = xmm2[2,3,2,3]2381; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2382; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,0],xmm0[0,0]2383; SSE-NEXT:    movaps %xmm2, %xmm112384; SSE-NEXT:    movaps %xmm0, %xmm12385; SSE-NEXT:    movaps %xmm0, %xmm22386; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2387; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,1],xmm0[2,3]2388; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm1[0,2]2389; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2390; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[1,1,1,1]2391; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm1[0],xmm10[1],xmm1[1]2392; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm0[0,3]2393; SSE-NEXT:    movaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2394; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2395; SSE-NEXT:    # xmm1 = mem[1,1,1,1]2396; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2397; SSE-NEXT:    # xmm0 = mem[2,3,2,3]2398; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]2399; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2400; SSE-NEXT:    # xmm0 = xmm0[0,1],mem[0,3]2401; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill2402; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2403; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2404; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Folded Reload2405; SSE-NEXT:    # xmm15 = mem[2,3,2,3]2406; SSE-NEXT:    punpckldq {{.*#+}} xmm15 = xmm15[0],xmm0[0],xmm15[1],xmm0[1]2407; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm6[0,3]2408; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2409; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2410; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload2411; SSE-NEXT:    # xmm13 = mem[2,3,2,3]2412; SSE-NEXT:    punpckldq {{.*#+}} xmm13 = xmm13[0],xmm0[0],xmm13[1],xmm0[1]2413; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm13 # 16-byte Folded Reload2414; SSE-NEXT:    # xmm13 = xmm13[0,1],mem[0,3]2415; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm12[1,1,1,1]2416; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm9[2,3,2,3]2417; SSE-NEXT:    punpckldq {{.*#+}} xmm12 = xmm12[0],xmm0[0],xmm12[1],xmm0[1]2418; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm12 # 16-byte Folded Reload2419; SSE-NEXT:    # xmm12 = xmm12[0,1],mem[0,3]2420; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2421; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2422; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload2423; SSE-NEXT:    # xmm11 = mem[2,3,2,3]2424; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm0[0],xmm11[1],xmm0[1]2425; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload2426; SSE-NEXT:    # xmm11 = xmm11[0,1],mem[0,3]2427; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2428; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2429; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload2430; SSE-NEXT:    # xmm10 = mem[2,3,2,3]2431; SSE-NEXT:    punpckldq {{.*#+}} xmm10 = xmm10[0],xmm0[0],xmm10[1],xmm0[1]2432; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload2433; SSE-NEXT:    # xmm10 = xmm10[0,1],mem[0,3]2434; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2435; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2436; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload2437; SSE-NEXT:    # xmm9 = mem[2,3,2,3]2438; SSE-NEXT:    punpckldq {{.*#+}} xmm9 = xmm9[0],xmm0[0],xmm9[1],xmm0[1]2439; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9 # 16-byte Folded Reload2440; SSE-NEXT:    # xmm9 = xmm9[0,1],mem[0,3]2441; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[1,1,1,1]2442; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm7[2,3,2,3]2443; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm0[0],xmm8[1],xmm0[1]2444; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Folded Reload2445; SSE-NEXT:    # xmm8 = xmm8[0,1],mem[0,3]2446; SSE-NEXT:    pshufd $85, (%rsp), %xmm0 # 16-byte Folded Reload2447; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2448; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload2449; SSE-NEXT:    # xmm7 = mem[2,3,2,3]2450; SSE-NEXT:    punpckldq {{.*#+}} xmm7 = xmm7[0],xmm0[0],xmm7[1],xmm0[1]2451; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Folded Reload2452; SSE-NEXT:    # xmm7 = xmm7[0,1],mem[0,3]2453; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2454; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2455; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Folded Reload2456; SSE-NEXT:    # xmm6 = mem[2,3,2,3]2457; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm0[0],xmm6[1],xmm0[1]2458; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm5[0,3]2459; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2460; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2461; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2462; SSE-NEXT:    # xmm5 = mem[2,3,2,3]2463; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm0[0],xmm5[1],xmm0[1]2464; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Folded Reload2465; SSE-NEXT:    # xmm5 = xmm5[0,1],mem[0,3]2466; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm3[1,1,1,1]2467; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload2468; SSE-NEXT:    # xmm3 = mem[2,3,2,3]2469; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm0[0],xmm3[1],xmm0[1]2470; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Folded Reload2471; SSE-NEXT:    # xmm3 = xmm3[0,1],mem[0,3]2472; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2473; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2474; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2475; SSE-NEXT:    # xmm2 = mem[2,3,2,3]2476; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]2477; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload2478; SSE-NEXT:    # xmm2 = xmm2[0,1],mem[0,3]2479; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2480; SSE-NEXT:    # xmm0 = mem[1,1,1,1]2481; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Folded Reload2482; SSE-NEXT:    # xmm1 = mem[2,3,2,3]2483; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]2484; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm4[0,3]2485; SSE-NEXT:    pshufd $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Folded Reload2486; SSE-NEXT:    # xmm4 = mem[1,1,1,1]2487; SSE-NEXT:    pshufd $238, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2488; SSE-NEXT:    # xmm0 = mem[2,3,2,3]2489; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]2490; SSE-NEXT:    shufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload2491; SSE-NEXT:    # xmm0 = xmm0[0,1],mem[0,3]2492; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2493; SSE-NEXT:    movaps %xmm4, 224(%rsi)2494; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2495; SSE-NEXT:    movaps %xmm4, 160(%rsi)2496; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2497; SSE-NEXT:    movaps %xmm4, 96(%rsi)2498; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2499; SSE-NEXT:    movaps %xmm4, 32(%rsi)2500; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2501; SSE-NEXT:    movaps %xmm4, 240(%rsi)2502; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2503; SSE-NEXT:    movaps %xmm4, 176(%rsi)2504; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2505; SSE-NEXT:    movaps %xmm4, 112(%rsi)2506; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2507; SSE-NEXT:    movaps %xmm4, 48(%rsi)2508; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2509; SSE-NEXT:    movaps %xmm4, 192(%rsi)2510; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2511; SSE-NEXT:    movaps %xmm4, 128(%rsi)2512; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2513; SSE-NEXT:    movaps %xmm4, 64(%rsi)2514; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2515; SSE-NEXT:    movaps %xmm4, (%rsi)2516; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2517; SSE-NEXT:    movaps %xmm4, 208(%rsi)2518; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2519; SSE-NEXT:    movaps %xmm4, 144(%rsi)2520; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2521; SSE-NEXT:    movaps %xmm4, 80(%rsi)2522; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2523; SSE-NEXT:    movaps %xmm4, 16(%rsi)2524; SSE-NEXT:    movaps %xmm14, 224(%rdx)2525; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2526; SSE-NEXT:    movaps %xmm4, 240(%rdx)2527; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2528; SSE-NEXT:    movaps %xmm4, 192(%rdx)2529; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2530; SSE-NEXT:    movaps %xmm4, 208(%rdx)2531; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2532; SSE-NEXT:    movaps %xmm4, 160(%rdx)2533; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2534; SSE-NEXT:    movaps %xmm4, 176(%rdx)2535; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2536; SSE-NEXT:    movaps %xmm4, 128(%rdx)2537; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2538; SSE-NEXT:    movaps %xmm4, 144(%rdx)2539; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2540; SSE-NEXT:    movaps %xmm4, 96(%rdx)2541; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2542; SSE-NEXT:    movaps %xmm4, 112(%rdx)2543; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2544; SSE-NEXT:    movaps %xmm4, 64(%rdx)2545; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2546; SSE-NEXT:    movaps %xmm4, 80(%rdx)2547; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2548; SSE-NEXT:    movaps %xmm4, 32(%rdx)2549; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2550; SSE-NEXT:    movaps %xmm4, 48(%rdx)2551; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2552; SSE-NEXT:    movaps %xmm4, (%rdx)2553; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload2554; SSE-NEXT:    movaps %xmm4, 16(%rdx)2555; SSE-NEXT:    movaps %xmm0, 240(%rcx)2556; SSE-NEXT:    movaps %xmm1, 224(%rcx)2557; SSE-NEXT:    movaps %xmm2, 208(%rcx)2558; SSE-NEXT:    movaps %xmm3, 192(%rcx)2559; SSE-NEXT:    movaps %xmm5, 176(%rcx)2560; SSE-NEXT:    movaps %xmm6, 160(%rcx)2561; SSE-NEXT:    movaps %xmm7, 144(%rcx)2562; SSE-NEXT:    movaps %xmm8, 128(%rcx)2563; SSE-NEXT:    movaps %xmm9, 112(%rcx)2564; SSE-NEXT:    movaps %xmm10, 96(%rcx)2565; SSE-NEXT:    movaps %xmm11, 80(%rcx)2566; SSE-NEXT:    movaps %xmm12, 64(%rcx)2567; SSE-NEXT:    movaps %xmm13, 48(%rcx)2568; SSE-NEXT:    movaps %xmm15, 32(%rcx)2569; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2570; SSE-NEXT:    movaps %xmm0, 16(%rcx)2571; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload2572; SSE-NEXT:    movaps %xmm0, (%rcx)2573; SSE-NEXT:    addq $1112, %rsp # imm = 0x4582574; SSE-NEXT:    retq2575;2576; AVX-LABEL: load_i32_stride3_vf64:2577; AVX:       # %bb.0:2578; AVX-NEXT:    subq $1384, %rsp # imm = 0x5682579; AVX-NEXT:    vmovaps 544(%rdi), %ymm22580; AVX-NEXT:    vmovaps 512(%rdi), %ymm32581; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2582; AVX-NEXT:    vmovaps 480(%rdi), %ymm42583; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2584; AVX-NEXT:    vmovaps 352(%rdi), %ymm52585; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2586; AVX-NEXT:    vmovaps 320(%rdi), %ymm62587; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2588; AVX-NEXT:    vmovaps 288(%rdi), %ymm72589; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2590; AVX-NEXT:    vmovaps 160(%rdi), %ymm82591; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2592; AVX-NEXT:    vmovaps 128(%rdi), %ymm92593; AVX-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill2594; AVX-NEXT:    vmovaps 96(%rdi), %ymm02595; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2596; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm9[1],ymm0[2,3],ymm9[4],ymm0[5,6],ymm9[7]2597; AVX-NEXT:    vmovaps 112(%rdi), %xmm12598; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm9[1,3],ymm1[6,5],ymm9[5,7]2599; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]2600; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm8[2,3,0,1]2601; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2602; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,0],ymm1[2,0],ymm8[5,4],ymm1[6,4]2603; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2604; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2605; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2606; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0],ymm6[1],ymm7[2,3],ymm6[4],ymm7[5,6],ymm6[7]2607; AVX-NEXT:    vmovaps 304(%rdi), %xmm12608; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm6[1,3],ymm1[6,5],ymm6[5,7]2609; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]2610; AVX-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm5[2,3,0,1]2611; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,0],ymm14[2,0],ymm5[5,4],ymm14[6,4]2612; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2613; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2614; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2615; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]2616; AVX-NEXT:    vmovaps 496(%rdi), %xmm12617; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,1],ymm3[1,3],ymm1[6,5],ymm3[5,7]2618; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[0,3],ymm1[0,2],ymm0[4,7],ymm1[4,6]2619; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2620; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[2,3,0,1]2621; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,0],ymm3[2,0],ymm2[5,4],ymm3[6,4]2622; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2623; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2624; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2625; AVX-NEXT:    vmovaps 704(%rdi), %ymm22626; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2627; AVX-NEXT:    vmovaps 688(%rdi), %xmm02628; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm2[1,3],ymm0[6,5],ymm2[5,7]2629; AVX-NEXT:    vmovaps 672(%rdi), %ymm12630; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2631; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1],ymm1[2,3],ymm2[4],ymm1[5,6],ymm2[7]2632; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]2633; AVX-NEXT:    vmovaps 736(%rdi), %ymm12634; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2635; AVX-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm1[2,3,0,1]2636; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,0],ymm15[2,0],ymm1[5,4],ymm15[6,4]2637; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2638; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2639; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2640; AVX-NEXT:    vmovaps 32(%rdi), %ymm72641; AVX-NEXT:    vmovaps 16(%rdi), %xmm02642; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm7[1,3],ymm0[6,5],ymm7[5,7]2643; AVX-NEXT:    vmovaps (%rdi), %ymm12644; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2645; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3],ymm7[4],ymm1[5,6],ymm7[7]2646; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]2647; AVX-NEXT:    vmovaps 64(%rdi), %ymm42648; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3,0,1]2649; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2650; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,0],ymm1[2,0],ymm4[5,4],ymm1[6,4]2651; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2652; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2653; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2654; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2655; AVX-NEXT:    vmovaps 224(%rdi), %ymm62656; AVX-NEXT:    vmovaps 208(%rdi), %xmm02657; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm6[1,3],ymm0[6,5],ymm6[5,7]2658; AVX-NEXT:    vmovaps 192(%rdi), %ymm12659; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2660; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1],ymm1[2,3],ymm6[4],ymm1[5,6],ymm6[7]2661; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]2662; AVX-NEXT:    vmovaps 256(%rdi), %ymm52663; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3,0,1]2664; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2665; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,0],ymm1[2,0],ymm5[5,4],ymm1[6,4]2666; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2667; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2668; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2669; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2670; AVX-NEXT:    vmovaps 416(%rdi), %ymm122671; AVX-NEXT:    vmovaps 400(%rdi), %xmm02672; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm12[1,3],ymm0[6,5],ymm12[5,7]2673; AVX-NEXT:    vmovaps 384(%rdi), %ymm12674; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2675; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm12[1],ymm1[2,3],ymm12[4],ymm1[5,6],ymm12[7]2676; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]2677; AVX-NEXT:    vmovaps 448(%rdi), %ymm82678; AVX-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm8[2,3,0,1]2679; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,0],ymm9[2,0],ymm8[5,4],ymm9[6,4]2680; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2681; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2682; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2683; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2684; AVX-NEXT:    vmovaps 608(%rdi), %ymm102685; AVX-NEXT:    vmovaps 592(%rdi), %xmm02686; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,1],ymm10[1,3],ymm0[6,5],ymm10[5,7]2687; AVX-NEXT:    vmovaps 576(%rdi), %ymm12688; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2689; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm10[1],ymm1[2,3],ymm10[4],ymm1[5,6],ymm10[7]2690; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[0,3],ymm0[0,2],ymm1[4,7],ymm0[4,6]2691; AVX-NEXT:    vmovaps 640(%rdi), %ymm132692; AVX-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm13[2,3,0,1]2693; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,0],ymm11[2,0],ymm13[5,4],ymm11[6,4]2694; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2695; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,1,2,0,4,5,6,4]2696; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]2697; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2698; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2699; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2700; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm1[3,0],ymm0[6,4],ymm1[7,4]2701; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm1[0,0],ymm0[2,0],ymm1[4,4],ymm0[6,4]2702; AVX-NEXT:    vmovaps 112(%rdi), %xmm02703; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2704; AVX-NEXT:    vmovups (%rsp), %ymm1 # 32-byte Reload2705; AVX-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2706; AVX-NEXT:    # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]2707; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,2],ymm0[0,3],ymm1[5,6],ymm0[4,7]2708; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,3,1,4,6,7,5]2709; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm2[5,6,7]2710; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2711; AVX-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2712; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2713; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm14[3,0],ymm0[6,4],ymm14[7,4]2714; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,0],ymm0[2,0],ymm14[4,4],ymm0[6,4]2715; AVX-NEXT:    vmovaps 304(%rdi), %xmm22716; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2717; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2718; AVX-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2719; AVX-NEXT:    # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]2720; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,2],ymm2[0,3],ymm1[5,6],ymm2[4,7]2721; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,3,1,4,6,7,5]2722; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]2723; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2724; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2725; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2726; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm3[3,0],ymm0[6,4],ymm3[7,4]2727; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[0,0],ymm0[2,0],ymm3[4,4],ymm0[6,4]2728; AVX-NEXT:    vmovaps 496(%rdi), %xmm32729; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2730; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2731; AVX-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2732; AVX-NEXT:    # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]2733; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,2],ymm3[0,3],ymm1[5,6],ymm3[4,7]2734; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,3,1,4,6,7,5]2735; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]2736; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2737; AVX-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2738; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2739; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm15[3,0],ymm0[6,4],ymm15[7,4]2740; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[0,0],ymm0[2,0],ymm15[4,4],ymm0[6,4]2741; AVX-NEXT:    vmovaps 688(%rdi), %xmm32742; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2743; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2744; AVX-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2745; AVX-NEXT:    # ymm1 = mem[0,1],ymm1[2],mem[3,4],ymm1[5],mem[6,7]2746; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,2],ymm3[0,3],ymm1[5,6],ymm3[4,7]2747; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,2,3,1,4,6,7,5]2748; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4],ymm0[5,6,7]2749; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2750; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2751; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[2,0],ymm1[3,0],ymm4[6,4],ymm1[7,4]2752; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[0,0],ymm0[2,0],ymm1[4,4],ymm0[6,4]2753; AVX-NEXT:    vmovaps 16(%rdi), %xmm42754; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2755; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1],ymm7[2],ymm0[3,4],ymm7[5],ymm0[6,7]2756; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[1,2],ymm4[0,3],ymm2[5,6],ymm4[4,7]2757; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,2,3,1,4,6,7,5]2758; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4],ymm1[5,6,7]2759; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2760; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2761; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,0],ymm2[3,0],ymm5[6,4],ymm2[7,4]2762; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,0],ymm1[2,0],ymm2[4,4],ymm1[6,4]2763; AVX-NEXT:    vmovaps 208(%rdi), %xmm52764; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2765; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm1[0,1],ymm6[2],ymm1[3,4],ymm6[5],ymm1[6,7]2766; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[1,2],ymm5[0,3],ymm3[5,6],ymm5[4,7]2767; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[0,2,3,1,4,6,7,5]2768; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2,3,4],ymm2[5,6,7]2769; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2770; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2771; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[2,0],ymm9[3,0],ymm8[6,4],ymm9[7,4]2772; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm9[0,0],ymm2[2,0],ymm9[4,4],ymm2[6,4]2773; AVX-NEXT:    vmovaps 400(%rdi), %xmm82774; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload2775; AVX-NEXT:    vblendps {{.*#+}} ymm15 = ymm2[0,1],ymm12[2],ymm2[3,4],ymm12[5],ymm2[6,7]2776; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[1,2],ymm8[0,3],ymm15[5,6],ymm8[4,7]2777; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[0,2,3,1,4,6,7,5]2778; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1,2,3,4],ymm3[5,6,7]2779; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2780; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm13[2,0],ymm11[3,0],ymm13[6,4],ymm11[7,4]2781; AVX-NEXT:    vshufps {{.*#+}} ymm15 = ymm11[0,0],ymm3[2,0],ymm11[4,4],ymm3[6,4]2782; AVX-NEXT:    vmovaps 592(%rdi), %xmm92783; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload2784; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm3[0,1],ymm10[2],ymm3[3,4],ymm10[5],ymm3[6,7]2785; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[1,2],ymm9[0,3],ymm14[5,6],ymm9[4,7]2786; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,2,3,1,4,6,7,5]2787; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3,4],ymm15[5,6,7]2788; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2789; AVX-NEXT:    vmovups (%rsp), %ymm15 # 32-byte Reload2790; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm14 # 32-byte Folded Reload2791; AVX-NEXT:    # ymm14 = ymm15[0,1],mem[2],ymm15[3,4],mem[5],ymm15[6,7]2792; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload2793; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm13[1,0],ymm14[2,0],ymm13[5,4],ymm14[6,4]2794; AVX-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[2,0],ymm15[0,3],ymm14[6,4],ymm15[4,7]2795; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Reload2796; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm15 # 32-byte Folded Reload2797; AVX-NEXT:    # ymm15 = ymm15[0,1],mem[0,3],ymm15[4,5],mem[4,7]2798; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2,3,4],ymm15[5,6,7]2799; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm7[0,1],ymm0[2],ymm7[3,4],ymm0[5],ymm7[6,7]2800; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,0],ymm14[2,0],ymm4[5,4],ymm14[6,4]2801; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm7[0,3],ymm0[6,4],ymm7[4,7]2802; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2803; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm7 # 32-byte Folded Reload2804; AVX-NEXT:    # ymm7 = ymm4[0,1],mem[0,3],ymm4[4,5],mem[4,7]2805; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4],ymm7[5,6,7]2806; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Reload2807; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm0 # 32-byte Folded Reload2808; AVX-NEXT:    # ymm0 = ymm14[0,1],mem[2],ymm14[3,4],mem[5],ymm14[6,7]2809; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2810; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,0],ymm0[2,0],ymm4[5,4],ymm0[6,4]2811; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm14[0,3],ymm0[6,4],ymm14[4,7]2812; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2813; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm14 # 32-byte Folded Reload2814; AVX-NEXT:    # ymm14 = ymm4[0,1],mem[0,3],ymm4[4,5],mem[4,7]2815; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3,4],ymm14[5,6,7]2816; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm1[2],ymm6[3,4],ymm1[5],ymm6[6,7]2817; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm5[1,0],ymm0[2,0],ymm5[5,4],ymm0[6,4]2818; AVX-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[2,0],ymm6[0,3],ymm0[6,4],ymm6[4,7]2819; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload2820; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload2821; AVX-NEXT:    # ymm1 = ymm1[0,1],mem[0,3],ymm1[4,5],mem[4,7]2822; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]2823; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload2824; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm1 # 32-byte Folded Reload2825; AVX-NEXT:    # ymm1 = ymm6[0,1],mem[2],ymm6[3,4],mem[5],ymm6[6,7]2826; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2827; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,0],ymm1[2,0],ymm4[5,4],ymm1[6,4]2828; AVX-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,0],ymm6[0,3],ymm1[6,4],ymm6[4,7]2829; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2830; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm6 # 32-byte Folded Reload2831; AVX-NEXT:    # ymm6 = ymm4[0,1],mem[0,3],ymm4[4,5],mem[4,7]2832; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm6[5,6,7]2833; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1],ymm2[2],ymm12[3,4],ymm2[5],ymm12[6,7]2834; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm8[1,0],ymm6[2,0],ymm8[5,4],ymm6[6,4]2835; AVX-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,0],ymm12[0,3],ymm2[6,4],ymm12[4,7]2836; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2837; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload2838; AVX-NEXT:    # ymm5 = ymm4[0,1],mem[0,3],ymm4[4,5],mem[4,7]2839; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm5[5,6,7]2840; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload2841; AVX-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm5 # 32-byte Folded Reload2842; AVX-NEXT:    # ymm5 = ymm6[0,1],mem[2],ymm6[3,4],mem[5],ymm6[6,7]2843; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2844; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm4[1,0],ymm5[2,0],ymm4[5,4],ymm5[6,4]2845; AVX-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[2,0],ymm6[0,3],ymm5[6,4],ymm6[4,7]2846; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2847; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm6 # 32-byte Folded Reload2848; AVX-NEXT:    # ymm6 = ymm4[0,1],mem[0,3],ymm4[4,5],mem[4,7]2849; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5,6,7]2850; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm10[0,1],ymm3[2],ymm10[3,4],ymm3[5],ymm10[6,7]2851; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm9[1,0],ymm6[2,0],ymm9[5,4],ymm6[6,4]2852; AVX-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[2,0],ymm10[0,3],ymm3[6,4],ymm10[4,7]2853; AVX-NEXT:    vshufps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm4 # 32-byte Folded Reload2854; AVX-NEXT:    # ymm4 = ymm11[0,1],mem[0,3],ymm11[4,5],mem[4,7]2855; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]2856; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2857; AVX-NEXT:    vmovaps %ymm4, 192(%rsi)2858; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2859; AVX-NEXT:    vmovaps %ymm4, 128(%rsi)2860; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2861; AVX-NEXT:    vmovaps %ymm4, 64(%rsi)2862; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2863; AVX-NEXT:    vmovaps %ymm4, (%rsi)2864; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2865; AVX-NEXT:    vmovaps %ymm4, 224(%rsi)2866; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2867; AVX-NEXT:    vmovaps %ymm4, 160(%rsi)2868; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2869; AVX-NEXT:    vmovaps %ymm4, 96(%rsi)2870; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2871; AVX-NEXT:    vmovaps %ymm4, 32(%rsi)2872; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2873; AVX-NEXT:    vmovaps %ymm4, 192(%rdx)2874; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2875; AVX-NEXT:    vmovaps %ymm4, 128(%rdx)2876; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2877; AVX-NEXT:    vmovaps %ymm4, 64(%rdx)2878; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2879; AVX-NEXT:    vmovaps %ymm4, (%rdx)2880; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2881; AVX-NEXT:    vmovaps %ymm4, 224(%rdx)2882; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2883; AVX-NEXT:    vmovaps %ymm4, 160(%rdx)2884; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2885; AVX-NEXT:    vmovaps %ymm4, 96(%rdx)2886; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2887; AVX-NEXT:    vmovaps %ymm4, 32(%rdx)2888; AVX-NEXT:    vmovaps %ymm3, 192(%rcx)2889; AVX-NEXT:    vmovaps %ymm5, 224(%rcx)2890; AVX-NEXT:    vmovaps %ymm2, 128(%rcx)2891; AVX-NEXT:    vmovaps %ymm1, 160(%rcx)2892; AVX-NEXT:    vmovaps %ymm0, 64(%rcx)2893; AVX-NEXT:    vmovaps %ymm14, 96(%rcx)2894; AVX-NEXT:    vmovaps %ymm7, (%rcx)2895; AVX-NEXT:    vmovaps %ymm13, 32(%rcx)2896; AVX-NEXT:    addq $1384, %rsp # imm = 0x5682897; AVX-NEXT:    vzeroupper2898; AVX-NEXT:    retq2899;2900; AVX2-LABEL: load_i32_stride3_vf64:2901; AVX2:       # %bb.0:2902; AVX2-NEXT:    subq $1032, %rsp # imm = 0x4082903; AVX2-NEXT:    vmovaps 736(%rdi), %ymm22904; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2905; AVX2-NEXT:    vmovaps 704(%rdi), %ymm32906; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2907; AVX2-NEXT:    vmovaps 672(%rdi), %ymm42908; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2909; AVX2-NEXT:    vmovaps 544(%rdi), %ymm52910; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2911; AVX2-NEXT:    vmovaps 512(%rdi), %ymm62912; AVX2-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill2913; AVX2-NEXT:    vmovaps 480(%rdi), %ymm72914; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2915; AVX2-NEXT:    vmovaps 352(%rdi), %ymm82916; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2917; AVX2-NEXT:    vmovaps 320(%rdi), %ymm102918; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2919; AVX2-NEXT:    vmovaps 288(%rdi), %ymm112920; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2921; AVX2-NEXT:    vmovaps 160(%rdi), %ymm92922; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2923; AVX2-NEXT:    vmovaps 128(%rdi), %ymm02924; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2925; AVX2-NEXT:    vmovaps 96(%rdi), %ymm12926; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2927; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]2928; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1],ymm9[2],ymm0[3,4],ymm9[5],ymm0[6,7]2929; AVX2-NEXT:    vmovaps {{.*#+}} ymm0 = [0,3,6,1,4,7,2,5]2930; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm12931; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2932; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm11[0],ymm10[1],ymm11[2,3],ymm10[4],ymm11[5,6],ymm10[7]2933; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm8[2],ymm1[3,4],ymm8[5],ymm1[6,7]2934; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm12935; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2936; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0],ymm6[1],ymm7[2,3],ymm6[4],ymm7[5,6],ymm6[7]2937; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]2938; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm12939; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2940; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]2941; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]2942; AVX2-NEXT:    vpermps %ymm1, %ymm0, %ymm12943; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2944; AVX2-NEXT:    vmovaps (%rdi), %ymm12945; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2946; AVX2-NEXT:    vmovaps 32(%rdi), %ymm32947; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2948; AVX2-NEXT:    vmovaps 64(%rdi), %ymm82949; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0],ymm3[1],ymm1[2,3],ymm3[4],ymm1[5,6],ymm3[7]2950; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm8[2],ymm4[3,4],ymm8[5],ymm4[6,7]2951; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2952; AVX2-NEXT:    vpermps %ymm4, %ymm0, %ymm42953; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2954; AVX2-NEXT:    vmovaps 256(%rdi), %ymm12955; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2956; AVX2-NEXT:    vmovaps 224(%rdi), %ymm22957; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2958; AVX2-NEXT:    vmovaps 192(%rdi), %ymm32959; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2960; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]2961; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm1[2],ymm6[3,4],ymm1[5],ymm6[6,7]2962; AVX2-NEXT:    vpermps %ymm6, %ymm0, %ymm62963; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2964; AVX2-NEXT:    vmovaps 448(%rdi), %ymm132965; AVX2-NEXT:    vmovaps 416(%rdi), %ymm122966; AVX2-NEXT:    vmovaps 384(%rdi), %ymm142967; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0],ymm12[1],ymm14[2,3],ymm12[4],ymm14[5,6],ymm12[7]2968; AVX2-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2969; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2970; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2],ymm10[3,4],ymm13[5],ymm10[6,7]2971; AVX2-NEXT:    vpermps %ymm10, %ymm0, %ymm102972; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2973; AVX2-NEXT:    vmovaps 640(%rdi), %ymm62974; AVX2-NEXT:    vmovaps 608(%rdi), %ymm52975; AVX2-NEXT:    vmovaps 576(%rdi), %ymm72976; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm7[0],ymm5[1],ymm7[2,3],ymm5[4],ymm7[5,6],ymm5[7]2977; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2978; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2979; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm6[2],ymm15[3,4],ymm6[5],ymm15[6,7]2980; AVX2-NEXT:    vpermps %ymm15, %ymm0, %ymm02981; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2982; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload2983; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload2984; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1],ymm4[2],ymm9[3,4],ymm4[5],ymm9[6,7]2985; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload2986; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0],ymm0[1,2],ymm11[3],ymm0[4,5],ymm11[6],ymm0[7]2987; AVX2-NEXT:    vmovaps {{.*#+}} ymm15 = [1,4,7,2,5,0,3,6]2988; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm02989; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2990; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload2991; AVX2-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2992; AVX2-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]2993; AVX2-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2994; AVX2-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]2995; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm02996; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill2997; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload2998; AVX2-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload2999; AVX2-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3000; AVX2-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3001; AVX2-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3002; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm03003; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3004; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3005; AVX2-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3006; AVX2-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3007; AVX2-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3008; AVX2-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3009; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm03010; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3011; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3012; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3013; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3014; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0],ymm0[1,2],ymm8[3],ymm0[4,5],ymm8[6],ymm0[7]3015; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm03016; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3017; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload3018; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3019; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1],ymm3[2],ymm8[3,4],ymm3[5],ymm8[6,7]3020; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload3021; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0],ymm0[1,2],ymm10[3],ymm0[4,5],ymm10[6],ymm0[7]3022; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm03023; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3024; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2],ymm14[3,4],ymm12[5],ymm14[6,7]3025; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0],ymm0[1,2],ymm13[3],ymm0[4,5],ymm13[6],ymm0[7]3026; AVX2-NEXT:    vmovaps %ymm13, %ymm143027; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm133028; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm5[2],ymm7[3,4],ymm5[5],ymm7[6,7]3029; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0],ymm0[1,2],ymm6[3],ymm0[4,5],ymm6[6],ymm0[7]3030; AVX2-NEXT:    vmovaps %ymm6, %ymm73031; AVX2-NEXT:    vpermps %ymm0, %ymm15, %ymm153032; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm9[2],ymm4[3,4],ymm9[5],ymm4[6,7]3033; AVX2-NEXT:    vmovaps {{.*#+}} ymm12 = [2,5,0,3,6,u,u,u]3034; AVX2-NEXT:    vpermps %ymm0, %ymm12, %ymm03035; AVX2-NEXT:    vshufps {{.*#+}} ymm9 = ymm11[0,1,0,3,4,5,4,7]3036; AVX2-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,1,0,3]3037; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3,4],ymm9[5,6,7]3038; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]3039; AVX2-NEXT:    vpermps %ymm0, %ymm12, %ymm03040; AVX2-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload3041; AVX2-NEXT:    # ymm1 = mem[0,1,0,3,4,5,4,7]3042; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]3043; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]3044; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3045; AVX2-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload3046; AVX2-NEXT:    # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]3047; AVX2-NEXT:    vpermps %ymm1, %ymm12, %ymm13048; AVX2-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload3049; AVX2-NEXT:    # ymm2 = mem[0,1,0,3,4,5,4,7]3050; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]3051; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]3052; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm8[2],ymm3[3,4],ymm8[5],ymm3[6,7]3053; AVX2-NEXT:    vpermps %ymm2, %ymm12, %ymm23054; AVX2-NEXT:    vshufps {{.*#+}} ymm3 = ymm10[0,1,0,3,4,5,4,7]3055; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]3056; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]3057; AVX2-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload3058; AVX2-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload3059; AVX2-NEXT:    # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]3060; AVX2-NEXT:    vpermps %ymm3, %ymm12, %ymm33061; AVX2-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload3062; AVX2-NEXT:    # ymm4 = mem[0,1,0,3,4,5,4,7]3063; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]3064; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]3065; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3066; AVX2-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload3067; AVX2-NEXT:    # ymm4 = mem[0,1],ymm4[2],mem[3,4],ymm4[5],mem[6,7]3068; AVX2-NEXT:    vpermps %ymm4, %ymm12, %ymm43069; AVX2-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[0,1,0,3,4,5,4,7]3070; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]3071; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7]3072; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3073; AVX2-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload3074; AVX2-NEXT:    # ymm5 = ymm5[0,1],mem[2],ymm5[3,4],mem[5],ymm5[6,7]3075; AVX2-NEXT:    vpermps %ymm5, %ymm12, %ymm53076; AVX2-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload3077; AVX2-NEXT:    # ymm6 = mem[0,1,0,3,4,5,4,7]3078; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]3079; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5,6,7]3080; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3081; AVX2-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload3082; AVX2-NEXT:    # ymm6 = ymm6[0,1],mem[2],ymm6[3,4],mem[5],ymm6[6,7]3083; AVX2-NEXT:    vpermps %ymm6, %ymm12, %ymm63084; AVX2-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,0,3,4,5,4,7]3085; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]3086; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7]3087; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3088; AVX2-NEXT:    vmovaps %ymm7, 192(%rsi)3089; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3090; AVX2-NEXT:    vmovaps %ymm7, 128(%rsi)3091; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3092; AVX2-NEXT:    vmovaps %ymm7, 64(%rsi)3093; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3094; AVX2-NEXT:    vmovaps %ymm7, (%rsi)3095; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3096; AVX2-NEXT:    vmovaps %ymm7, 224(%rsi)3097; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3098; AVX2-NEXT:    vmovaps %ymm7, 160(%rsi)3099; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3100; AVX2-NEXT:    vmovaps %ymm7, 96(%rsi)3101; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3102; AVX2-NEXT:    vmovaps %ymm7, 32(%rsi)3103; AVX2-NEXT:    vmovaps %ymm15, 192(%rdx)3104; AVX2-NEXT:    vmovaps %ymm13, 128(%rdx)3105; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3106; AVX2-NEXT:    vmovaps %ymm7, 64(%rdx)3107; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3108; AVX2-NEXT:    vmovaps %ymm7, (%rdx)3109; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3110; AVX2-NEXT:    vmovaps %ymm7, 224(%rdx)3111; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3112; AVX2-NEXT:    vmovaps %ymm7, 160(%rdx)3113; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3114; AVX2-NEXT:    vmovaps %ymm7, 96(%rdx)3115; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3116; AVX2-NEXT:    vmovaps %ymm7, 32(%rdx)3117; AVX2-NEXT:    vmovaps %ymm6, 192(%rcx)3118; AVX2-NEXT:    vmovaps %ymm5, 224(%rcx)3119; AVX2-NEXT:    vmovaps %ymm4, 128(%rcx)3120; AVX2-NEXT:    vmovaps %ymm3, 160(%rcx)3121; AVX2-NEXT:    vmovaps %ymm2, 64(%rcx)3122; AVX2-NEXT:    vmovaps %ymm1, 96(%rcx)3123; AVX2-NEXT:    vmovaps %ymm0, (%rcx)3124; AVX2-NEXT:    vmovaps %ymm9, 32(%rcx)3125; AVX2-NEXT:    addq $1032, %rsp # imm = 0x4083126; AVX2-NEXT:    vzeroupper3127; AVX2-NEXT:    retq3128;3129; AVX2-FP-LABEL: load_i32_stride3_vf64:3130; AVX2-FP:       # %bb.0:3131; AVX2-FP-NEXT:    subq $1032, %rsp # imm = 0x4083132; AVX2-FP-NEXT:    vmovaps 736(%rdi), %ymm23133; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3134; AVX2-FP-NEXT:    vmovaps 704(%rdi), %ymm33135; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3136; AVX2-FP-NEXT:    vmovaps 672(%rdi), %ymm43137; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3138; AVX2-FP-NEXT:    vmovaps 544(%rdi), %ymm53139; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3140; AVX2-FP-NEXT:    vmovaps 512(%rdi), %ymm63141; AVX2-FP-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill3142; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm73143; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3144; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm83145; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3146; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm103147; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3148; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm113149; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3150; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm93151; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3152; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm03153; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3154; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm13155; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3156; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1],ymm1[2,3],ymm0[4],ymm1[5,6],ymm0[7]3157; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1],ymm9[2],ymm0[3,4],ymm9[5],ymm0[6,7]3158; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm0 = [0,3,6,1,4,7,2,5]3159; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm13160; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3161; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm11[0],ymm10[1],ymm11[2,3],ymm10[4],ymm11[5,6],ymm10[7]3162; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm8[2],ymm1[3,4],ymm8[5],ymm1[6,7]3163; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm13164; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3165; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0],ymm6[1],ymm7[2,3],ymm6[4],ymm7[5,6],ymm6[7]3166; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]3167; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm13168; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3169; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]3170; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3171; AVX2-FP-NEXT:    vpermps %ymm1, %ymm0, %ymm13172; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3173; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm13174; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3175; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm33176; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3177; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm83178; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0],ymm3[1],ymm1[2,3],ymm3[4],ymm1[5,6],ymm3[7]3179; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm8[2],ymm4[3,4],ymm8[5],ymm4[6,7]3180; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3181; AVX2-FP-NEXT:    vpermps %ymm4, %ymm0, %ymm43182; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3183; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm13184; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3185; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm23186; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3187; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm33188; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3189; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]3190; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm1[2],ymm6[3,4],ymm1[5],ymm6[6,7]3191; AVX2-FP-NEXT:    vpermps %ymm6, %ymm0, %ymm63192; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3193; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm133194; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm123195; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm143196; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm14[0],ymm12[1],ymm14[2,3],ymm12[4],ymm14[5,6],ymm12[7]3197; AVX2-FP-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3198; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3199; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2],ymm10[3,4],ymm13[5],ymm10[6,7]3200; AVX2-FP-NEXT:    vpermps %ymm10, %ymm0, %ymm103201; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3202; AVX2-FP-NEXT:    vmovaps 640(%rdi), %ymm63203; AVX2-FP-NEXT:    vmovaps 608(%rdi), %ymm53204; AVX2-FP-NEXT:    vmovaps 576(%rdi), %ymm73205; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm7[0],ymm5[1],ymm7[2,3],ymm5[4],ymm7[5,6],ymm5[7]3206; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3207; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3208; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm6[2],ymm15[3,4],ymm6[5],ymm15[6,7]3209; AVX2-FP-NEXT:    vpermps %ymm15, %ymm0, %ymm03210; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3211; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload3212; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3213; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1],ymm4[2],ymm9[3,4],ymm4[5],ymm9[6,7]3214; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Reload3215; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0],ymm0[1,2],ymm11[3],ymm0[4,5],ymm11[6],ymm0[7]3216; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm15 = [1,4,7,2,5,0,3,6]3217; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03218; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3219; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3220; AVX2-FP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3221; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3222; AVX2-FP-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3223; AVX2-FP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3224; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03225; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3226; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload3227; AVX2-FP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3228; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3229; AVX2-FP-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3230; AVX2-FP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3231; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03232; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3233; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3234; AVX2-FP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3235; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3236; AVX2-FP-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3237; AVX2-FP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3238; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03239; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3240; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3241; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3242; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3243; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0],ymm0[1,2],ymm8[3],ymm0[4,5],ymm8[6],ymm0[7]3244; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03245; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3246; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload3247; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3248; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1],ymm3[2],ymm8[3,4],ymm3[5],ymm8[6,7]3249; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload3250; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0],ymm0[1,2],ymm10[3],ymm0[4,5],ymm10[6],ymm0[7]3251; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm03252; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3253; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2],ymm14[3,4],ymm12[5],ymm14[6,7]3254; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0],ymm0[1,2],ymm13[3],ymm0[4,5],ymm13[6],ymm0[7]3255; AVX2-FP-NEXT:    vmovaps %ymm13, %ymm143256; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm133257; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm5[2],ymm7[3,4],ymm5[5],ymm7[6,7]3258; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0],ymm0[1,2],ymm6[3],ymm0[4,5],ymm6[6],ymm0[7]3259; AVX2-FP-NEXT:    vmovaps %ymm6, %ymm73260; AVX2-FP-NEXT:    vpermps %ymm0, %ymm15, %ymm153261; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm9[2],ymm4[3,4],ymm9[5],ymm4[6,7]3262; AVX2-FP-NEXT:    vmovaps {{.*#+}} ymm12 = [2,5,0,3,6,u,u,u]3263; AVX2-FP-NEXT:    vpermps %ymm0, %ymm12, %ymm03264; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm9 = ymm11[0,1,0,3,4,5,4,7]3265; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,1,0,3]3266; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3,4],ymm9[5,6,7]3267; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm1[2],ymm2[3,4],ymm1[5],ymm2[6,7]3268; AVX2-FP-NEXT:    vpermps %ymm0, %ymm12, %ymm03269; AVX2-FP-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Folded Reload3270; AVX2-FP-NEXT:    # ymm1 = mem[0,1,0,3,4,5,4,7]3271; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,0,3]3272; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4],ymm1[5,6,7]3273; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3274; AVX2-FP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm1 # 32-byte Folded Reload3275; AVX2-FP-NEXT:    # ymm1 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]3276; AVX2-FP-NEXT:    vpermps %ymm1, %ymm12, %ymm13277; AVX2-FP-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Folded Reload3278; AVX2-FP-NEXT:    # ymm2 = mem[0,1,0,3,4,5,4,7]3279; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,1,0,3]3280; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4],ymm2[5,6,7]3281; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm8[2],ymm3[3,4],ymm8[5],ymm3[6,7]3282; AVX2-FP-NEXT:    vpermps %ymm2, %ymm12, %ymm23283; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm3 = ymm10[0,1,0,3,4,5,4,7]3284; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,0,3]3285; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4],ymm3[5,6,7]3286; AVX2-FP-NEXT:    vmovups (%rsp), %ymm3 # 32-byte Reload3287; AVX2-FP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload3288; AVX2-FP-NEXT:    # ymm3 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]3289; AVX2-FP-NEXT:    vpermps %ymm3, %ymm12, %ymm33290; AVX2-FP-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload3291; AVX2-FP-NEXT:    # ymm4 = mem[0,1,0,3,4,5,4,7]3292; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,1,0,3]3293; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4],ymm4[5,6,7]3294; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3295; AVX2-FP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload3296; AVX2-FP-NEXT:    # ymm4 = mem[0,1],ymm4[2],mem[3,4],ymm4[5],mem[6,7]3297; AVX2-FP-NEXT:    vpermps %ymm4, %ymm12, %ymm43298; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm5 = ymm14[0,1,0,3,4,5,4,7]3299; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,0,3]3300; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4],ymm5[5,6,7]3301; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3302; AVX2-FP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload3303; AVX2-FP-NEXT:    # ymm5 = ymm5[0,1],mem[2],ymm5[3,4],mem[5],ymm5[6,7]3304; AVX2-FP-NEXT:    vpermps %ymm5, %ymm12, %ymm53305; AVX2-FP-NEXT:    vpermilps $196, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Folded Reload3306; AVX2-FP-NEXT:    # ymm6 = mem[0,1,0,3,4,5,4,7]3307; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,0,3]3308; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4],ymm6[5,6,7]3309; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3310; AVX2-FP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload3311; AVX2-FP-NEXT:    # ymm6 = ymm6[0,1],mem[2],ymm6[3,4],mem[5],ymm6[6,7]3312; AVX2-FP-NEXT:    vpermps %ymm6, %ymm12, %ymm63313; AVX2-FP-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[0,1,0,3,4,5,4,7]3314; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,0,3]3315; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4],ymm7[5,6,7]3316; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3317; AVX2-FP-NEXT:    vmovaps %ymm7, 192(%rsi)3318; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3319; AVX2-FP-NEXT:    vmovaps %ymm7, 128(%rsi)3320; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3321; AVX2-FP-NEXT:    vmovaps %ymm7, 64(%rsi)3322; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3323; AVX2-FP-NEXT:    vmovaps %ymm7, (%rsi)3324; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3325; AVX2-FP-NEXT:    vmovaps %ymm7, 224(%rsi)3326; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3327; AVX2-FP-NEXT:    vmovaps %ymm7, 160(%rsi)3328; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3329; AVX2-FP-NEXT:    vmovaps %ymm7, 96(%rsi)3330; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3331; AVX2-FP-NEXT:    vmovaps %ymm7, 32(%rsi)3332; AVX2-FP-NEXT:    vmovaps %ymm15, 192(%rdx)3333; AVX2-FP-NEXT:    vmovaps %ymm13, 128(%rdx)3334; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3335; AVX2-FP-NEXT:    vmovaps %ymm7, 64(%rdx)3336; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3337; AVX2-FP-NEXT:    vmovaps %ymm7, (%rdx)3338; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3339; AVX2-FP-NEXT:    vmovaps %ymm7, 224(%rdx)3340; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3341; AVX2-FP-NEXT:    vmovaps %ymm7, 160(%rdx)3342; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3343; AVX2-FP-NEXT:    vmovaps %ymm7, 96(%rdx)3344; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload3345; AVX2-FP-NEXT:    vmovaps %ymm7, 32(%rdx)3346; AVX2-FP-NEXT:    vmovaps %ymm6, 192(%rcx)3347; AVX2-FP-NEXT:    vmovaps %ymm5, 224(%rcx)3348; AVX2-FP-NEXT:    vmovaps %ymm4, 128(%rcx)3349; AVX2-FP-NEXT:    vmovaps %ymm3, 160(%rcx)3350; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rcx)3351; AVX2-FP-NEXT:    vmovaps %ymm1, 96(%rcx)3352; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)3353; AVX2-FP-NEXT:    vmovaps %ymm9, 32(%rcx)3354; AVX2-FP-NEXT:    addq $1032, %rsp # imm = 0x4083355; AVX2-FP-NEXT:    vzeroupper3356; AVX2-FP-NEXT:    retq3357;3358; AVX2-FCP-LABEL: load_i32_stride3_vf64:3359; AVX2-FCP:       # %bb.0:3360; AVX2-FCP-NEXT:    subq $1032, %rsp # imm = 0x4083361; AVX2-FCP-NEXT:    vmovaps 736(%rdi), %ymm23362; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3363; AVX2-FCP-NEXT:    vmovaps 704(%rdi), %ymm33364; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3365; AVX2-FCP-NEXT:    vmovaps 672(%rdi), %ymm43366; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3367; AVX2-FCP-NEXT:    vmovaps 544(%rdi), %ymm53368; AVX2-FCP-NEXT:    vmovups %ymm5, (%rsp) # 32-byte Spill3369; AVX2-FCP-NEXT:    vmovaps 512(%rdi), %ymm63370; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3371; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm73372; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3373; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm83374; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3375; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm93376; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm103377; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3378; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm113379; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3380; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm143381; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm133382; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0],ymm14[1],ymm13[2,3],ymm14[4],ymm13[5,6],ymm14[7]3383; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1],ymm11[2],ymm0[3,4],ymm11[5],ymm0[6,7]3384; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm0 = [0,3,6,1,4,7,2,5]3385; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13386; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3387; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0],ymm9[1],ymm10[2,3],ymm9[4],ymm10[5,6],ymm9[7]3388; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm8[2],ymm1[3,4],ymm8[5],ymm1[6,7]3389; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13390; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3391; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0],ymm6[1],ymm7[2,3],ymm6[4],ymm7[5,6],ymm6[7]3392; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3,4],ymm5[5],ymm1[6,7]3393; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13394; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3395; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0],ymm3[1],ymm4[2,3],ymm3[4],ymm4[5,6],ymm3[7]3396; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3397; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13398; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3399; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm53400; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm13401; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3402; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm33403; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3404; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0],ymm1[1],ymm5[2,3],ymm1[4],ymm5[5,6],ymm1[7]3405; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3406; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm3[2],ymm1[3,4],ymm3[5],ymm1[6,7]3407; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13408; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3409; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm23410; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3411; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm43412; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm13413; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3414; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm4[1],ymm1[2,3],ymm4[4],ymm1[5,6],ymm4[7]3415; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3416; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4],ymm2[5],ymm1[6,7]3417; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm0, %ymm13418; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3419; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm13420; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3421; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm23422; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3423; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm33424; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3425; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm2[1],ymm3[2,3],ymm2[4],ymm3[5,6],ymm2[7]3426; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm1[2],ymm3[3,4],ymm1[5],ymm3[6,7]3427; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm0, %ymm13428; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3429; AVX2-FCP-NEXT:    vmovaps 640(%rdi), %ymm83430; AVX2-FCP-NEXT:    vmovaps 608(%rdi), %ymm73431; AVX2-FCP-NEXT:    vmovaps 576(%rdi), %ymm113432; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm11[0],ymm7[1],ymm11[2,3],ymm7[4],ymm11[5,6],ymm7[7]3433; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3434; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3435; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1],ymm8[2],ymm15[3,4],ymm8[5],ymm15[6,7]3436; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3437; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm0, %ymm03438; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3439; AVX2-FCP-NEXT:    vmovaps %ymm14, %ymm103440; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm13[0,1],ymm14[2],ymm13[3,4],ymm14[5],ymm13[6,7]3441; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload3442; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0],ymm0[1,2],ymm12[3],ymm0[4,5],ymm12[6],ymm0[7]3443; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm15 = [1,4,7,2,5,0,3,6]3444; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03445; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3446; AVX2-FCP-NEXT:    vmovaps %ymm9, %ymm143447; AVX2-FCP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload3448; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm9[2],mem[3,4],ymm9[5],mem[6,7]3449; AVX2-FCP-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3450; AVX2-FCP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3451; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03452; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3453; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3454; AVX2-FCP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3455; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3456; AVX2-FCP-NEXT:    vblendps $73, (%rsp), %ymm0, %ymm0 # 32-byte Folded Reload3457; AVX2-FCP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3458; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03459; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3460; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload3461; AVX2-FCP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3462; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm0[2],mem[3,4],ymm0[5],mem[6,7]3463; AVX2-FCP-NEXT:    vblendps $73, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload3464; AVX2-FCP-NEXT:    # ymm0 = mem[0],ymm0[1,2],mem[3],ymm0[4,5],mem[6],ymm0[7]3465; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03466; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3467; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3468; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm1[2],ymm5[3,4],ymm1[5],ymm5[6,7]3469; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload3470; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2],ymm2[3],ymm0[4,5],ymm2[6],ymm0[7]3471; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03472; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3473; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3474; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm4[2],ymm3[3,4],ymm4[5],ymm3[6,7]3475; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload3476; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm0[1,2],ymm4[3],ymm0[4,5],ymm4[6],ymm0[7]3477; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03478; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3479; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload3480; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3481; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm5[2],ymm6[3,4],ymm5[5],ymm6[6,7]3482; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload3483; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0],ymm0[1,2],ymm9[3],ymm0[4,5],ymm9[6],ymm0[7]3484; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm03485; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill3486; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1],ymm7[2],ymm11[3,4],ymm7[5],ymm11[6,7]3487; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0],ymm0[1,2],ymm8[3],ymm0[4,5],ymm8[6],ymm0[7]3488; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm15, %ymm113489; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm13[2],ymm10[3,4],ymm13[5],ymm10[6,7]3490; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm12[1],ymm0[2,3],ymm12[4],ymm0[5,6],ymm12[7]3491; AVX2-FCP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm8 # 32-byte Folded Reload3492; AVX2-FCP-NEXT:    # ymm8 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]3493; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm8[0],ymm2[1],ymm8[2,3],ymm2[4],ymm8[5,6],ymm2[7]3494; AVX2-FCP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm8 # 32-byte Folded Reload3495; AVX2-FCP-NEXT:    # ymm8 = ymm14[0,1],mem[2],ymm14[3,4],mem[5],ymm14[6,7]3496; AVX2-FCP-NEXT:    vblendps $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload3497; AVX2-FCP-NEXT:    # ymm8 = ymm8[0],mem[1],ymm8[2,3],mem[4],ymm8[5,6],mem[7]3498; AVX2-FCP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm2 # 32-byte Folded Reload3499; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm3[2],mem[3,4],ymm3[5],mem[6,7]3500; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm4[1],ymm2[2,3],ymm4[4],ymm2[5,6],ymm4[7]3501; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload3502; AVX2-FCP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm7 # 32-byte Folded Reload3503; AVX2-FCP-NEXT:    # ymm7 = ymm1[0,1],mem[2],ymm1[3,4],mem[5],ymm1[6,7]3504; AVX2-FCP-NEXT:    vblendps $146, (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload3505; AVX2-FCP-NEXT:    # ymm7 = ymm7[0],mem[1],ymm7[2,3],mem[4],ymm7[5,6],mem[7]3506; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1],ymm6[2],ymm5[3,4],ymm6[5],ymm5[6,7]3507; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1],ymm1[2,3],ymm9[4],ymm1[5,6],ymm9[7]3508; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3509; AVX2-FCP-NEXT:    vblendps $36, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 32-byte Folded Reload3510; AVX2-FCP-NEXT:    # ymm6 = ymm3[0,1],mem[2],ymm3[3,4],mem[5],ymm3[6,7]3511; AVX2-FCP-NEXT:    vblendps $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload3512; AVX2-FCP-NEXT:    # ymm6 = ymm6[0],mem[1],ymm6[2,3],mem[4],ymm6[5,6],mem[7]3513; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload3514; AVX2-FCP-NEXT:    vblendps $219, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload3515; AVX2-FCP-NEXT:    # ymm3 = mem[0,1],ymm3[2],mem[3,4],ymm3[5],mem[6,7]3516; AVX2-FCP-NEXT:    vblendps $146, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload3517; AVX2-FCP-NEXT:    # ymm3 = ymm3[0],mem[1],ymm3[2,3],mem[4],ymm3[5,6],mem[7]3518; AVX2-FCP-NEXT:    vmovaps {{.*#+}} ymm5 = [2,5,0,3,6,1,4,7]3519; AVX2-FCP-NEXT:    vpermps %ymm0, %ymm5, %ymm03520; AVX2-FCP-NEXT:    vpermps %ymm15, %ymm5, %ymm43521; AVX2-FCP-NEXT:    vpermps %ymm8, %ymm5, %ymm83522; AVX2-FCP-NEXT:    vpermps %ymm2, %ymm5, %ymm23523; AVX2-FCP-NEXT:    vpermps %ymm7, %ymm5, %ymm73524; AVX2-FCP-NEXT:    vpermps %ymm1, %ymm5, %ymm13525; AVX2-FCP-NEXT:    vpermps %ymm6, %ymm5, %ymm63526; AVX2-FCP-NEXT:    vpermps %ymm3, %ymm5, %ymm33527; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3528; AVX2-FCP-NEXT:    vmovaps %ymm5, 192(%rsi)3529; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3530; AVX2-FCP-NEXT:    vmovaps %ymm5, 128(%rsi)3531; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3532; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rsi)3533; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3534; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rsi)3535; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3536; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rsi)3537; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3538; AVX2-FCP-NEXT:    vmovaps %ymm5, 160(%rsi)3539; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3540; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rsi)3541; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3542; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rsi)3543; AVX2-FCP-NEXT:    vmovaps %ymm11, 192(%rdx)3544; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3545; AVX2-FCP-NEXT:    vmovaps %ymm5, 128(%rdx)3546; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3547; AVX2-FCP-NEXT:    vmovaps %ymm5, 64(%rdx)3548; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3549; AVX2-FCP-NEXT:    vmovaps %ymm5, (%rdx)3550; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3551; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rdx)3552; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3553; AVX2-FCP-NEXT:    vmovaps %ymm5, 160(%rdx)3554; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3555; AVX2-FCP-NEXT:    vmovaps %ymm5, 96(%rdx)3556; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload3557; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rdx)3558; AVX2-FCP-NEXT:    vmovaps %ymm3, 192(%rcx)3559; AVX2-FCP-NEXT:    vmovaps %ymm6, 224(%rcx)3560; AVX2-FCP-NEXT:    vmovaps %ymm1, 128(%rcx)3561; AVX2-FCP-NEXT:    vmovaps %ymm7, 160(%rcx)3562; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rcx)3563; AVX2-FCP-NEXT:    vmovaps %ymm8, 96(%rcx)3564; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rcx)3565; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)3566; AVX2-FCP-NEXT:    addq $1032, %rsp # imm = 0x4083567; AVX2-FCP-NEXT:    vzeroupper3568; AVX2-FCP-NEXT:    retq3569;3570; AVX512-LABEL: load_i32_stride3_vf64:3571; AVX512:       # %bb.0:3572; AVX512-NEXT:    vmovdqa64 704(%rdi), %zmm43573; AVX512-NEXT:    vmovdqa64 640(%rdi), %zmm53574; AVX512-NEXT:    vmovdqa64 576(%rdi), %zmm03575; AVX512-NEXT:    vmovdqa64 512(%rdi), %zmm63576; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm73577; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm13578; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm83579; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm93580; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm23581; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm103582; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm113583; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm33584; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3585; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm133586; AVX512-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133587; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3588; AVX512-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133589; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm153590; AVX512-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153591; AVX512-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153592; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm163593; AVX512-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163594; AVX512-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163595; AVX512-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123596; AVX512-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123597; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3598; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm173599; AVX512-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173600; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3601; AVX512-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173602; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm193603; AVX512-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193604; AVX512-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193605; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm203606; AVX512-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203607; AVX512-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203608; AVX512-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143609; AVX512-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143610; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3611; AVX512-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33612; AVX512-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3613; AVX512-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33614; AVX512-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03615; AVX512-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03616; AVX512-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13617; AVX512-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13618; AVX512-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23619; AVX512-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23620; AVX512-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3621; AVX512-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3622; AVX512-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3623; AVX512-NEXT:    vmovdqa64 %zmm12, (%rsi)3624; AVX512-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3625; AVX512-NEXT:    vmovdqa64 %zmm14, (%rdx)3626; AVX512-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3627; AVX512-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3628; AVX512-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3629; AVX512-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3630; AVX512-NEXT:    vmovdqa64 %zmm2, (%rcx)3631; AVX512-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3632; AVX512-NEXT:    vzeroupper3633; AVX512-NEXT:    retq3634;3635; AVX512-FCP-LABEL: load_i32_stride3_vf64:3636; AVX512-FCP:       # %bb.0:3637; AVX512-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm43638; AVX512-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm53639; AVX512-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm03640; AVX512-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm63641; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm73642; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm13643; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm83644; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm93645; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm23646; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm103647; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm113648; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33649; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3650; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133651; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133652; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3653; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133654; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm153655; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153656; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153657; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163658; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163659; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163660; AVX512-FCP-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123661; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123662; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3663; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm173664; AVX512-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173665; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3666; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173667; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm193668; AVX512-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193669; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193670; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm203671; AVX512-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203672; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203673; AVX512-FCP-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143674; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143675; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3676; AVX512-FCP-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33677; AVX512-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3678; AVX512-FCP-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33679; AVX512-FCP-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03680; AVX512-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03681; AVX512-FCP-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13682; AVX512-FCP-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13683; AVX512-FCP-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23684; AVX512-FCP-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23685; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3686; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3687; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3688; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, (%rsi)3689; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3690; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, (%rdx)3691; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3692; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3693; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3694; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3695; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)3696; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3697; AVX512-FCP-NEXT:    vzeroupper3698; AVX512-FCP-NEXT:    retq3699;3700; AVX512DQ-LABEL: load_i32_stride3_vf64:3701; AVX512DQ:       # %bb.0:3702; AVX512DQ-NEXT:    vmovdqa64 704(%rdi), %zmm43703; AVX512DQ-NEXT:    vmovdqa64 640(%rdi), %zmm53704; AVX512DQ-NEXT:    vmovdqa64 576(%rdi), %zmm03705; AVX512DQ-NEXT:    vmovdqa64 512(%rdi), %zmm63706; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm73707; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm13708; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm83709; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm93710; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm23711; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm103712; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm113713; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm33714; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3715; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm133716; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133717; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3718; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133719; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm153720; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153721; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153722; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm163723; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163724; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163725; AVX512DQ-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123726; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123727; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3728; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm173729; AVX512DQ-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173730; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3731; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173732; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm193733; AVX512DQ-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193734; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193735; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm203736; AVX512DQ-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203737; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203738; AVX512DQ-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143739; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143740; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3741; AVX512DQ-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33742; AVX512DQ-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3743; AVX512DQ-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33744; AVX512DQ-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03745; AVX512DQ-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03746; AVX512DQ-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13747; AVX512DQ-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13748; AVX512DQ-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23749; AVX512DQ-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23750; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3751; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3752; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3753; AVX512DQ-NEXT:    vmovdqa64 %zmm12, (%rsi)3754; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3755; AVX512DQ-NEXT:    vmovdqa64 %zmm14, (%rdx)3756; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3757; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3758; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3759; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3760; AVX512DQ-NEXT:    vmovdqa64 %zmm2, (%rcx)3761; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3762; AVX512DQ-NEXT:    vzeroupper3763; AVX512DQ-NEXT:    retq3764;3765; AVX512DQ-FCP-LABEL: load_i32_stride3_vf64:3766; AVX512DQ-FCP:       # %bb.0:3767; AVX512DQ-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm43768; AVX512DQ-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm53769; AVX512DQ-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm03770; AVX512DQ-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm63771; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm73772; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm13773; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm83774; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm93775; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm23776; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm103777; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm113778; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33779; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3780; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133781; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133782; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3783; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133784; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm153785; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153786; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153787; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163788; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163789; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163790; AVX512DQ-FCP-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123791; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123792; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3793; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm173794; AVX512DQ-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173795; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3796; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173797; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm193798; AVX512DQ-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193799; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193800; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm203801; AVX512DQ-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203802; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203803; AVX512DQ-FCP-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143804; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143805; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3806; AVX512DQ-FCP-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33807; AVX512DQ-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3808; AVX512DQ-FCP-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33809; AVX512DQ-FCP-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03810; AVX512DQ-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03811; AVX512DQ-FCP-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13812; AVX512DQ-FCP-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13813; AVX512DQ-FCP-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23814; AVX512DQ-FCP-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23815; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3816; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3817; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3818; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%rsi)3819; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3820; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, (%rdx)3821; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3822; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3823; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3824; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3825; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)3826; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3827; AVX512DQ-FCP-NEXT:    vzeroupper3828; AVX512DQ-FCP-NEXT:    retq3829;3830; AVX512BW-LABEL: load_i32_stride3_vf64:3831; AVX512BW:       # %bb.0:3832; AVX512BW-NEXT:    vmovdqa64 704(%rdi), %zmm43833; AVX512BW-NEXT:    vmovdqa64 640(%rdi), %zmm53834; AVX512BW-NEXT:    vmovdqa64 576(%rdi), %zmm03835; AVX512BW-NEXT:    vmovdqa64 512(%rdi), %zmm63836; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm73837; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm13838; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm83839; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm93840; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm23841; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm103842; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm113843; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm33844; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3845; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm133846; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133847; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3848; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133849; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm153850; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153851; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153852; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm163853; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163854; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163855; AVX512BW-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123856; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123857; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3858; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm173859; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173860; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3861; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173862; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm193863; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193864; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193865; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm203866; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203867; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203868; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143869; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143870; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3871; AVX512BW-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33872; AVX512BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3873; AVX512BW-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33874; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03875; AVX512BW-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03876; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13877; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13878; AVX512BW-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23879; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23880; AVX512BW-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3881; AVX512BW-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3882; AVX512BW-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3883; AVX512BW-NEXT:    vmovdqa64 %zmm12, (%rsi)3884; AVX512BW-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3885; AVX512BW-NEXT:    vmovdqa64 %zmm14, (%rdx)3886; AVX512BW-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3887; AVX512BW-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3888; AVX512BW-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3889; AVX512BW-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3890; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rcx)3891; AVX512BW-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3892; AVX512BW-NEXT:    vzeroupper3893; AVX512BW-NEXT:    retq3894;3895; AVX512BW-FCP-LABEL: load_i32_stride3_vf64:3896; AVX512BW-FCP:       # %bb.0:3897; AVX512BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm43898; AVX512BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm53899; AVX512BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm03900; AVX512BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm63901; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm73902; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm13903; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm83904; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm93905; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm23906; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm103907; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm113908; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm33909; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3910; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm133911; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133912; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3913; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133914; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm153915; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153916; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153917; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm163918; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163919; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163920; AVX512BW-FCP-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123921; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123922; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3923; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm173924; AVX512BW-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173925; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3926; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173927; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm193928; AVX512BW-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193929; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193930; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm203931; AVX512BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203932; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203933; AVX512BW-FCP-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143934; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm18, %zmm143935; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]3936; AVX512BW-FCP-NEXT:    vpermt2d %zmm9, %zmm18, %zmm33937; AVX512BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]3938; AVX512BW-FCP-NEXT:    vpermt2d %zmm8, %zmm9, %zmm33939; AVX512BW-FCP-NEXT:    vpermt2d %zmm5, %zmm18, %zmm03940; AVX512BW-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm03941; AVX512BW-FCP-NEXT:    vpermt2d %zmm7, %zmm18, %zmm13942; AVX512BW-FCP-NEXT:    vpermt2d %zmm6, %zmm9, %zmm13943; AVX512BW-FCP-NEXT:    vpermt2d %zmm10, %zmm18, %zmm23944; AVX512BW-FCP-NEXT:    vpermt2d %zmm11, %zmm9, %zmm23945; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 192(%rsi)3946; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rsi)3947; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)3948; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rsi)3949; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rdx)3950; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, (%rdx)3951; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rdx)3952; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 128(%rdx)3953; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 128(%rcx)3954; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 192(%rcx)3955; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)3956; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rcx)3957; AVX512BW-FCP-NEXT:    vzeroupper3958; AVX512BW-FCP-NEXT:    retq3959;3960; AVX512DQ-BW-LABEL: load_i32_stride3_vf64:3961; AVX512DQ-BW:       # %bb.0:3962; AVX512DQ-BW-NEXT:    vmovdqa64 704(%rdi), %zmm43963; AVX512DQ-BW-NEXT:    vmovdqa64 640(%rdi), %zmm53964; AVX512DQ-BW-NEXT:    vmovdqa64 576(%rdi), %zmm03965; AVX512DQ-BW-NEXT:    vmovdqa64 512(%rdi), %zmm63966; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm73967; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm13968; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm83969; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm93970; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm23971; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm103972; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm113973; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm33974; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]3975; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm133976; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm12, %zmm133977; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]3978; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm14, %zmm133979; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm153980; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm12, %zmm153981; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm14, %zmm153982; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm163983; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm12, %zmm163984; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm14, %zmm163985; AVX512DQ-BW-NEXT:    vpermi2d %zmm10, %zmm2, %zmm123986; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm14, %zmm123987; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]3988; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm173989; AVX512DQ-BW-NEXT:    vpermt2d %zmm1, %zmm14, %zmm173990; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]3991; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm18, %zmm173992; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm193993; AVX512DQ-BW-NEXT:    vpermt2d %zmm3, %zmm14, %zmm193994; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm18, %zmm193995; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm203996; AVX512DQ-BW-NEXT:    vpermt2d %zmm0, %zmm14, %zmm203997; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm18, %zmm203998; AVX512DQ-BW-NEXT:    vpermi2d %zmm2, %zmm10, %zmm143999; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm18, %zmm144000; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]4001; AVX512DQ-BW-NEXT:    vpermt2d %zmm9, %zmm18, %zmm34002; AVX512DQ-BW-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]4003; AVX512DQ-BW-NEXT:    vpermt2d %zmm8, %zmm9, %zmm34004; AVX512DQ-BW-NEXT:    vpermt2d %zmm5, %zmm18, %zmm04005; AVX512DQ-BW-NEXT:    vpermt2d %zmm4, %zmm9, %zmm04006; AVX512DQ-BW-NEXT:    vpermt2d %zmm7, %zmm18, %zmm14007; AVX512DQ-BW-NEXT:    vpermt2d %zmm6, %zmm9, %zmm14008; AVX512DQ-BW-NEXT:    vpermt2d %zmm10, %zmm18, %zmm24009; AVX512DQ-BW-NEXT:    vpermt2d %zmm11, %zmm9, %zmm24010; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 192(%rsi)4011; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 128(%rsi)4012; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 64(%rsi)4013; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, (%rsi)4014; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 192(%rdx)4015; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, (%rdx)4016; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 64(%rdx)4017; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 128(%rdx)4018; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 128(%rcx)4019; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 192(%rcx)4020; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rcx)4021; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 64(%rcx)4022; AVX512DQ-BW-NEXT:    vzeroupper4023; AVX512DQ-BW-NEXT:    retq4024;4025; AVX512DQ-BW-FCP-LABEL: load_i32_stride3_vf64:4026; AVX512DQ-BW-FCP:       # %bb.0:4027; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 704(%rdi), %zmm44028; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 640(%rdi), %zmm54029; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 576(%rdi), %zmm04030; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 512(%rdi), %zmm64031; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm74032; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm14033; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm84034; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm94035; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm24036; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm104037; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm114038; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm34039; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm12 = [0,3,6,9,12,15,18,21,24,27,30,0,0,0,0,0]4040; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm134041; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm12, %zmm134042; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [0,1,2,3,4,5,6,7,8,9,10,17,20,23,26,29]4043; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm14, %zmm134044; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm154045; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm12, %zmm154046; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm14, %zmm154047; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm164048; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm12, %zmm164049; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm14, %zmm164050; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm10, %zmm2, %zmm124051; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm14, %zmm124052; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm14 = [17,20,23,26,29,0,3,6,9,12,15,0,0,0,0,0]4053; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm174054; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm1, %zmm14, %zmm174055; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [0,1,2,3,4,5,6,7,8,9,10,18,21,24,27,30]4056; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm18, %zmm174057; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm194058; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm3, %zmm14, %zmm194059; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm18, %zmm194060; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm204061; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm0, %zmm14, %zmm204062; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm18, %zmm204063; AVX512DQ-BW-FCP-NEXT:    vpermi2d %zmm2, %zmm10, %zmm144064; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm18, %zmm144065; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm18 = [2,5,8,11,14,17,20,23,26,29,0,0,0,0,0,0]4066; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm9, %zmm18, %zmm34067; AVX512DQ-BW-FCP-NEXT:    vpmovsxbd {{.*#+}} zmm9 = [0,1,2,3,4,5,6,7,8,9,16,19,22,25,28,31]4068; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm8, %zmm9, %zmm34069; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm5, %zmm18, %zmm04070; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm4, %zmm9, %zmm04071; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm7, %zmm18, %zmm14072; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm6, %zmm9, %zmm14073; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm10, %zmm18, %zmm24074; AVX512DQ-BW-FCP-NEXT:    vpermt2d %zmm11, %zmm9, %zmm24075; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 192(%rsi)4076; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 128(%rsi)4077; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 64(%rsi)4078; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rsi)4079; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rdx)4080; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, (%rdx)4081; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 64(%rdx)4082; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 128(%rdx)4083; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 128(%rcx)4084; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 192(%rcx)4085; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rcx)4086; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 64(%rcx)4087; AVX512DQ-BW-FCP-NEXT:    vzeroupper4088; AVX512DQ-BW-FCP-NEXT:    retq4089  %wide.vec = load <192 x i32>, ptr %in.vec, align 644090  %strided.vec0 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <64 x i32> <i32 0, i32 3, i32 6, i32 9, i32 12, i32 15, i32 18, i32 21, i32 24, i32 27, i32 30, i32 33, i32 36, i32 39, i32 42, i32 45, i32 48, i32 51, i32 54, i32 57, i32 60, i32 63, i32 66, i32 69, i32 72, i32 75, i32 78, i32 81, i32 84, i32 87, i32 90, i32 93, i32 96, i32 99, i32 102, i32 105, i32 108, i32 111, i32 114, i32 117, i32 120, i32 123, i32 126, i32 129, i32 132, i32 135, i32 138, i32 141, i32 144, i32 147, i32 150, i32 153, i32 156, i32 159, i32 162, i32 165, i32 168, i32 171, i32 174, i32 177, i32 180, i32 183, i32 186, i32 189>4091  %strided.vec1 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <64 x i32> <i32 1, i32 4, i32 7, i32 10, i32 13, i32 16, i32 19, i32 22, i32 25, i32 28, i32 31, i32 34, i32 37, i32 40, i32 43, i32 46, i32 49, i32 52, i32 55, i32 58, i32 61, i32 64, i32 67, i32 70, i32 73, i32 76, i32 79, i32 82, i32 85, i32 88, i32 91, i32 94, i32 97, i32 100, i32 103, i32 106, i32 109, i32 112, i32 115, i32 118, i32 121, i32 124, i32 127, i32 130, i32 133, i32 136, i32 139, i32 142, i32 145, i32 148, i32 151, i32 154, i32 157, i32 160, i32 163, i32 166, i32 169, i32 172, i32 175, i32 178, i32 181, i32 184, i32 187, i32 190>4092  %strided.vec2 = shufflevector <192 x i32> %wide.vec, <192 x i32> poison, <64 x i32> <i32 2, i32 5, i32 8, i32 11, i32 14, i32 17, i32 20, i32 23, i32 26, i32 29, i32 32, i32 35, i32 38, i32 41, i32 44, i32 47, i32 50, i32 53, i32 56, i32 59, i32 62, i32 65, i32 68, i32 71, i32 74, i32 77, i32 80, i32 83, i32 86, i32 89, i32 92, i32 95, i32 98, i32 101, i32 104, i32 107, i32 110, i32 113, i32 116, i32 119, i32 122, i32 125, i32 128, i32 131, i32 134, i32 137, i32 140, i32 143, i32 146, i32 149, i32 152, i32 155, i32 158, i32 161, i32 164, i32 167, i32 170, i32 173, i32 176, i32 179, i32 182, i32 185, i32 188, i32 191>4093  store <64 x i32> %strided.vec0, ptr %out.vec0, align 644094  store <64 x i32> %strided.vec1, ptr %out.vec1, align 644095  store <64 x i32> %strided.vec2, ptr %out.vec2, align 644096  ret void4097}4098