Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i32-stride-5.ll
blobf0c2f3f23a2d038f2c2e9e2014b452de7e5d52d8
1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+sse2 | FileCheck %s --check-prefixes=SSE,FALLBACK0
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX,AVX1,AVX1-ONLY,FALLBACK1
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-SLOW,FALLBACK2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST,FALLBACK3
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX1,AVX2,AVX2-ONLY,AVX2-FAST-PERLANE,FALLBACK4
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512F-ONLY-SLOW,FALLBACK5
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512F-ONLY-FAST,FALLBACK6
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-SLOW,AVX512F-SLOW,AVX512DQ-SLOW,FALLBACK7
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512F,AVX512-FAST,AVX512F-FAST,AVX512DQ-FAST,FALLBACK8
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512BW-ONLY-SLOW,FALLBACK9
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512BW-ONLY-FAST,FALLBACK10
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-SLOW,AVX512BW-SLOW,AVX512DQBW-SLOW,FALLBACK11
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX,AVX2,AVX512,AVX512BW,AVX512-FAST,AVX512BW-FAST,AVX512DQBW-FAST,FALLBACK12
16 ; These patterns are produced by LoopVectorizer for interleaved stores.
18 define void @store_i32_stride5_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
19 ; SSE-LABEL: store_i32_stride5_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero
22 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero
23 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = mem[0],zero
24 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = mem[0],zero
25 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = mem[0],zero
26 ; SSE-NEXT:    movaps %xmm2, %xmm5
27 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
28 ; SSE-NEXT:    movaps %xmm0, %xmm6
29 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
30 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
31 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm1[1,1]
32 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,0]
33 ; SSE-NEXT:    movss {{.*#+}} xmm0 = xmm4[0],xmm0[1,2,3]
34 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[1,1,1,1]
35 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[1,1,1,1]
36 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
37 ; SSE-NEXT:    movq %xmm2, 32(%r9)
38 ; SSE-NEXT:    movaps %xmm6, (%r9)
39 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
40 ; SSE-NEXT:    retq
42 ; AVX1-ONLY-LABEL: store_i32_stride5_vf2:
43 ; AVX1-ONLY:       # %bb.0:
44 ; AVX1-ONLY-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
45 ; AVX1-ONLY-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
46 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
47 ; AVX1-ONLY-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
48 ; AVX1-ONLY-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
49 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
50 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm2
51 ; AVX1-ONLY-NEXT:    vmovsd {{.*#+}} xmm3 = mem[0],zero
52 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,2,2,1,4,6,6,5]
53 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
54 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} ymm0 = ymm0[u,u,0,2,u,5,7,u]
55 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6],ymm2[7]
56 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm2
57 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4],ymm0[5,6,7]
58 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
59 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm3[1],xmm1[2,3]
60 ; AVX1-ONLY-NEXT:    vmovlps %xmm1, 32(%r9)
61 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
62 ; AVX1-ONLY-NEXT:    vzeroupper
63 ; AVX1-ONLY-NEXT:    retq
65 ; AVX2-ONLY-LABEL: store_i32_stride5_vf2:
66 ; AVX2-ONLY:       # %bb.0:
67 ; AVX2-ONLY-NEXT:    movq (%r8), %rax
68 ; AVX2-ONLY-NEXT:    vmovq {{.*#+}} xmm0 = mem[0],zero
69 ; AVX2-ONLY-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
70 ; AVX2-ONLY-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm1[0],xmm0[0]
71 ; AVX2-ONLY-NEXT:    vmovq {{.*#+}} xmm1 = mem[0],zero
72 ; AVX2-ONLY-NEXT:    vmovq {{.*#+}} xmm2 = mem[0],zero
73 ; AVX2-ONLY-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm1[0]
74 ; AVX2-ONLY-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm0
75 ; AVX2-ONLY-NEXT:    vmovq %rax, %xmm2
76 ; AVX2-ONLY-NEXT:    vmovdqa {{.*#+}} ymm3 = <0,2,4,6,u,1,3,5>
77 ; AVX2-ONLY-NEXT:    vpermd %ymm0, %ymm3, %ymm0
78 ; AVX2-ONLY-NEXT:    vmovd %eax, %xmm3
79 ; AVX2-ONLY-NEXT:    vpbroadcastd %xmm3, %ymm3
80 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4],ymm0[5,6,7]
81 ; AVX2-ONLY-NEXT:    vpshufd {{.*#+}} xmm1 = xmm1[1,1,1,1]
82 ; AVX2-ONLY-NEXT:    vpblendd {{.*#+}} xmm1 = xmm1[0],xmm2[1],xmm1[2,3]
83 ; AVX2-ONLY-NEXT:    vmovq %xmm1, 32(%r9)
84 ; AVX2-ONLY-NEXT:    vmovdqa %ymm0, (%r9)
85 ; AVX2-ONLY-NEXT:    vzeroupper
86 ; AVX2-ONLY-NEXT:    retq
88 ; AVX512-LABEL: store_i32_stride5_vf2:
89 ; AVX512:       # %bb.0:
90 ; AVX512-NEXT:    vmovsd {{.*#+}} xmm0 = mem[0],zero
91 ; AVX512-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
92 ; AVX512-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm1[0],xmm0[0]
93 ; AVX512-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
94 ; AVX512-NEXT:    vmovsd {{.*#+}} xmm2 = mem[0],zero
95 ; AVX512-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm2[0],xmm1[0]
96 ; AVX512-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
97 ; AVX512-NEXT:    vmovsd {{.*#+}} xmm1 = mem[0],zero
98 ; AVX512-NEXT:    vinsertf32x4 $2, %xmm1, %zmm0, %zmm0
99 ; AVX512-NEXT:    vmovaps {{.*#+}} zmm1 = <0,2,4,6,8,1,3,5,7,9,u,u,u,u,u,u>
100 ; AVX512-NEXT:    vpermps %zmm0, %zmm1, %zmm0
101 ; AVX512-NEXT:    vextractf32x4 $2, %zmm0, %xmm1
102 ; AVX512-NEXT:    vmovlps %xmm1, 32(%r9)
103 ; AVX512-NEXT:    vmovaps %ymm0, (%r9)
104 ; AVX512-NEXT:    vzeroupper
105 ; AVX512-NEXT:    retq
106   %in.vec0 = load <2 x i32>, ptr %in.vecptr0, align 64
107   %in.vec1 = load <2 x i32>, ptr %in.vecptr1, align 64
108   %in.vec2 = load <2 x i32>, ptr %in.vecptr2, align 64
109   %in.vec3 = load <2 x i32>, ptr %in.vecptr3, align 64
110   %in.vec4 = load <2 x i32>, ptr %in.vecptr4, align 64
111   %1 = shufflevector <2 x i32> %in.vec0, <2 x i32> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
112   %2 = shufflevector <2 x i32> %in.vec2, <2 x i32> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
113   %3 = shufflevector <4 x i32> %1, <4 x i32> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
114   %4 = shufflevector <2 x i32> %in.vec4, <2 x i32> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
115   %5 = shufflevector <8 x i32> %3, <8 x i32> %4, <10 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
116   %interleaved.vec = shufflevector <10 x i32> %5, <10 x i32> poison, <10 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 1, i32 3, i32 5, i32 7, i32 9>
117   store <10 x i32> %interleaved.vec, ptr %out.vec, align 64
118   ret void
121 define void @store_i32_stride5_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
122 ; SSE-LABEL: store_i32_stride5_vf4:
123 ; SSE:       # %bb.0:
124 ; SSE-NEXT:    movaps (%rdi), %xmm0
125 ; SSE-NEXT:    movaps (%rsi), %xmm1
126 ; SSE-NEXT:    movaps (%rdx), %xmm2
127 ; SSE-NEXT:    movaps (%rcx), %xmm3
128 ; SSE-NEXT:    movaps (%r8), %xmm4
129 ; SSE-NEXT:    movaps %xmm2, %xmm5
130 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm3[0],xmm5[1],xmm3[1]
131 ; SSE-NEXT:    movaps %xmm0, %xmm6
132 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm1[0],xmm6[1],xmm1[1]
133 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
134 ; SSE-NEXT:    movaps %xmm3, %xmm5
135 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,3],xmm4[3,3]
136 ; SSE-NEXT:    movaps %xmm1, %xmm7
137 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm2[2],xmm7[3],xmm2[3]
138 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[2,3],xmm5[0,2]
139 ; SSE-NEXT:    movaps %xmm0, %xmm5
140 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[3,1],xmm4[2,3]
141 ; SSE-NEXT:    movaps %xmm3, %xmm8
142 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm2[1]
143 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[2,0],xmm5[2,0]
144 ; SSE-NEXT:    movaps %xmm0, %xmm5
145 ; SSE-NEXT:    unpckhps {{.*#+}} xmm5 = xmm5[2],xmm1[2],xmm5[3],xmm1[3]
146 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm4[1,1]
147 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm5[0,1]
148 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm1[1,1]
149 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,0]
150 ; SSE-NEXT:    movss {{.*#+}} xmm0 = xmm4[0],xmm0[1,2,3]
151 ; SSE-NEXT:    movaps %xmm3, 32(%r9)
152 ; SSE-NEXT:    movaps %xmm8, 48(%r9)
153 ; SSE-NEXT:    movaps %xmm7, 64(%r9)
154 ; SSE-NEXT:    movaps %xmm6, (%r9)
155 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
156 ; SSE-NEXT:    retq
158 ; AVX1-ONLY-LABEL: store_i32_stride5_vf4:
159 ; AVX1-ONLY:       # %bb.0:
160 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm0
161 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm1
162 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm2
163 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm3
164 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm4
165 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm5
166 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm6
167 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[1],ymm6[1],ymm5[4],ymm6[4],ymm5[5],ymm6[5]
168 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm5 = ymm5[0,0,2,3]
169 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm1
170 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm7 = ymm4[0],ymm1[0],ymm4[1],ymm1[1],ymm4[4],ymm1[4],ymm4[5],ymm1[5]
171 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0,0,3,3]
172 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3],ymm7[4,5,6],ymm5[7]
173 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = mem[0,1,0,1]
174 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
175 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1,2,3],ymm0[4],ymm5[5,6,7]
176 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} ymm1 = ymm1[u,u,u,2,u,u,u,7]
177 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm4[2],ymm1[3,4,5,6,7]
178 ; AVX1-ONLY-NEXT:    vpermilps {{.*#+}} ymm4 = ymm6[1,u,u,u,6,u,u,u]
179 ; AVX1-ONLY-NEXT:    vbroadcastss 8(%rcx), %ymm5
180 ; AVX1-ONLY-NEXT:    vunpcklps {{.*#+}} ymm4 = ymm4[0],ymm5[0],ymm4[1],ymm5[1],ymm4[4],ymm5[4],ymm4[5],ymm5[5]
181 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3],ymm4[4,5],ymm1[6,7]
182 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm7[1],ymm1[2,3,4,5],ymm7[6],ymm1[7]
183 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
184 ; AVX1-ONLY-NEXT:    vbroadcastss 12(%rsi), %xmm3
185 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm3[0],xmm2[1,2,3]
186 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1,2],xmm7[3]
187 ; AVX1-ONLY-NEXT:    vmovaps %xmm2, 64(%r9)
188 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
189 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 32(%r9)
190 ; AVX1-ONLY-NEXT:    vzeroupper
191 ; AVX1-ONLY-NEXT:    retq
193 ; AVX2-SLOW-LABEL: store_i32_stride5_vf4:
194 ; AVX2-SLOW:       # %bb.0:
195 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm0
196 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %xmm1
197 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %xmm2
198 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %xmm3
199 ; AVX2-SLOW-NEXT:    vmovaps (%r8), %xmm4
200 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm5
201 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm6
202 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} ymm7 = <u,u,0,4,u,u,u,1>
203 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm7, %ymm7
204 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} ymm8 = <u,4,u,u,u,1,5,u>
205 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm8, %ymm8
206 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6],ymm7[7]
207 ; AVX2-SLOW-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
208 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm7[1,2,3],ymm0[4],ymm7[5,6,7]
209 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} ymm7 = <u,u,2,6,u,u,u,3>
210 ; AVX2-SLOW-NEXT:    vpermps %ymm5, %ymm7, %ymm5
211 ; AVX2-SLOW-NEXT:    vmovaps {{.*#+}} ymm7 = <5,u,u,u,2,6,u,u>
212 ; AVX2-SLOW-NEXT:    vpermps %ymm6, %ymm7, %ymm6
213 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
214 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,2,1]
215 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4,5],ymm6[6],ymm5[7]
216 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
217 ; AVX2-SLOW-NEXT:    vinsertps {{.*#+}} xmm1 = xmm1[3],xmm2[1,2],zero
218 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[3]
219 ; AVX2-SLOW-NEXT:    vmovaps %xmm1, 64(%r9)
220 ; AVX2-SLOW-NEXT:    vmovaps %ymm5, 32(%r9)
221 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%r9)
222 ; AVX2-SLOW-NEXT:    vzeroupper
223 ; AVX2-SLOW-NEXT:    retq
225 ; AVX2-FAST-LABEL: store_i32_stride5_vf4:
226 ; AVX2-FAST:       # %bb.0:
227 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm0
228 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %xmm1
229 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %xmm2
230 ; AVX2-FAST-NEXT:    vmovaps (%r8), %xmm3
231 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm4
232 ; AVX2-FAST-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm2
233 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm5 = <u,u,0,4,u,u,u,1>
234 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm5, %ymm5
235 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm6 = <u,4,u,u,u,1,5,u>
236 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm6, %ymm6
237 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5,6],ymm5[7]
238 ; AVX2-FAST-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm0
239 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1,2,3],ymm0[4],ymm5[5,6,7]
240 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm5 = <u,u,2,6,u,u,u,3>
241 ; AVX2-FAST-NEXT:    vpermps %ymm4, %ymm5, %ymm4
242 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm5 = <5,u,u,u,2,6,u,u>
243 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm5, %ymm5
244 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1],ymm4[2,3],ymm5[4,5],ymm4[6,7]
245 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm3[0,1,2,1]
246 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1],ymm4[2,3,4,5],ymm5[6],ymm4[7]
247 ; AVX2-FAST-NEXT:    vbroadcastsd {{.*#+}} ymm5 = [7,3,7,3,7,3,7,3]
248 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm5, %ymm2
249 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[3,3,3,3]
250 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0],xmm2[1,2,3]
251 ; AVX2-FAST-NEXT:    vmovaps %ymm4, 32(%r9)
252 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%r9)
253 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm0 = xmm1[0,1,2],xmm3[3]
254 ; AVX2-FAST-NEXT:    vmovaps %xmm0, 64(%r9)
255 ; AVX2-FAST-NEXT:    vzeroupper
256 ; AVX2-FAST-NEXT:    retq
258 ; AVX2-FAST-PERLANE-LABEL: store_i32_stride5_vf4:
259 ; AVX2-FAST-PERLANE:       # %bb.0:
260 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm0
261 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %xmm1
262 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %xmm2
263 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %xmm3
264 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%r8), %xmm4
265 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm5
266 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm6
267 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} ymm7 = <u,u,0,4,u,u,u,1>
268 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm7, %ymm7
269 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} ymm8 = <u,4,u,u,u,1,5,u>
270 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm8, %ymm8
271 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6],ymm7[7]
272 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm0
273 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm7[1,2,3],ymm0[4],ymm7[5,6,7]
274 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} ymm7 = <u,u,2,6,u,u,u,3>
275 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm5, %ymm7, %ymm5
276 ; AVX2-FAST-PERLANE-NEXT:    vmovaps {{.*#+}} ymm7 = <5,u,u,u,2,6,u,u>
277 ; AVX2-FAST-PERLANE-NEXT:    vpermps %ymm6, %ymm7, %ymm6
278 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
279 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,2,1]
280 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1],ymm5[2,3,4,5],ymm6[6],ymm5[7]
281 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[3,3],xmm3[3,3]
282 ; AVX2-FAST-PERLANE-NEXT:    vinsertps {{.*#+}} xmm1 = xmm1[3],xmm2[1,2],zero
283 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1,2],xmm4[3]
284 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %xmm1, 64(%r9)
285 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm5, 32(%r9)
286 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%r9)
287 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
288 ; AVX2-FAST-PERLANE-NEXT:    retq
290 ; AVX512-LABEL: store_i32_stride5_vf4:
291 ; AVX512:       # %bb.0:
292 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
293 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm1
294 ; AVX512-NEXT:    vmovdqa (%r8), %xmm2
295 ; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
296 ; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
297 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
298 ; AVX512-NEXT:    vmovdqa {{.*#+}} xmm1 = [7,11,15,19]
299 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm1
300 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,4,8,12,16,1,5,9,13,17,2,6,10,14,18,3]
301 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm0, %zmm3
302 ; AVX512-NEXT:    vmovdqa64 %zmm3, (%r9)
303 ; AVX512-NEXT:    vmovdqa %xmm1, 64(%r9)
304 ; AVX512-NEXT:    vzeroupper
305 ; AVX512-NEXT:    retq
306   %in.vec0 = load <4 x i32>, ptr %in.vecptr0, align 64
307   %in.vec1 = load <4 x i32>, ptr %in.vecptr1, align 64
308   %in.vec2 = load <4 x i32>, ptr %in.vecptr2, align 64
309   %in.vec3 = load <4 x i32>, ptr %in.vecptr3, align 64
310   %in.vec4 = load <4 x i32>, ptr %in.vecptr4, align 64
311   %1 = shufflevector <4 x i32> %in.vec0, <4 x i32> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
312   %2 = shufflevector <4 x i32> %in.vec2, <4 x i32> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
313   %3 = shufflevector <8 x i32> %1, <8 x i32> %2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
314   %4 = shufflevector <4 x i32> %in.vec4, <4 x i32> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
315   %5 = shufflevector <16 x i32> %3, <16 x i32> %4, <20 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19>
316   %interleaved.vec = shufflevector <20 x i32> %5, <20 x i32> poison, <20 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 1, i32 5, i32 9, i32 13, i32 17, i32 2, i32 6, i32 10, i32 14, i32 18, i32 3, i32 7, i32 11, i32 15, i32 19>
317   store <20 x i32> %interleaved.vec, ptr %out.vec, align 64
318   ret void
321 define void @store_i32_stride5_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
322 ; SSE-LABEL: store_i32_stride5_vf8:
323 ; SSE:       # %bb.0:
324 ; SSE-NEXT:    movaps (%rdi), %xmm1
325 ; SSE-NEXT:    movaps 16(%rdi), %xmm5
326 ; SSE-NEXT:    movdqa (%rsi), %xmm6
327 ; SSE-NEXT:    movdqa 16(%rsi), %xmm3
328 ; SSE-NEXT:    movdqa (%rdx), %xmm7
329 ; SSE-NEXT:    movdqa 16(%rdx), %xmm10
330 ; SSE-NEXT:    movaps (%rcx), %xmm4
331 ; SSE-NEXT:    movaps 16(%rcx), %xmm2
332 ; SSE-NEXT:    movaps (%r8), %xmm0
333 ; SSE-NEXT:    movaps 16(%r8), %xmm11
334 ; SSE-NEXT:    movaps %xmm2, %xmm9
335 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[3,3],xmm11[3,3]
336 ; SSE-NEXT:    pshufd {{.*#+}} xmm12 = xmm10[3,3,3,3]
337 ; SSE-NEXT:    pshufd {{.*#+}} xmm8 = xmm3[3,3,3,3]
338 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm12[0],xmm8[1],xmm12[1]
339 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,1],xmm9[0,2]
340 ; SSE-NEXT:    movaps %xmm4, %xmm12
341 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[3,3],xmm0[3,3]
342 ; SSE-NEXT:    pshufd {{.*#+}} xmm13 = xmm6[3,3,3,3]
343 ; SSE-NEXT:    pshufd {{.*#+}} xmm9 = xmm7[2,3,2,3]
344 ; SSE-NEXT:    movss {{.*#+}} xmm9 = xmm13[0],xmm9[1,2,3]
345 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm12[0,2]
346 ; SSE-NEXT:    movaps %xmm5, %xmm13
347 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[3,1],xmm11[2,3]
348 ; SSE-NEXT:    movaps %xmm2, %xmm12
349 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm10[1]
350 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[2,0],xmm13[2,0]
351 ; SSE-NEXT:    movaps %xmm5, %xmm13
352 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
353 ; SSE-NEXT:    unpckhps {{.*#+}} xmm13 = xmm13[2],xmm3[2],xmm13[3],xmm3[3]
354 ; SSE-NEXT:    movaps %xmm10, %xmm14
355 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm2[0],xmm14[1],xmm2[1]
356 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[1,1],xmm11[1,1]
357 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,2],xmm13[0,1]
358 ; SSE-NEXT:    movaps %xmm5, %xmm13
359 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm3[0],xmm13[1],xmm3[1]
360 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm14[0]
361 ; SSE-NEXT:    movaps %xmm1, %xmm14
362 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[3,0],xmm0[2,0]
363 ; SSE-NEXT:    movaps %xmm0, %xmm3
364 ; SSE-NEXT:    movdqa %xmm7, %xmm15
365 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm4[2],xmm15[3],xmm4[3]
366 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm14[2,0]
367 ; SSE-NEXT:    movaps %xmm1, %xmm14
368 ; SSE-NEXT:    movdqa %xmm6, %xmm0
369 ; SSE-NEXT:    unpckhps {{.*#+}} xmm14 = xmm14[2],xmm6[2],xmm14[3],xmm6[3]
370 ; SSE-NEXT:    movdqa %xmm7, %xmm6
371 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm4[0],xmm6[1],xmm4[1]
372 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm3[1,1]
373 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm14[0,1]
374 ; SSE-NEXT:    movaps %xmm1, %xmm14
375 ; SSE-NEXT:    unpcklps {{.*#+}} xmm14 = xmm14[0],xmm0[0],xmm14[1],xmm0[1]
376 ; SSE-NEXT:    movlhps {{.*#+}} xmm14 = xmm14[0],xmm6[0]
377 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Folded Reload
378 ; SSE-NEXT:    # xmm10 = xmm10[1,1],mem[1,1]
379 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm10[2,0]
380 ; SSE-NEXT:    movss {{.*#+}} xmm5 = xmm11[0],xmm5[1,2,3]
381 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[1,1],xmm0[1,1]
382 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm7[2,0]
383 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm3[0],xmm1[1,2,3]
384 ; SSE-NEXT:    movaps %xmm14, (%r9)
385 ; SSE-NEXT:    movaps %xmm4, 32(%r9)
386 ; SSE-NEXT:    movaps %xmm15, 48(%r9)
387 ; SSE-NEXT:    movaps %xmm13, 80(%r9)
388 ; SSE-NEXT:    movaps %xmm2, 112(%r9)
389 ; SSE-NEXT:    movaps %xmm12, 128(%r9)
390 ; SSE-NEXT:    movaps %xmm1, 16(%r9)
391 ; SSE-NEXT:    movaps %xmm9, 64(%r9)
392 ; SSE-NEXT:    movaps %xmm5, 96(%r9)
393 ; SSE-NEXT:    movaps %xmm8, 144(%r9)
394 ; SSE-NEXT:    retq
396 ; AVX1-ONLY-LABEL: store_i32_stride5_vf8:
397 ; AVX1-ONLY:       # %bb.0:
398 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm1
399 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %ymm3
400 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %ymm2
401 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm4
402 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm0
403 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm6
404 ; AVX1-ONLY-NEXT:    vmovaps 16(%rsi), %xmm7
405 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm8
406 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm9
407 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,xmm8[1],xmm6[1],zero
408 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm10 = xmm8[0],xmm6[0],zero,zero
409 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm10, %ymm5
410 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm11
411 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm12
412 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm13 = xmm12[0],xmm11[0]
413 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,2,0]
414 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rdx), %xmm14
415 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm13, %ymm13
416 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm13[2,3],ymm5[4,5,6],ymm13[7]
417 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%r8), %ymm10, %ymm10
418 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0],ymm5[1,2,3],ymm10[4],ymm5[5,6,7]
419 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm10 = zero,zero,xmm9[2],xmm7[2]
420 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm9[1,1],xmm7[1,1]
421 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm7, %ymm7
422 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm4[1,1],ymm2[1,1],ymm4[5,5],ymm2[5,5]
423 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[2,3,2,3]
424 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4],ymm7[5,6,7]
425 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm0[2,3,2,3]
426 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0],ymm7[1,2,3,4],ymm9[5],ymm7[6,7]
427 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm11[2],xmm12[2],xmm11[3],xmm12[3]
428 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rcx), %xmm11
429 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm11, %ymm10
430 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm6 = zero,zero,xmm8[2],xmm6[2]
431 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm6
432 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm10[0,1],ymm6[2,3],ymm10[4,5],ymm6[6,7]
433 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm8 = mem[0,1,0,1]
434 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm8[1],ymm6[2,3,4,5],ymm8[6],ymm6[7]
435 ; AVX1-ONLY-NEXT:    vmovaps 16(%rcx), %xmm8
436 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm10
437 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm11 = xmm10[3,3],xmm8[3,3]
438 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm8[2],xmm10[3],xmm8[3]
439 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm8, %ymm8
440 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm10 = ymm3[3,3],ymm1[3,3],ymm3[7,7],ymm1[7,7]
441 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm10 = ymm10[2,3,2,3]
442 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm10[3,4],ymm8[5,6,7]
443 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4,5,6],ymm9[7]
444 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0,2,3,7,4,6,7]
445 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4],ymm3[5,6,7]
446 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,0,4,5,7,4]
447 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[1,0,2,2]
448 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
449 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
450 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
451 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
452 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, 128(%r9)
453 ; AVX1-ONLY-NEXT:    vmovaps %ymm6, 32(%r9)
454 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 96(%r9)
455 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, (%r9)
456 ; AVX1-ONLY-NEXT:    vzeroupper
457 ; AVX1-ONLY-NEXT:    retq
459 ; AVX2-SLOW-LABEL: store_i32_stride5_vf8:
460 ; AVX2-SLOW:       # %bb.0:
461 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm1
462 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %ymm3
463 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %ymm2
464 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %ymm4
465 ; AVX2-SLOW-NEXT:    vmovaps (%r8), %ymm0
466 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %xmm6
467 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %xmm7
468 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
469 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,2,2]
470 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,0,2,1]
471 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %xmm8
472 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm9
473 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
474 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,1,3,2]
475 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm11 = ymm10[0,1,1,1]
476 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1],ymm5[2,3],ymm11[4,5,6],ymm5[7]
477 ; AVX2-SLOW-NEXT:    vinsertf128 $1, (%r8), %ymm10, %ymm10
478 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0],ymm5[1,2,3],ymm10[4],ymm5[5,6,7]
479 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
480 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,2,2]
481 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,0,2,1]
482 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,1,2,2]
483 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2],xmm6[3]
484 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,1,3]
485 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3],ymm6[4,5],ymm8[6,7]
486 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[0,1,2,1]
487 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]
488 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[1,1,1,1,5,5,5,5]
489 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm2[1],ymm7[2,3,4],ymm2[5],ymm7[6,7]
490 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,2,2,2]
491 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,1,2,2,5,5,6,6]
492 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm1[1,2],ymm8[3,4],ymm1[5,6],ymm8[7]
493 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,3]
494 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4],ymm8[5,6,7]
495 ; AVX2-SLOW-NEXT:    vbroadcastsd 16(%r8), %ymm8
496 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4],ymm8[5],ymm7[6,7]
497 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm1[2],ymm3[3],ymm1[3],ymm3[6],ymm1[6],ymm3[7],ymm1[7]
498 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[3,3,3,3]
499 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm4[0,2,3,3,4,6,7,7]
500 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm2[2,3,2,3,6,7,6,7]
501 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0],ymm9[1,2],ymm10[3,4],ymm9[5,6],ymm10[7]
502 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,1,3,3]
503 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2],ymm8[3,4],ymm9[5,6,7]
504 ; AVX2-SLOW-NEXT:    vbroadcastsd 24(%r8), %ymm9
505 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4,5,6],ymm9[7]
506 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0,2,3,7,4,6,7]
507 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4],ymm3[5,6,7]
508 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,0,4,5,7,4]
509 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]
510 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
511 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
512 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
513 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 64(%r9)
514 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 128(%r9)
515 ; AVX2-SLOW-NEXT:    vmovaps %ymm7, 96(%r9)
516 ; AVX2-SLOW-NEXT:    vmovaps %ymm6, 32(%r9)
517 ; AVX2-SLOW-NEXT:    vmovaps %ymm5, (%r9)
518 ; AVX2-SLOW-NEXT:    vzeroupper
519 ; AVX2-SLOW-NEXT:    retq
521 ; AVX2-FAST-LABEL: store_i32_stride5_vf8:
522 ; AVX2-FAST:       # %bb.0:
523 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm1
524 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %ymm3
525 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %ymm2
526 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %ymm4
527 ; AVX2-FAST-NEXT:    vmovaps (%r8), %ymm0
528 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %xmm6
529 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm7
530 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
531 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm8 = <0,1,0,1,u,u,2,2>
532 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm8, %ymm5
533 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %xmm9
534 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %xmm10
535 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm11 = xmm10[1,1,2,2]
536 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm9[2],xmm11[3]
537 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,1,3]
538 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1],ymm5[2,3],ymm11[4,5],ymm5[6,7]
539 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm0[0,1,2,1]
540 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm11[1],ymm5[2,3,4,5],ymm11[6],ymm5[7]
541 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm9[0],xmm10[0],xmm9[1],xmm10[1]
542 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm8, %ymm8
543 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
544 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm7 = <0,1,u,u,3,2,3,u>
545 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm7, %ymm7
546 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3],ymm7[4,5,6],ymm8[7]
547 ; AVX2-FAST-NEXT:    vinsertf128 $1, (%r8), %ymm6, %ymm6
548 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1,2,3],ymm6[4],ymm7[5,6,7]
549 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[1,1,1,1,5,5,5,5]
550 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm2[1],ymm7[2,3,4],ymm2[5],ymm7[6,7]
551 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,2,2,2]
552 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,1,2,2,5,5,6,6]
553 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm1[1,2],ymm8[3,4],ymm1[5,6],ymm8[7]
554 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,3]
555 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4],ymm8[5,6,7]
556 ; AVX2-FAST-NEXT:    vbroadcastsd 16(%r8), %ymm8
557 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4],ymm8[5],ymm7[6,7]
558 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm1[2],ymm3[3],ymm1[3],ymm3[6],ymm1[6],ymm3[7],ymm1[7]
559 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[3,3,3,3]
560 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm4[0,2,3,3,4,6,7,7]
561 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm10 = ymm2[2,3,2,3,6,7,6,7]
562 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0],ymm9[1,2],ymm10[3,4],ymm9[5,6],ymm10[7]
563 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,1,3,3]
564 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2],ymm8[3,4],ymm9[5,6,7]
565 ; AVX2-FAST-NEXT:    vbroadcastsd 24(%r8), %ymm9
566 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4,5,6],ymm9[7]
567 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0,2,3,7,4,6,7]
568 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4],ymm3[5,6,7]
569 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,0,4,5,7,4]
570 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]
571 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
572 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
573 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
574 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 64(%r9)
575 ; AVX2-FAST-NEXT:    vmovaps %ymm8, 128(%r9)
576 ; AVX2-FAST-NEXT:    vmovaps %ymm7, 96(%r9)
577 ; AVX2-FAST-NEXT:    vmovaps %ymm6, (%r9)
578 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 32(%r9)
579 ; AVX2-FAST-NEXT:    vzeroupper
580 ; AVX2-FAST-NEXT:    retq
582 ; AVX2-FAST-PERLANE-LABEL: store_i32_stride5_vf8:
583 ; AVX2-FAST-PERLANE:       # %bb.0:
584 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm1
585 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %ymm3
586 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %ymm2
587 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %ymm4
588 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%r8), %ymm0
589 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %xmm6
590 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %xmm7
591 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
592 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,2,2]
593 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,0,2,1]
594 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %xmm8
595 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm9
596 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm10 = xmm9[0],xmm8[0],xmm9[1],xmm8[1]
597 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,1,3,2]
598 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm11 = ymm10[0,1,1,1]
599 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1],ymm5[2,3],ymm11[4,5,6],ymm5[7]
600 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, (%r8), %ymm10, %ymm10
601 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0],ymm5[1,2,3],ymm10[4],ymm5[5,6,7]
602 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm9[2],xmm8[2],xmm9[3],xmm8[3]
603 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,2,2]
604 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,0,2,1]
605 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[1,1,2,2]
606 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm6 = xmm6[0,1],xmm7[2],xmm6[3]
607 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,1,1,3]
608 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3],ymm6[4,5],ymm8[6,7]
609 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[0,1,2,1]
610 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]
611 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm4[1,1,1,1,5,5,5,5]
612 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm2[1],ymm7[2,3,4],ymm2[5],ymm7[6,7]
613 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,2,2,2]
614 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm3[1,1,2,2,5,5,6,6]
615 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm1[1,2],ymm8[3,4],ymm1[5,6],ymm8[7]
616 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,3]
617 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2],ymm7[3,4],ymm8[5,6,7]
618 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 16(%r8), %ymm8
619 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3,4],ymm8[5],ymm7[6,7]
620 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm3[2],ymm1[2],ymm3[3],ymm1[3],ymm3[6],ymm1[6],ymm3[7],ymm1[7]
621 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[3,3,3,3]
622 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm4[0,2,3,3,4,6,7,7]
623 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm2[2,3,2,3,6,7,6,7]
624 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0],ymm9[1,2],ymm10[3,4],ymm9[5,6],ymm10[7]
625 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,1,3,3]
626 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2],ymm8[3,4],ymm9[5,6,7]
627 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 24(%r8), %ymm9
628 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2],ymm8[3,4,5,6],ymm9[7]
629 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm3[3,0,2,3,7,4,6,7]
630 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3],ymm1[4],ymm3[5,6,7]
631 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,0,4,5,7,4]
632 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[2,3,0,1,6,7,4,5]
633 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
634 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
635 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3],ymm1[4,5,6,7]
636 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 64(%r9)
637 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 128(%r9)
638 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm7, 96(%r9)
639 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm6, 32(%r9)
640 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm5, (%r9)
641 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
642 ; AVX2-FAST-PERLANE-NEXT:    retq
644 ; AVX512-LABEL: store_i32_stride5_vf8:
645 ; AVX512:       # %bb.0:
646 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm0
647 ; AVX512-NEXT:    vmovdqa (%rdx), %ymm1
648 ; AVX512-NEXT:    vmovdqa (%r8), %ymm2
649 ; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
650 ; AVX512-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
651 ; AVX512-NEXT:    vmovdqa {{.*#+}} ymm3 = <6,14,u,23,31,7,15,u>
652 ; AVX512-NEXT:    vpermi2d %zmm0, %zmm1, %zmm3
653 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm4 = <11,19,27,u,4,12,20,28,u,5,13,21,29,u,6,14>
654 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
655 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
656 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm4, %zmm5
657 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm4 = <0,8,16,24,u,1,9,17,25,u,2,10,18,26,u,3>
658 ; AVX512-NEXT:    vpermi2d %zmm1, %zmm0, %zmm4
659 ; AVX512-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
660 ; AVX512-NEXT:    vpermi2d %zmm2, %zmm4, %zmm0
661 ; AVX512-NEXT:    vpbroadcastq 24(%r8), %ymm1
662 ; AVX512-NEXT:    vmovdqa64 %zmm0, (%r9)
663 ; AVX512-NEXT:    vmovdqa64 %zmm5, 64(%r9)
664 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1],ymm1[2],ymm3[3,4,5,6],ymm1[7]
665 ; AVX512-NEXT:    vmovdqa %ymm0, 128(%r9)
666 ; AVX512-NEXT:    vzeroupper
667 ; AVX512-NEXT:    retq
668   %in.vec0 = load <8 x i32>, ptr %in.vecptr0, align 64
669   %in.vec1 = load <8 x i32>, ptr %in.vecptr1, align 64
670   %in.vec2 = load <8 x i32>, ptr %in.vecptr2, align 64
671   %in.vec3 = load <8 x i32>, ptr %in.vecptr3, align 64
672   %in.vec4 = load <8 x i32>, ptr %in.vecptr4, align 64
673   %1 = shufflevector <8 x i32> %in.vec0, <8 x i32> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
674   %2 = shufflevector <8 x i32> %in.vec2, <8 x i32> %in.vec3, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
675   %3 = shufflevector <16 x i32> %1, <16 x i32> %2, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
676   %4 = shufflevector <8 x i32> %in.vec4, <8 x i32> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
677   %5 = shufflevector <32 x i32> %3, <32 x i32> %4, <40 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39>
678   %interleaved.vec = shufflevector <40 x i32> %5, <40 x i32> poison, <40 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 1, i32 9, i32 17, i32 25, i32 33, i32 2, i32 10, i32 18, i32 26, i32 34, i32 3, i32 11, i32 19, i32 27, i32 35, i32 4, i32 12, i32 20, i32 28, i32 36, i32 5, i32 13, i32 21, i32 29, i32 37, i32 6, i32 14, i32 22, i32 30, i32 38, i32 7, i32 15, i32 23, i32 31, i32 39>
679   store <40 x i32> %interleaved.vec, ptr %out.vec, align 64
680   ret void
683 define void @store_i32_stride5_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
684 ; SSE-LABEL: store_i32_stride5_vf16:
685 ; SSE:       # %bb.0:
686 ; SSE-NEXT:    subq $168, %rsp
687 ; SSE-NEXT:    movdqa (%rsi), %xmm8
688 ; SSE-NEXT:    movdqa 16(%rsi), %xmm6
689 ; SSE-NEXT:    movdqa 32(%rsi), %xmm9
690 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
691 ; SSE-NEXT:    movdqa (%rdx), %xmm10
692 ; SSE-NEXT:    movdqa 16(%rdx), %xmm7
693 ; SSE-NEXT:    movdqa 32(%rdx), %xmm4
694 ; SSE-NEXT:    movaps (%rcx), %xmm5
695 ; SSE-NEXT:    movaps 16(%rcx), %xmm14
696 ; SSE-NEXT:    movaps 32(%rcx), %xmm12
697 ; SSE-NEXT:    movaps (%r8), %xmm3
698 ; SSE-NEXT:    movaps 16(%r8), %xmm15
699 ; SSE-NEXT:    movaps 32(%r8), %xmm11
700 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
701 ; SSE-NEXT:    movaps %xmm5, %xmm0
702 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm3[3,3]
703 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[3,3,3,3]
704 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm10[2,3,2,3]
705 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
706 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
707 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
708 ; SSE-NEXT:    movaps %xmm14, %xmm0
709 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm15[3,3]
710 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[3,3,3,3]
711 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm6[3,3,3,3]
712 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
713 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
714 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
715 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm9[3,3,3,3]
716 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm4[2,3,2,3]
717 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
718 ; SSE-NEXT:    movaps %xmm12, %xmm0
719 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm11[3,3]
720 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
721 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
722 ; SSE-NEXT:    movdqa 48(%rsi), %xmm1
723 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
724 ; SSE-NEXT:    movdqa 48(%rdx), %xmm11
725 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm11[3,3,3,3]
726 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[3,3,3,3]
727 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
728 ; SSE-NEXT:    movaps 48(%rcx), %xmm9
729 ; SSE-NEXT:    movaps 48(%r8), %xmm2
730 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
731 ; SSE-NEXT:    movaps %xmm9, %xmm0
732 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
733 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
734 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
735 ; SSE-NEXT:    movdqa %xmm10, (%rsp) # 16-byte Spill
736 ; SSE-NEXT:    movdqa %xmm10, %xmm0
737 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
738 ; SSE-NEXT:    movdqa (%rdi), %xmm13
739 ; SSE-NEXT:    movdqa %xmm13, %xmm2
740 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
741 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm8[0],xmm2[1],xmm8[1]
742 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm2 = xmm2[0],xmm0[0]
743 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
744 ; SSE-NEXT:    movdqa %xmm13, %xmm0
745 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm8[2],xmm0[3],xmm8[3]
746 ; SSE-NEXT:    movdqa %xmm10, %xmm2
747 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]
748 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
749 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm3[1,1]
750 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm0[0,1]
751 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
752 ; SSE-NEXT:    movdqa %xmm13, %xmm0
753 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm3[2,0]
754 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
755 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
756 ; SSE-NEXT:    movdqa %xmm7, %xmm1
757 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
758 ; SSE-NEXT:    movdqa %xmm7, %xmm0
759 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
760 ; SSE-NEXT:    movdqa 16(%rdi), %xmm7
761 ; SSE-NEXT:    movdqa %xmm7, %xmm8
762 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
763 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]
764 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm8 = xmm8[0],xmm0[0]
765 ; SSE-NEXT:    movdqa %xmm7, %xmm0
766 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]
767 ; SSE-NEXT:    movaps %xmm14, %xmm10
768 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
769 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[1,1],xmm15[1,1]
770 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,2],xmm0[0,1]
771 ; SSE-NEXT:    movdqa %xmm7, %xmm0
772 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm15[2,3]
773 ; SSE-NEXT:    punpckhqdq {{.*#+}} xmm14 = xmm14[1],xmm1[1]
774 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,0],xmm0[2,0]
775 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
776 ; SSE-NEXT:    movdqa %xmm4, %xmm0
777 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm12[0],xmm0[1],xmm12[1]
778 ; SSE-NEXT:    movdqa 32(%rdi), %xmm3
779 ; SSE-NEXT:    movdqa %xmm3, %xmm6
780 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
781 ; SSE-NEXT:    punpckldq {{.*#+}} xmm6 = xmm6[0],xmm2[0],xmm6[1],xmm2[1]
782 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm6 = xmm6[0],xmm0[0]
783 ; SSE-NEXT:    movdqa %xmm3, %xmm0
784 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
785 ; SSE-NEXT:    movdqa %xmm4, %xmm15
786 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm12[2],xmm15[3],xmm12[3]
787 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
788 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[1,1],xmm1[1,1]
789 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,2],xmm0[0,1]
790 ; SSE-NEXT:    movdqa %xmm3, %xmm0
791 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm1[2,0]
792 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[2,0]
793 ; SSE-NEXT:    movdqa %xmm11, %xmm4
794 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm9[0],xmm4[1],xmm9[1]
795 ; SSE-NEXT:    movdqa 48(%rdi), %xmm2
796 ; SSE-NEXT:    movdqa %xmm2, %xmm5
797 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
798 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm1[0],xmm5[1],xmm1[1]
799 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm4[0]
800 ; SSE-NEXT:    movdqa %xmm2, %xmm0
801 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
802 ; SSE-NEXT:    movaps %xmm9, %xmm4
803 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
804 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
805 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
806 ; SSE-NEXT:    movdqa %xmm2, %xmm0
807 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[2,3]
808 ; SSE-NEXT:    punpckhqdq {{.*#+}} xmm9 = xmm9[1],xmm11[1]
809 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,0],xmm0[2,0]
810 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
811 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
812 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
813 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[0,1],xmm0[2,0]
814 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
815 ; SSE-NEXT:    movss {{.*#+}} xmm13 = xmm0[0],xmm13[1,2,3]
816 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
817 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
818 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
819 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2,0]
820 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
821 ; SSE-NEXT:    movss {{.*#+}} xmm7 = xmm0[0],xmm7[1,2,3]
822 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
823 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
824 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
825 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
826 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
827 ; SSE-NEXT:    movss {{.*#+}} xmm3 = xmm0[0],xmm3[1,2,3]
828 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm11 # 16-byte Folded Reload
829 ; SSE-NEXT:    # xmm11 = xmm11[1,1],mem[1,1]
830 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm11[2,0]
831 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
832 ; SSE-NEXT:    movaps %xmm9, 288(%r9)
833 ; SSE-NEXT:    movaps %xmm4, 272(%r9)
834 ; SSE-NEXT:    movdqa %xmm5, 240(%r9)
835 ; SSE-NEXT:    movaps %xmm15, 208(%r9)
836 ; SSE-NEXT:    movaps %xmm12, 192(%r9)
837 ; SSE-NEXT:    movdqa %xmm6, 160(%r9)
838 ; SSE-NEXT:    movaps %xmm14, 128(%r9)
839 ; SSE-NEXT:    movaps %xmm10, 112(%r9)
840 ; SSE-NEXT:    movdqa %xmm8, 80(%r9)
841 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
842 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
843 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
844 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
845 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
846 ; SSE-NEXT:    movaps %xmm0, (%r9)
847 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
848 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
849 ; SSE-NEXT:    movaps %xmm2, 256(%r9)
850 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
851 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
852 ; SSE-NEXT:    movaps %xmm3, 176(%r9)
853 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
854 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
855 ; SSE-NEXT:    movaps %xmm7, 96(%r9)
856 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
857 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
858 ; SSE-NEXT:    movaps %xmm13, 16(%r9)
859 ; SSE-NEXT:    addq $168, %rsp
860 ; SSE-NEXT:    retq
862 ; AVX1-ONLY-LABEL: store_i32_stride5_vf16:
863 ; AVX1-ONLY:       # %bb.0:
864 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm0
865 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm1
866 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %ymm3
867 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %ymm2
868 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm6
869 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %xmm8
870 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm10
871 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm9
872 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = zero,xmm10[1],xmm6[1],zero
873 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = xmm10[0],xmm6[0],zero,zero
874 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm5, %ymm4
875 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm11
876 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm12
877 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm12[0],xmm11[0]
878 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]
879 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rdx), %xmm13
880 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm7, %ymm7
881 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm7[2,3],ymm4[4,5,6],ymm7[7]
882 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%r8), %ymm5, %ymm5
883 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0],ymm4[1,2,3],ymm5[4],ymm4[5,6,7]
884 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
885 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,xmm9[1],xmm8[1],zero
886 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm13
887 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %xmm14
888 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm14[0],xmm13[0]
889 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]
890 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rdx), %xmm15
891 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm7, %ymm7
892 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm15 = xmm9[0],xmm8[0],zero,zero
893 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm15, %ymm5
894 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm7[2,3],ymm5[4,5,6],ymm7[7]
895 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %ymm7
896 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 32(%r8), %ymm15, %ymm15
897 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm15[0],ymm5[1,2,3],ymm15[4],ymm5[5,6,7]
898 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
899 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm11[2],xmm12[2],xmm11[3],xmm12[3]
900 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rcx), %xmm12
901 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm11, %ymm12, %ymm11
902 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm6 = zero,zero,xmm10[2],xmm6[2]
903 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm6, %ymm6
904 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1],ymm6[2,3],ymm11[4,5],ymm6[6,7]
905 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm10 = mem[0,1,0,1]
906 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0],ymm10[1],ymm6[2,3,4,5],ymm10[6],ymm6[7]
907 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
908 ; AVX1-ONLY-NEXT:    vmovaps 48(%rsi), %xmm10
909 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm11
910 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = zero,zero,xmm11[2],xmm10[2]
911 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm11[1,1],xmm10[1,1]
912 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm10, %ymm10
913 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm7[1,1],ymm2[1,1],ymm7[5,5],ymm2[5,5]
914 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, %ymm6
915 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm11[2,3,2,3]
916 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2],ymm11[3,4],ymm10[5,6,7]
917 ; AVX1-ONLY-NEXT:    vmovaps 48(%rcx), %xmm11
918 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdx), %xmm12
919 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm15 = xmm12[3,3],xmm11[3,3]
920 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm11 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
921 ; AVX1-ONLY-NEXT:    vmovaps 32(%r8), %ymm12
922 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm11, %ymm11
923 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[3,3],ymm1[3,3],ymm3[7,7],ymm1[7,7]
924 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, %ymm2
925 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm15[2,3,2,3]
926 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2],ymm15[3,4],ymm11[5,6,7]
927 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm12[2,3,2,3]
928 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm10 = ymm15[0],ymm10[1,2,3,4],ymm15[5],ymm10[6,7]
929 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm15[2],ymm11[3,4,5,6],ymm15[7]
930 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %ymm15
931 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm13 = xmm13[2],xmm14[2],xmm13[3],xmm14[3]
932 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rcx), %xmm14
933 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm13, %ymm14, %ymm13
934 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm8 = zero,zero,xmm9[2],xmm8[2]
935 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm8, %ymm8
936 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1],ymm8[2,3],ymm13[4,5],ymm8[6,7]
937 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm9 = mem[0,1,0,1]
938 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm9[1],ymm8[2,3,4,5],ymm9[6],ymm8[7]
939 ; AVX1-ONLY-NEXT:    vmovaps 16(%rcx), %xmm9
940 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm13
941 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm14 = xmm13[3,3],xmm9[3,3]
942 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm13[2],xmm9[2],xmm13[3],xmm9[3]
943 ; AVX1-ONLY-NEXT:    vmovaps 16(%rsi), %xmm13
944 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm14, %ymm9, %ymm9
945 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, %ymm5
946 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm14 = ymm15[3,3],ymm0[3,3],ymm15[7,7],ymm0[7,7]
947 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm14[2,3,2,3]
948 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm14[3,4],ymm9[5,6,7]
949 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm14
950 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = zero,zero,xmm14[2],xmm13[2]
951 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm13 = xmm14[1,1],xmm13[1,1]
952 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm13, %ymm0
953 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %ymm13
954 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm14
955 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[1,1],ymm13[1,1],ymm14[5,5],ymm13[5,5]
956 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
957 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2],ymm4[3,4],ymm0[5,6,7]
958 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm4
959 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3,2,3]
960 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1],ymm0[2],ymm9[3,4,5,6],ymm0[7]
961 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3,4],ymm0[5],ymm1[6,7]
962 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[3,0,2,3,7,4,6,7]
963 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4],ymm1[5,6,7]
964 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[0,1,3,0,4,5,7,4]
965 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm2 = ymm6[1,0,2,2]
966 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
967 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
968 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm12[3],ymm1[4,5,6,7]
969 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm15[3,0,2,3,7,4,6,7]
970 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4],ymm2[5,6,7]
971 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm14[0,1,3,0,4,5,7,4]
972 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm13[1,0,2,2]
973 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0,1],ymm3[2],ymm7[3,4,5,6],ymm3[7]
974 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4,5],ymm3[6,7]
975 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3],ymm2[4,5,6,7]
976 ; AVX1-ONLY-NEXT:    vmovaps %ymm2, 64(%r9)
977 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 224(%r9)
978 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
979 ; AVX1-ONLY-NEXT:    vmovaps %ymm9, 128(%r9)
980 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, 192(%r9)
981 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 288(%r9)
982 ; AVX1-ONLY-NEXT:    vmovaps %ymm10, 256(%r9)
983 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
984 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
985 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
986 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
987 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
988 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
989 ; AVX1-ONLY-NEXT:    vzeroupper
990 ; AVX1-ONLY-NEXT:    retq
992 ; AVX2-SLOW-LABEL: store_i32_stride5_vf16:
993 ; AVX2-SLOW:       # %bb.0:
994 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm3
995 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %ymm5
996 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %ymm1
997 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %ymm4
998 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %ymm2
999 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %ymm7
1000 ; AVX2-SLOW-NEXT:    vmovaps (%r8), %ymm0
1001 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1002 ; AVX2-SLOW-NEXT:    vmovaps 32(%r8), %ymm6
1003 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %xmm9
1004 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %xmm11
1005 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm10
1006 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %xmm12
1007 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1008 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,2,2]
1009 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,0,2,1]
1010 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %xmm13
1011 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %xmm14
1012 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[1,1,2,2]
1013 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],xmm13[2],xmm15[3]
1014 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,1,1,3]
1015 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1],ymm8[2,3],ymm15[4,5],ymm8[6,7]
1016 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm15 = ymm0[0,1,2,1]
1017 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0],ymm15[1],ymm8[2,3,4,5],ymm15[6],ymm8[7]
1018 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1019 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %xmm15
1020 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
1021 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %xmm14
1022 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,2,2]
1023 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,0,2,1]
1024 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1025 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,3,2]
1026 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm10 = ymm9[0,1,1,1]
1027 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3],ymm10[4,5,6],ymm13[7]
1028 ; AVX2-SLOW-NEXT:    vinsertf128 $1, (%r8), %ymm9, %ymm9
1029 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0],ymm10[1,2,3],ymm9[4],ymm10[5,6,7]
1030 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1031 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
1032 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,1,2,2]
1033 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,0,2,1]
1034 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm13 = xmm14[1,1,2,2]
1035 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2],xmm13[3]
1036 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,1,3]
1037 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1],ymm10[2,3],ymm13[4,5],ymm10[6,7]
1038 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[0,1,2,1]
1039 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm13[1],ymm10[2,3,4,5],ymm13[6],ymm10[7]
1040 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
1041 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,2,2]
1042 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,0,2,1]
1043 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
1044 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
1045 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
1046 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6],ymm13[7]
1047 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 32(%r8), %ymm11, %ymm11
1048 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm12[1,2,3],ymm11[4],ymm12[5,6,7]
1049 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm7[1,1,1,1,5,5,5,5]
1050 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm4[1],ymm12[2,3,4],ymm4[5],ymm12[6,7]
1051 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[2,2,2,2]
1052 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm5[1,1,2,2,5,5,6,6]
1053 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0],ymm3[1,2],ymm13[3,4],ymm3[5,6],ymm13[7]
1054 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,2,2,3]
1055 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3,4],ymm13[5,6,7]
1056 ; AVX2-SLOW-NEXT:    vbroadcastsd 48(%r8), %ymm13
1057 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0],ymm12[1,2,3,4],ymm13[5],ymm12[6,7]
1058 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm5[2],ymm3[2],ymm5[3],ymm3[3],ymm5[6],ymm3[6],ymm5[7],ymm3[7]
1059 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[3,3,3,3]
1060 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm7[0,2,3,3,4,6,7,7]
1061 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm4[2,3,2,3,6,7,6,7]
1062 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3,4],ymm14[5,6],ymm15[7]
1063 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,1,3,3]
1064 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2],ymm13[3,4],ymm14[5,6,7]
1065 ; AVX2-SLOW-NEXT:    vbroadcastsd 56(%r8), %ymm14
1066 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm14[2],ymm13[3,4,5,6],ymm14[7]
1067 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm2[0,2,3,3,4,6,7,7]
1068 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[2,3,2,3,6,7,6,7]
1069 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3,4],ymm14[5,6],ymm15[7]
1070 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm15
1071 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %ymm0
1072 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm15[2],ymm0[3],ymm15[3],ymm0[6],ymm15[6],ymm0[7],ymm15[7]
1073 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[3,3,3,3]
1074 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,1,3,3]
1075 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm14[0,1,2],ymm8[3,4],ymm14[5,6,7]
1076 ; AVX2-SLOW-NEXT:    vbroadcastsd 24(%r8), %ymm14
1077 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm14[2],ymm8[3,4,5,6],ymm14[7]
1078 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm2[1,1,1,1,5,5,5,5]
1079 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm1[1],ymm14[2,3,4],ymm1[5],ymm14[6,7]
1080 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,2,2,2]
1081 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,2,2,5,5,6,6]
1082 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm15[1,2],ymm9[3,4],ymm15[5,6],ymm9[7]
1083 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,2,2,3]
1084 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm14[3,4],ymm9[5,6,7]
1085 ; AVX2-SLOW-NEXT:    vbroadcastsd 16(%r8), %ymm14
1086 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0],ymm9[1,2,3,4],ymm14[5],ymm9[6,7]
1087 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,0,2,3,7,4,6,7]
1088 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4],ymm5[5,6,7]
1089 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm7[0,1,3,0,4,5,7,4]
1090 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,0,1,6,7,4,5]
1091 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2],ymm4[3,4,5,6],ymm5[7]
1092 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2,3],ymm3[4,5],ymm4[6,7]
1093 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm6[3],ymm3[4,5,6,7]
1094 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
1095 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4],ymm0[5,6,7]
1096 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,3,0,4,5,7,4]
1097 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,0,1,6,7,4,5]
1098 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
1099 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
1100 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1101 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
1102 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 64(%r9)
1103 ; AVX2-SLOW-NEXT:    vmovaps %ymm3, 224(%r9)
1104 ; AVX2-SLOW-NEXT:    vmovaps %ymm9, 96(%r9)
1105 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 128(%r9)
1106 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, 288(%r9)
1107 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, 256(%r9)
1108 ; AVX2-SLOW-NEXT:    vmovaps %ymm11, 160(%r9)
1109 ; AVX2-SLOW-NEXT:    vmovaps %ymm10, 192(%r9)
1110 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1111 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%r9)
1112 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1113 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 32(%r9)
1114 ; AVX2-SLOW-NEXT:    vzeroupper
1115 ; AVX2-SLOW-NEXT:    retq
1117 ; AVX2-FAST-LABEL: store_i32_stride5_vf16:
1118 ; AVX2-FAST:       # %bb.0:
1119 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm1
1120 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %ymm2
1121 ; AVX2-FAST-NEXT:    vmovaps (%r8), %ymm4
1122 ; AVX2-FAST-NEXT:    vmovaps 32(%r8), %ymm3
1123 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %xmm6
1124 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %xmm9
1125 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm0
1126 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %xmm10
1127 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]
1128 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm12 = <0,1,0,1,u,u,2,2>
1129 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm12, %ymm5
1130 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %xmm8
1131 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %xmm14
1132 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %xmm11
1133 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %xmm15
1134 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm7 = xmm11[1,1,2,2]
1135 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]
1136 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
1137 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3],ymm7[4,5],ymm5[6,7]
1138 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm4[0,1,2,1]
1139 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm7[1],ymm5[2,3,4,5],ymm7[6],ymm5[7]
1140 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1141 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm5 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1142 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm12, %ymm5
1143 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm7 = xmm15[1,1,2,2]
1144 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm14[2],xmm7[3]
1145 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
1146 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3],ymm7[4,5],ymm5[6,7]
1147 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm3[0,1,2,1]
1148 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm7[1],ymm5[2,3,4,5],ymm7[6],ymm5[7]
1149 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1150 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %ymm7
1151 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm8[0],xmm11[0],xmm8[1],xmm11[1]
1152 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm12, %ymm8
1153 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
1154 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm0 = [0,1,3,2,3,2,3,2]
1155 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm0, %ymm11
1156 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1],ymm8[2,3],ymm11[4,5,6],ymm8[7]
1157 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %ymm11
1158 ; AVX2-FAST-NEXT:    vinsertf128 $1, (%r8), %ymm6, %ymm6
1159 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0],ymm8[1,2,3],ymm6[4],ymm8[5,6,7]
1160 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1161 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm11[1,1,1,1,5,5,5,5]
1162 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm7[1],ymm8[2,3,4],ymm7[5],ymm8[6,7]
1163 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[2,2,2,2]
1164 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm2[1,1,2,2,5,5,6,6]
1165 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0],ymm1[1,2],ymm13[3,4],ymm1[5,6],ymm13[7]
1166 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,2,2,3]
1167 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0,1,2],ymm8[3,4],ymm13[5,6,7]
1168 ; AVX2-FAST-NEXT:    vbroadcastsd 48(%r8), %ymm13
1169 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm13[0],ymm8[1,2,3,4],ymm13[5],ymm8[6,7]
1170 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm13 = ymm11[0,2,3,3,4,6,7,7]
1171 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm7[2,3,2,3,6,7,6,7]
1172 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm13[1,2],ymm5[3,4],ymm13[5,6],ymm5[7]
1173 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm2[2],ymm1[2],ymm2[3],ymm1[3],ymm2[6],ymm1[6],ymm2[7],ymm1[7]
1174 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[3,3,3,3]
1175 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[2,1,3,3]
1176 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm13[3,4],ymm5[5,6,7]
1177 ; AVX2-FAST-NEXT:    vbroadcastsd 56(%r8), %ymm13
1178 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1],ymm13[2],ymm5[3,4,5,6],ymm13[7]
1179 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm14[0],xmm15[0],xmm14[1],xmm15[1]
1180 ; AVX2-FAST-NEXT:    vpermps %ymm5, %ymm12, %ymm5
1181 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %ymm12
1182 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1183 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %ymm10
1184 ; AVX2-FAST-NEXT:    vpermps %ymm9, %ymm0, %ymm0
1185 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3],ymm0[4,5,6],ymm5[7]
1186 ; AVX2-FAST-NEXT:    vinsertf128 $1, 32(%r8), %ymm9, %ymm5
1187 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm5[0],ymm0[1,2,3],ymm5[4],ymm0[5,6,7]
1188 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,2,3,3,4,6,7,7]
1189 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm12[2,3,2,3,6,7,6,7]
1190 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0],ymm0[1,2],ymm5[3,4],ymm0[5,6],ymm5[7]
1191 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm5
1192 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %ymm14
1193 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm14[2],ymm5[2],ymm14[3],ymm5[3],ymm14[6],ymm5[6],ymm14[7],ymm5[7]
1194 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[3,3,3,3]
1195 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
1196 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3,4],ymm0[5,6,7]
1197 ; AVX2-FAST-NEXT:    vbroadcastsd 24(%r8), %ymm15
1198 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm15[2],ymm0[3,4,5,6],ymm15[7]
1199 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm15 = ymm10[1,1,1,1,5,5,5,5]
1200 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm12[1],ymm15[2,3,4],ymm12[5],ymm15[6,7]
1201 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,2]
1202 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm14[1,1,2,2,5,5,6,6]
1203 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm5[1,2],ymm6[3,4],ymm5[5,6],ymm6[7]
1204 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,2,2,3]
1205 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm15[3,4],ymm6[5,6,7]
1206 ; AVX2-FAST-NEXT:    vbroadcastsd 16(%r8), %ymm15
1207 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0],ymm6[1,2,3,4],ymm15[5],ymm6[6,7]
1208 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,0,2,3,7,4,6,7]
1209 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4],ymm2[5,6,7]
1210 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm11[0,1,3,0,4,5,7,4]
1211 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[2,3,0,1,6,7,4,5]
1212 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1],ymm2[2],ymm7[3,4,5,6],ymm2[7]
1213 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2,3],ymm1[4,5],ymm2[6,7]
1214 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm3[3],ymm1[4,5,6,7]
1215 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm14[3,0,2,3,7,4,6,7]
1216 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4],ymm2[5,6,7]
1217 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm10[0,1,3,0,4,5,7,4]
1218 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm12[2,3,0,1,6,7,4,5]
1219 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2],ymm5[3,4,5,6],ymm3[7]
1220 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4,5],ymm3[6,7]
1221 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm4[3],ymm2[4,5,6,7]
1222 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 64(%r9)
1223 ; AVX2-FAST-NEXT:    vmovaps %ymm1, 224(%r9)
1224 ; AVX2-FAST-NEXT:    vmovaps %ymm6, 96(%r9)
1225 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 128(%r9)
1226 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 160(%r9)
1227 ; AVX2-FAST-NEXT:    vmovaps %ymm13, 288(%r9)
1228 ; AVX2-FAST-NEXT:    vmovaps %ymm8, 256(%r9)
1229 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1230 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%r9)
1231 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1232 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 192(%r9)
1233 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1234 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 32(%r9)
1235 ; AVX2-FAST-NEXT:    vzeroupper
1236 ; AVX2-FAST-NEXT:    retq
1238 ; AVX2-FAST-PERLANE-LABEL: store_i32_stride5_vf16:
1239 ; AVX2-FAST-PERLANE:       # %bb.0:
1240 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm3
1241 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %ymm5
1242 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %ymm1
1243 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %ymm4
1244 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %ymm2
1245 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %ymm7
1246 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%r8), %ymm0
1247 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1248 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%r8), %ymm6
1249 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %xmm9
1250 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %xmm11
1251 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm10
1252 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %xmm12
1253 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm8 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
1254 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,2,2]
1255 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,0,2,1]
1256 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %xmm13
1257 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %xmm14
1258 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm15 = xmm14[1,1,2,2]
1259 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],xmm13[2],xmm15[3]
1260 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,1,1,3]
1261 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1],ymm8[2,3],ymm15[4,5],ymm8[6,7]
1262 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm15 = ymm0[0,1,2,1]
1263 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0],ymm15[1],ymm8[2,3,4,5],ymm15[6],ymm8[7]
1264 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1265 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %xmm15
1266 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm13[0],xmm14[0],xmm13[1],xmm14[1]
1267 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %xmm14
1268 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,2,2]
1269 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,0,2,1]
1270 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm9 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
1271 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,3,2]
1272 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm10 = ymm9[0,1,1,1]
1273 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3],ymm10[4,5,6],ymm13[7]
1274 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, (%r8), %ymm9, %ymm9
1275 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0],ymm10[1,2,3],ymm9[4],ymm10[5,6,7]
1276 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1277 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm12[2],xmm11[2],xmm12[3],xmm11[3]
1278 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm10 = xmm10[0,1,2,2]
1279 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,0,2,1]
1280 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm13 = xmm14[1,1,2,2]
1281 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm13 = xmm13[0,1],xmm15[2],xmm13[3]
1282 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,1,1,3]
1283 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm13[0,1],ymm10[2,3],ymm13[4,5],ymm10[6,7]
1284 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm6[0,1,2,1]
1285 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm13[1],ymm10[2,3,4,5],ymm13[6],ymm10[7]
1286 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm13 = xmm15[0],xmm14[0],xmm15[1],xmm14[1]
1287 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm13 = xmm13[0,1,2,2]
1288 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,0,2,1]
1289 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm12[0],xmm11[0],xmm12[1],xmm11[1]
1290 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
1291 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
1292 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm13[2,3],ymm12[4,5,6],ymm13[7]
1293 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 32(%r8), %ymm11, %ymm11
1294 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm12[1,2,3],ymm11[4],ymm12[5,6,7]
1295 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm7[1,1,1,1,5,5,5,5]
1296 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm4[1],ymm12[2,3,4],ymm4[5],ymm12[6,7]
1297 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[2,2,2,2]
1298 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm5[1,1,2,2,5,5,6,6]
1299 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0],ymm3[1,2],ymm13[3,4],ymm3[5,6],ymm13[7]
1300 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,2,2,3]
1301 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0,1,2],ymm12[3,4],ymm13[5,6,7]
1302 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 48(%r8), %ymm13
1303 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm13[0],ymm12[1,2,3,4],ymm13[5],ymm12[6,7]
1304 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm13 = ymm5[2],ymm3[2],ymm5[3],ymm3[3],ymm5[6],ymm3[6],ymm5[7],ymm3[7]
1305 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[3,3,3,3]
1306 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm7[0,2,3,3,4,6,7,7]
1307 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm4[2,3,2,3,6,7,6,7]
1308 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3,4],ymm14[5,6],ymm15[7]
1309 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,1,3,3]
1310 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1,2],ymm13[3,4],ymm14[5,6,7]
1311 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 56(%r8), %ymm14
1312 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm14[2],ymm13[3,4,5,6],ymm14[7]
1313 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm2[0,2,3,3,4,6,7,7]
1314 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm1[2,3,2,3,6,7,6,7]
1315 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0],ymm14[1,2],ymm15[3,4],ymm14[5,6],ymm15[7]
1316 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm15
1317 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %ymm0
1318 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm8 = ymm0[2],ymm15[2],ymm0[3],ymm15[3],ymm0[6],ymm15[6],ymm0[7],ymm15[7]
1319 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[3,3,3,3]
1320 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,1,3,3]
1321 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm14[0,1,2],ymm8[3,4],ymm14[5,6,7]
1322 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 24(%r8), %ymm14
1323 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm14[2],ymm8[3,4,5,6],ymm14[7]
1324 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm2[1,1,1,1,5,5,5,5]
1325 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0],ymm1[1],ymm14[2,3,4],ymm1[5],ymm14[6,7]
1326 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[2,2,2,2]
1327 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,2,2,5,5,6,6]
1328 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm15[1,2],ymm9[3,4],ymm15[5,6],ymm9[7]
1329 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,2,2,3]
1330 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2],ymm14[3,4],ymm9[5,6,7]
1331 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 16(%r8), %ymm14
1332 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0],ymm9[1,2,3,4],ymm14[5],ymm9[6,7]
1333 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,0,2,3,7,4,6,7]
1334 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4],ymm5[5,6,7]
1335 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm7[0,1,3,0,4,5,7,4]
1336 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[2,3,0,1,6,7,4,5]
1337 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm5[2],ymm4[3,4,5,6],ymm5[7]
1338 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1,2,3],ymm3[4,5],ymm4[6,7]
1339 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm6[3],ymm3[4,5,6,7]
1340 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
1341 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm15[4],ymm0[5,6,7]
1342 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[0,1,3,0,4,5,7,4]
1343 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[2,3,0,1,6,7,4,5]
1344 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
1345 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
1346 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
1347 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
1348 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 64(%r9)
1349 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm3, 224(%r9)
1350 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm9, 96(%r9)
1351 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 128(%r9)
1352 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, 288(%r9)
1353 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, 256(%r9)
1354 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm11, 160(%r9)
1355 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm10, 192(%r9)
1356 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1357 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%r9)
1358 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1359 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 32(%r9)
1360 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
1361 ; AVX2-FAST-PERLANE-NEXT:    retq
1363 ; AVX512F-LABEL: store_i32_stride5_vf16:
1364 ; AVX512F:       # %bb.0:
1365 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm0
1366 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm1
1367 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm2
1368 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm3
1369 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm4
1370 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
1371 ; AVX512F-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
1372 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1373 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
1374 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1375 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1376 ; AVX512F-NEXT:    movw $12684, %ax # imm = 0x318C
1377 ; AVX512F-NEXT:    kmovw %eax, %k1
1378 ; AVX512F-NEXT:    vmovdqa32 %zmm5, %zmm6 {%k1}
1379 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
1380 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm6, %zmm5
1381 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
1382 ; AVX512F-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1383 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1384 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
1385 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1386 ; AVX512F-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
1387 ; AVX512F-NEXT:    movw $6342, %ax # imm = 0x18C6
1388 ; AVX512F-NEXT:    kmovw %eax, %k2
1389 ; AVX512F-NEXT:    vmovdqa32 %zmm6, %zmm7 {%k2}
1390 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
1391 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm7, %zmm6
1392 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
1393 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1394 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1395 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
1396 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1397 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1398 ; AVX512F-NEXT:    movw $25368, %ax # imm = 0x6318
1399 ; AVX512F-NEXT:    kmovw %eax, %k2
1400 ; AVX512F-NEXT:    vmovdqa32 %zmm7, %zmm8 {%k2}
1401 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
1402 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm8, %zmm7
1403 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
1404 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1405 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1406 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
1407 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1408 ; AVX512F-NEXT:    vpermi2d %zmm2, %zmm3, %zmm9
1409 ; AVX512F-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k1}
1410 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
1411 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm9, %zmm8
1412 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
1413 ; AVX512F-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1414 ; AVX512F-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1415 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
1416 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
1417 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1418 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm2 {%k2}
1419 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
1420 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm2, %zmm0
1421 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 256(%r9)
1422 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1423 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 128(%r9)
1424 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 64(%r9)
1425 ; AVX512F-NEXT:    vmovdqa64 %zmm5, (%r9)
1426 ; AVX512F-NEXT:    vzeroupper
1427 ; AVX512F-NEXT:    retq
1429 ; AVX512BW-LABEL: store_i32_stride5_vf16:
1430 ; AVX512BW:       # %bb.0:
1431 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
1432 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
1433 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm2
1434 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm3
1435 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm4
1436 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
1437 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
1438 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm5
1439 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
1440 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1441 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm6
1442 ; AVX512BW-NEXT:    movw $12684, %ax # imm = 0x318C
1443 ; AVX512BW-NEXT:    kmovd %eax, %k1
1444 ; AVX512BW-NEXT:    vmovdqa32 %zmm5, %zmm6 {%k1}
1445 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
1446 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm6, %zmm5
1447 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
1448 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1449 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm6
1450 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
1451 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1452 ; AVX512BW-NEXT:    vpermi2d %zmm0, %zmm1, %zmm7
1453 ; AVX512BW-NEXT:    movw $6342, %ax # imm = 0x18C6
1454 ; AVX512BW-NEXT:    kmovd %eax, %k2
1455 ; AVX512BW-NEXT:    vmovdqa32 %zmm6, %zmm7 {%k2}
1456 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm6 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
1457 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm7, %zmm6
1458 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
1459 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1460 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm7
1461 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
1462 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1463 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm8
1464 ; AVX512BW-NEXT:    movw $25368, %ax # imm = 0x6318
1465 ; AVX512BW-NEXT:    kmovd %eax, %k2
1466 ; AVX512BW-NEXT:    vmovdqa32 %zmm7, %zmm8 {%k2}
1467 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm7 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
1468 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm8, %zmm7
1469 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
1470 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1471 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm8
1472 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
1473 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1474 ; AVX512BW-NEXT:    vpermi2d %zmm2, %zmm3, %zmm9
1475 ; AVX512BW-NEXT:    vmovdqa32 %zmm8, %zmm9 {%k1}
1476 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm8 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
1477 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm9, %zmm8
1478 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
1479 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1480 ; AVX512BW-NEXT:    vpermi2d %zmm3, %zmm2, %zmm9
1481 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
1482 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
1483 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm0, %zmm2
1484 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm2 {%k2}
1485 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm0 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
1486 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm2, %zmm0
1487 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 256(%r9)
1488 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1489 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 128(%r9)
1490 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 64(%r9)
1491 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%r9)
1492 ; AVX512BW-NEXT:    vzeroupper
1493 ; AVX512BW-NEXT:    retq
1494   %in.vec0 = load <16 x i32>, ptr %in.vecptr0, align 64
1495   %in.vec1 = load <16 x i32>, ptr %in.vecptr1, align 64
1496   %in.vec2 = load <16 x i32>, ptr %in.vecptr2, align 64
1497   %in.vec3 = load <16 x i32>, ptr %in.vecptr3, align 64
1498   %in.vec4 = load <16 x i32>, ptr %in.vecptr4, align 64
1499   %1 = shufflevector <16 x i32> %in.vec0, <16 x i32> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1500   %2 = shufflevector <16 x i32> %in.vec2, <16 x i32> %in.vec3, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1501   %3 = shufflevector <32 x i32> %1, <32 x i32> %2, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
1502   %4 = shufflevector <16 x i32> %in.vec4, <16 x i32> poison, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
1503   %5 = shufflevector <64 x i32> %3, <64 x i32> %4, <80 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79>
1504   %interleaved.vec = shufflevector <80 x i32> %5, <80 x i32> poison, <80 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 1, i32 17, i32 33, i32 49, i32 65, i32 2, i32 18, i32 34, i32 50, i32 66, i32 3, i32 19, i32 35, i32 51, i32 67, i32 4, i32 20, i32 36, i32 52, i32 68, i32 5, i32 21, i32 37, i32 53, i32 69, i32 6, i32 22, i32 38, i32 54, i32 70, i32 7, i32 23, i32 39, i32 55, i32 71, i32 8, i32 24, i32 40, i32 56, i32 72, i32 9, i32 25, i32 41, i32 57, i32 73, i32 10, i32 26, i32 42, i32 58, i32 74, i32 11, i32 27, i32 43, i32 59, i32 75, i32 12, i32 28, i32 44, i32 60, i32 76, i32 13, i32 29, i32 45, i32 61, i32 77, i32 14, i32 30, i32 46, i32 62, i32 78, i32 15, i32 31, i32 47, i32 63, i32 79>
1505   store <80 x i32> %interleaved.vec, ptr %out.vec, align 64
1506   ret void
1509 define void @store_i32_stride5_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
1510 ; SSE-LABEL: store_i32_stride5_vf32:
1511 ; SSE:       # %bb.0:
1512 ; SSE-NEXT:    subq $712, %rsp # imm = 0x2C8
1513 ; SSE-NEXT:    movdqa (%rsi), %xmm9
1514 ; SSE-NEXT:    movdqa 16(%rsi), %xmm7
1515 ; SSE-NEXT:    movdqa 32(%rsi), %xmm8
1516 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1517 ; SSE-NEXT:    movdqa (%rdx), %xmm11
1518 ; SSE-NEXT:    movdqa 16(%rdx), %xmm10
1519 ; SSE-NEXT:    movdqa 32(%rdx), %xmm14
1520 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1521 ; SSE-NEXT:    movaps (%rcx), %xmm3
1522 ; SSE-NEXT:    movaps 16(%rcx), %xmm5
1523 ; SSE-NEXT:    movaps 32(%rcx), %xmm6
1524 ; SSE-NEXT:    movaps (%r8), %xmm4
1525 ; SSE-NEXT:    movaps 16(%r8), %xmm13
1526 ; SSE-NEXT:    movaps 32(%r8), %xmm12
1527 ; SSE-NEXT:    movaps %xmm3, %xmm0
1528 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm4[3,3]
1529 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm9[3,3,3,3]
1530 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm11[2,3,2,3]
1531 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
1532 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
1533 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1534 ; SSE-NEXT:    movaps %xmm5, %xmm0
1535 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm13[3,3]
1536 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[3,3,3,3]
1537 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm7[3,3,3,3]
1538 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
1539 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
1540 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1541 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm8[3,3,3,3]
1542 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[2,3,2,3]
1543 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
1544 ; SSE-NEXT:    movaps %xmm6, %xmm0
1545 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm12[3,3]
1546 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1547 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1548 ; SSE-NEXT:    movdqa 48(%rsi), %xmm8
1549 ; SSE-NEXT:    movdqa 48(%rdx), %xmm0
1550 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1551 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1552 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm8[3,3,3,3]
1553 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1554 ; SSE-NEXT:    movaps 48(%rcx), %xmm2
1555 ; SSE-NEXT:    movaps 48(%r8), %xmm14
1556 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1557 ; SSE-NEXT:    movaps %xmm2, %xmm0
1558 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
1559 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1560 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1561 ; SSE-NEXT:    movdqa 64(%rsi), %xmm0
1562 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1563 ; SSE-NEXT:    movdqa 64(%rdx), %xmm1
1564 ; SSE-NEXT:    movdqa %xmm1, (%rsp) # 16-byte Spill
1565 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1566 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
1567 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
1568 ; SSE-NEXT:    movaps 64(%rcx), %xmm0
1569 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1570 ; SSE-NEXT:    movaps 64(%r8), %xmm14
1571 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1572 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
1573 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1574 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1575 ; SSE-NEXT:    movdqa 80(%rsi), %xmm14
1576 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1577 ; SSE-NEXT:    movdqa 80(%rdx), %xmm0
1578 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1579 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1580 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[3,3,3,3]
1581 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1582 ; SSE-NEXT:    movaps 80(%rcx), %xmm0
1583 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1584 ; SSE-NEXT:    movaps 80(%r8), %xmm14
1585 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1586 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
1587 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1588 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1589 ; SSE-NEXT:    movdqa 96(%rsi), %xmm0
1590 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1591 ; SSE-NEXT:    movdqa 96(%rdx), %xmm1
1592 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1593 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1594 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
1595 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
1596 ; SSE-NEXT:    movaps 96(%rcx), %xmm0
1597 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1598 ; SSE-NEXT:    movaps 96(%r8), %xmm14
1599 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1600 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
1601 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1602 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1603 ; SSE-NEXT:    movdqa 112(%rsi), %xmm14
1604 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1605 ; SSE-NEXT:    movdqa 112(%rdx), %xmm0
1606 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1607 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
1608 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm14[3,3,3,3]
1609 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
1610 ; SSE-NEXT:    movaps 112(%rcx), %xmm15
1611 ; SSE-NEXT:    movaps 112(%r8), %xmm14
1612 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1613 ; SSE-NEXT:    movaps %xmm15, %xmm0
1614 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
1615 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
1616 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1617 ; SSE-NEXT:    movdqa %xmm11, %xmm1
1618 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1619 ; SSE-NEXT:    movdqa %xmm11, %xmm0
1620 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
1621 ; SSE-NEXT:    movdqa (%rdi), %xmm14
1622 ; SSE-NEXT:    movdqa %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1623 ; SSE-NEXT:    movdqa %xmm14, %xmm11
1624 ; SSE-NEXT:    movdqa %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1625 ; SSE-NEXT:    punpckldq {{.*#+}} xmm11 = xmm11[0],xmm9[0],xmm11[1],xmm9[1]
1626 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm11 = xmm11[0],xmm0[0]
1627 ; SSE-NEXT:    movdqa %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1628 ; SSE-NEXT:    movdqa %xmm14, %xmm0
1629 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm9[2],xmm0[3],xmm9[3]
1630 ; SSE-NEXT:    movdqa %xmm1, %xmm9
1631 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm9 = xmm9[2],xmm3[2],xmm9[3],xmm3[3]
1632 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1633 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm4[1,1]
1634 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm0[0,1]
1635 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1636 ; SSE-NEXT:    movdqa %xmm14, %xmm0
1637 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm4[2,0]
1638 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm0[2,0]
1639 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1640 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1641 ; SSE-NEXT:    movdqa %xmm10, %xmm0
1642 ; SSE-NEXT:    movaps %xmm5, %xmm4
1643 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
1644 ; SSE-NEXT:    movdqa 16(%rdi), %xmm3
1645 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1646 ; SSE-NEXT:    movdqa %xmm3, %xmm5
1647 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1648 ; SSE-NEXT:    punpckldq {{.*#+}} xmm5 = xmm5[0],xmm7[0],xmm5[1],xmm7[1]
1649 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm5 = xmm5[0],xmm0[0]
1650 ; SSE-NEXT:    movdqa %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1651 ; SSE-NEXT:    movdqa %xmm3, %xmm0
1652 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm7[2],xmm0[3],xmm7[3]
1653 ; SSE-NEXT:    movaps %xmm4, %xmm5
1654 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1655 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm13[1,1]
1656 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm0[0,1]
1657 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1658 ; SSE-NEXT:    movdqa %xmm3, %xmm0
1659 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm13[2,3]
1660 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm10[1]
1661 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[2,0],xmm0[2,0]
1662 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1663 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1664 ; SSE-NEXT:    movaps %xmm1, %xmm0
1665 ; SSE-NEXT:    movaps %xmm6, %xmm4
1666 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
1667 ; SSE-NEXT:    movaps 32(%rdi), %xmm5
1668 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1669 ; SSE-NEXT:    movaps %xmm5, %xmm3
1670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
1671 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm6[0],xmm3[1],xmm6[1]
1672 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
1673 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1674 ; SSE-NEXT:    movaps %xmm5, %xmm0
1675 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm6[2],xmm0[3],xmm6[3]
1676 ; SSE-NEXT:    movaps %xmm1, %xmm3
1677 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
1678 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1679 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm12[1,1]
1680 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
1681 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1682 ; SSE-NEXT:    movaps %xmm5, %xmm0
1683 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm12[2,0]
1684 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
1685 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1686 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1687 ; SSE-NEXT:    movaps %xmm3, %xmm0
1688 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
1689 ; SSE-NEXT:    movdqa 48(%rdi), %xmm10
1690 ; SSE-NEXT:    movdqa %xmm10, %xmm1
1691 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1692 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm8[0],xmm1[1],xmm8[1]
1693 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1694 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1695 ; SSE-NEXT:    movdqa %xmm10, %xmm0
1696 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm8[2],xmm0[3],xmm8[3]
1697 ; SSE-NEXT:    movaps %xmm2, %xmm4
1698 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1699 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
1700 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
1701 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1702 ; SSE-NEXT:    movdqa %xmm10, %xmm0
1703 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[2,3]
1704 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm3[1]
1705 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[2,0],xmm0[2,0]
1706 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1707 ; SSE-NEXT:    movaps (%rsp), %xmm2 # 16-byte Reload
1708 ; SSE-NEXT:    movaps %xmm2, %xmm0
1709 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1710 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1711 ; SSE-NEXT:    movaps 64(%rdi), %xmm9
1712 ; SSE-NEXT:    movaps %xmm9, %xmm4
1713 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1714 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
1715 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
1716 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1717 ; SSE-NEXT:    movaps %xmm9, %xmm0
1718 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
1719 ; SSE-NEXT:    movaps %xmm2, %xmm3
1720 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm1[2],xmm3[3],xmm1[3]
1721 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1722 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]
1723 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,1]
1724 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1725 ; SSE-NEXT:    movaps %xmm9, %xmm0
1726 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
1727 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
1728 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1729 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
1730 ; SSE-NEXT:    movaps %xmm3, %xmm0
1731 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1732 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1733 ; SSE-NEXT:    movaps 80(%rdi), %xmm7
1734 ; SSE-NEXT:    movaps %xmm7, %xmm13
1735 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1736 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm2[0],xmm13[1],xmm2[1]
1737 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
1738 ; SSE-NEXT:    movaps %xmm7, %xmm0
1739 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
1740 ; SSE-NEXT:    movaps %xmm1, %xmm12
1741 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1742 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[1,1],xmm2[1,1]
1743 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,2],xmm0[0,1]
1744 ; SSE-NEXT:    movaps %xmm7, %xmm0
1745 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm2[2,3]
1746 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
1747 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,0]
1748 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1749 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Reload
1750 ; SSE-NEXT:    movaps %xmm14, %xmm0
1751 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
1752 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
1753 ; SSE-NEXT:    movaps 96(%rdi), %xmm5
1754 ; SSE-NEXT:    movaps %xmm5, %xmm8
1755 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1756 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm2[0],xmm8[1],xmm2[1]
1757 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
1758 ; SSE-NEXT:    movaps %xmm5, %xmm0
1759 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
1760 ; SSE-NEXT:    movaps %xmm14, %xmm6
1761 ; SSE-NEXT:    unpckhps {{.*#+}} xmm6 = xmm6[2],xmm1[2],xmm6[3],xmm1[3]
1762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1763 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]
1764 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,1]
1765 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1766 ; SSE-NEXT:    movaps %xmm5, %xmm0
1767 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
1768 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[0,1],xmm0[2,0]
1769 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1770 ; SSE-NEXT:    movaps %xmm2, %xmm11
1771 ; SSE-NEXT:    movaps %xmm15, %xmm1
1772 ; SSE-NEXT:    unpcklps {{.*#+}} xmm11 = xmm11[0],xmm15[0],xmm11[1],xmm15[1]
1773 ; SSE-NEXT:    movaps 112(%rdi), %xmm3
1774 ; SSE-NEXT:    movaps %xmm3, %xmm4
1775 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1776 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm15[0],xmm4[1],xmm15[1]
1777 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm11[0]
1778 ; SSE-NEXT:    movaps %xmm3, %xmm0
1779 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
1780 ; SSE-NEXT:    movaps %xmm1, %xmm11
1781 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1782 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[1,1],xmm15[1,1]
1783 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,2],xmm0[0,1]
1784 ; SSE-NEXT:    movaps %xmm3, %xmm0
1785 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm15[2,3]
1786 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1787 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,0]
1788 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1789 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
1790 ; SSE-NEXT:    # xmm2 = xmm2[1,1],mem[1,1]
1791 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1792 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,0]
1793 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1794 ; SSE-NEXT:    movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
1795 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1796 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1797 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1798 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1799 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
1800 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[2,0]
1801 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1802 ; SSE-NEXT:    movss {{.*#+}} xmm15 = xmm0[0],xmm15[1,2,3]
1803 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1804 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1805 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
1807 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
1808 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1809 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
1810 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1811 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1812 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1813 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,0]
1814 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1815 ; SSE-NEXT:    movss {{.*#+}} xmm10 = xmm0[0],xmm10[1,2,3]
1816 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1817 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1818 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1819 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm0[2,0]
1820 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1821 ; SSE-NEXT:    movss {{.*#+}} xmm9 = xmm0[0],xmm9[1,2,3]
1822 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1823 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1824 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1825 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2,0]
1826 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1827 ; SSE-NEXT:    movss {{.*#+}} xmm7 = xmm0[0],xmm7[1,2,3]
1828 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm14 # 16-byte Folded Reload
1829 ; SSE-NEXT:    # xmm14 = xmm14[1,1],mem[1,1]
1830 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm14[2,0]
1831 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1832 ; SSE-NEXT:    movss {{.*#+}} xmm5 = xmm0[0],xmm5[1,2,3]
1833 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1834 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
1835 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
1836 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
1837 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1838 ; SSE-NEXT:    movss {{.*#+}} xmm3 = xmm0[0],xmm3[1,2,3]
1839 ; SSE-NEXT:    movaps %xmm1, 608(%r9)
1840 ; SSE-NEXT:    movaps %xmm11, 592(%r9)
1841 ; SSE-NEXT:    movaps %xmm4, 560(%r9)
1842 ; SSE-NEXT:    movaps %xmm6, 528(%r9)
1843 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1844 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
1845 ; SSE-NEXT:    movaps %xmm8, 480(%r9)
1846 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1847 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
1848 ; SSE-NEXT:    movaps %xmm12, 432(%r9)
1849 ; SSE-NEXT:    movaps %xmm13, 400(%r9)
1850 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1851 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
1852 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1853 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
1854 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1855 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
1856 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1857 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
1858 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1859 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
1860 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1861 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
1862 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1863 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
1864 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1865 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
1866 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1867 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
1868 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1869 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
1870 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1871 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
1872 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1873 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
1874 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1875 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
1876 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1877 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
1878 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1879 ; SSE-NEXT:    movaps %xmm0, (%r9)
1880 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1881 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
1882 ; SSE-NEXT:    movaps %xmm3, 576(%r9)
1883 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1884 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
1885 ; SSE-NEXT:    movaps %xmm5, 496(%r9)
1886 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1887 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
1888 ; SSE-NEXT:    movaps %xmm7, 416(%r9)
1889 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1890 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
1891 ; SSE-NEXT:    movaps %xmm9, 336(%r9)
1892 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1893 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
1894 ; SSE-NEXT:    movaps %xmm10, 256(%r9)
1895 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1896 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
1897 ; SSE-NEXT:    movaps %xmm2, 176(%r9)
1898 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1899 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
1900 ; SSE-NEXT:    movaps %xmm15, 96(%r9)
1901 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1902 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
1903 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1904 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1905 ; SSE-NEXT:    addq $712, %rsp # imm = 0x2C8
1906 ; SSE-NEXT:    retq
1908 ; AVX1-ONLY-LABEL: store_i32_stride5_vf32:
1909 ; AVX1-ONLY:       # %bb.0:
1910 ; AVX1-ONLY-NEXT:    subq $600, %rsp # imm = 0x258
1911 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm6
1912 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %xmm3
1913 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm9
1914 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm4
1915 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = zero,xmm9[1],xmm6[1],zero
1916 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = xmm9[0],xmm6[0],zero,zero
1917 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1918 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm14
1919 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm15
1920 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm15[0],xmm14[0]
1921 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,0]
1922 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rdx), %xmm5
1923 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm2, %ymm2
1924 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5,6],ymm2[7]
1925 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%r8), %ymm1, %ymm1
1926 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
1927 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1928 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = zero,xmm4[1],xmm3[1],zero
1929 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = xmm4[0],xmm3[0],zero,zero
1930 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
1931 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm2
1932 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %xmm5
1933 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm5[0],xmm2[0]
1934 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]
1935 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rdx), %xmm8
1936 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm7, %ymm7
1937 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6],ymm7[7]
1938 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 32(%r8), %ymm1, %ymm1
1939 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
1940 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1941 ; AVX1-ONLY-NEXT:    vmovaps 64(%rsi), %xmm1
1942 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm0
1943 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %xmm7
1944 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1945 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %xmm8
1946 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm8[0],xmm7[0]
1947 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]
1948 ; AVX1-ONLY-NEXT:    vbroadcastss 68(%rdx), %xmm10
1949 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm7, %ymm7
1950 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm10 = zero,xmm0[1],xmm1[1],zero
1951 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm11 = xmm0[0],xmm1[0],zero,zero
1952 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm11, %ymm10
1953 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1],ymm7[2,3],ymm10[4,5,6],ymm7[7]
1954 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 64(%r8), %ymm11, %ymm10
1955 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0],ymm7[1,2,3],ymm10[4],ymm7[5,6,7]
1956 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1957 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %xmm10
1958 ; AVX1-ONLY-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1959 ; AVX1-ONLY-NEXT:    vmovaps 96(%rcx), %xmm7
1960 ; AVX1-ONLY-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1961 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm7[0],xmm10[0]
1962 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,0]
1963 ; AVX1-ONLY-NEXT:    vbroadcastss 100(%rdx), %xmm10
1964 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm7, %ymm7
1965 ; AVX1-ONLY-NEXT:    vmovaps 96(%rsi), %xmm13
1966 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm12
1967 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm10 = zero,xmm12[1],xmm13[1],zero
1968 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm11 = xmm12[0],xmm13[0],zero,zero
1969 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm11, %ymm10
1970 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1],ymm7[2,3],ymm10[4,5,6],ymm7[7]
1971 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%r8), %ymm11, %ymm10
1972 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0],ymm7[1,2,3],ymm10[4],ymm7[5,6,7]
1973 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1974 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm7 = xmm14[2],xmm15[2],xmm14[3],xmm15[3]
1975 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rcx), %xmm10
1976 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm10, %ymm7
1977 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm6 = zero,zero,xmm9[2],xmm6[2]
1978 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm6, %ymm6
1979 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3],ymm7[4,5],ymm6[6,7]
1980 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm7 = mem[0,1,0,1]
1981 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4,5],ymm7[6],ymm6[7]
1982 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1983 ; AVX1-ONLY-NEXT:    vmovaps 16(%rsi), %xmm6
1984 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm7
1985 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm9 = zero,zero,xmm7[2],xmm6[2]
1986 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm7[1,1],xmm6[1,1]
1987 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm6, %ymm6
1988 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %ymm15
1989 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm7
1990 ; AVX1-ONLY-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1991 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[1,1],ymm15[1,1],ymm7[5,5],ymm15[5,5]
1992 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm7[2,3,2,3]
1993 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm7[3,4],ymm6[5,6,7]
1994 ; AVX1-ONLY-NEXT:    vmovaps 16(%rcx), %xmm7
1995 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm9
1996 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm10 = xmm9[3,3],xmm7[3,3]
1997 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm7 = xmm9[2],xmm7[2],xmm9[3],xmm7[3]
1998 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm7, %ymm7
1999 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm9
2000 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2001 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %ymm10
2002 ; AVX1-ONLY-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2003 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[3,3],ymm9[3,3],ymm10[7,7],ymm9[7,7]
2004 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[2,3,2,3]
2005 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm9[3,4],ymm7[5,6,7]
2006 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm9
2007 ; AVX1-ONLY-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2008 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm9 = ymm9[2,3,2,3]
2009 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm9[0],ymm6[1,2,3,4],ymm9[5],ymm6[6,7]
2010 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2011 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm9[2],ymm7[3,4,5,6],ymm9[7]
2012 ; AVX1-ONLY-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2013 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]
2014 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rcx), %xmm5
2015 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm5, %ymm2
2016 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = zero,zero,xmm4[2],xmm3[2]
2017 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm3
2018 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
2019 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm3 = mem[0,1,0,1]
2020 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2,3,4,5],ymm3[6],ymm2[7]
2021 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2022 ; AVX1-ONLY-NEXT:    vmovaps 48(%rsi), %xmm2
2023 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm3
2024 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = zero,zero,xmm3[2],xmm2[2]
2025 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm3[1,1],xmm2[1,1]
2026 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
2027 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %ymm3
2028 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2029 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %ymm4
2030 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2031 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[1,1],ymm3[1,1],ymm4[5,5],ymm3[5,5]
2032 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm3[2,3,2,3]
2033 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4],ymm2[5,6,7]
2034 ; AVX1-ONLY-NEXT:    vmovaps 48(%rcx), %xmm3
2035 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdx), %xmm4
2036 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm4[3,3],xmm3[3,3]
2037 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm3 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
2038 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
2039 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm4
2040 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2041 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %ymm14
2042 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[3,3],ymm4[3,3],ymm14[7,7],ymm4[7,7]
2043 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
2044 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2],ymm4[3,4],ymm3[5,6,7]
2045 ; AVX1-ONLY-NEXT:    vmovaps 32(%r8), %ymm4
2046 ; AVX1-ONLY-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2047 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
2048 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0],ymm2[1,2,3,4],ymm4[5],ymm2[6,7]
2049 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2050 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm4[2],ymm3[3,4,5,6],ymm4[7]
2051 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2052 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
2053 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm2[2],xmm8[2],xmm2[3],xmm8[3]
2054 ; AVX1-ONLY-NEXT:    vbroadcastss 68(%rcx), %xmm3
2055 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
2056 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,zero,xmm0[2],xmm1[2]
2057 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
2058 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5],ymm0[6,7]
2059 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
2060 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2061 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2062 ; AVX1-ONLY-NEXT:    vmovaps 80(%rsi), %xmm0
2063 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm1
2064 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
2065 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
2066 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2067 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %ymm10
2068 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %ymm9
2069 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,1],ymm10[1,1],ymm9[5,5],ymm10[5,5]
2070 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
2071 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2072 ; AVX1-ONLY-NEXT:    vmovaps 80(%rcx), %xmm0
2073 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdx), %xmm1
2074 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm1[3,3],xmm0[3,3]
2075 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
2076 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
2077 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm8
2078 ; AVX1-ONLY-NEXT:    vmovaps 64(%rsi), %ymm5
2079 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[3,3],ymm8[3,3],ymm5[7,7],ymm8[7,7]
2080 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
2081 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2],ymm4[3,4],ymm1[5,6,7]
2082 ; AVX1-ONLY-NEXT:    vmovaps 64(%r8), %ymm6
2083 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm6[2,3,2,3]
2084 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0],ymm3[1,2,3,4],ymm11[5],ymm3[6,7]
2085 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2086 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm11[2],ymm4[3,4,5,6],ymm11[7]
2087 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2088 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2089 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
2090 ; AVX1-ONLY-NEXT:    # xmm3 = xmm0[2],mem[2],xmm0[3],mem[3]
2091 ; AVX1-ONLY-NEXT:    vbroadcastss 100(%rcx), %xmm4
2092 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm4, %ymm3
2093 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = zero,zero,xmm12[2],xmm13[2]
2094 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm4, %ymm4
2095 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3],ymm3[4,5],ymm4[6,7]
2096 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm4 = mem[0,1,0,1]
2097 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm4[1],ymm3[2,3,4,5],ymm4[6],ymm3[7]
2098 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2099 ; AVX1-ONLY-NEXT:    vmovaps 112(%rsi), %xmm3
2100 ; AVX1-ONLY-NEXT:    vmovaps 112(%rdi), %xmm4
2101 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = zero,zero,xmm4[2],xmm3[2]
2102 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[1,1],xmm3[1,1]
2103 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm3, %ymm3
2104 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %ymm12
2105 ; AVX1-ONLY-NEXT:    vmovaps 96(%rcx), %ymm13
2106 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[1,1],ymm12[1,1],ymm13[5,5],ymm12[5,5]
2107 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3,2,3]
2108 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm3[0,1,2],ymm4[3,4],ymm3[5,6,7]
2109 ; AVX1-ONLY-NEXT:    vmovaps 112(%rcx), %xmm4
2110 ; AVX1-ONLY-NEXT:    vmovaps 112(%rdx), %xmm0
2111 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm1 = xmm0[3,3],xmm4[3,3]
2112 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm4[2],xmm0[3],xmm4[3]
2113 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
2114 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm1
2115 ; AVX1-ONLY-NEXT:    vmovaps 96(%rsi), %ymm4
2116 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm4[3,3],ymm1[3,3],ymm4[7,7],ymm1[7,7]
2117 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm11 = ymm11[2,3,2,3]
2118 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1,2],ymm11[3,4],ymm0[5,6,7]
2119 ; AVX1-ONLY-NEXT:    vmovaps 96(%r8), %ymm2
2120 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[2,3,2,3]
2121 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm7 = ymm3[0],ymm7[1,2,3,4],ymm3[5],ymm7[6,7]
2122 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1],ymm3[2],ymm11[3,4,5,6],ymm3[7]
2123 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
2124 ; AVX1-ONLY-NEXT:    # ymm11 = mem[3,0,2,3,7,4,6,7]
2125 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
2126 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4],ymm11[5,6,7]
2127 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Folded Reload
2128 ; AVX1-ONLY-NEXT:    # ymm0 = mem[0,1,3,0,4,5,7,4]
2129 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm15 = ymm15[1,0,2,2]
2130 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm15[0,1],ymm0[2],ymm15[3,4,5,6],ymm0[7]
2131 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0],ymm0[1,2,3],ymm11[4,5],ymm0[6,7]
2132 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2133 ; AVX1-ONLY-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
2134 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm11 = ymm14[3,0,2,3,7,4,6,7]
2135 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
2136 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,1,2,3],mem[4],ymm11[5,6,7]
2137 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
2138 ; AVX1-ONLY-NEXT:    # ymm14 = mem[0,1,3,0,4,5,7,4]
2139 ; AVX1-ONLY-NEXT:    vpermilpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
2140 ; AVX1-ONLY-NEXT:    # ymm15 = mem[1,0,2,2]
2141 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2],ymm15[3,4,5,6],ymm14[7]
2142 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm14[1,2,3],ymm11[4,5],ymm14[6,7]
2143 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
2144 ; AVX1-ONLY-NEXT:    # ymm11 = ymm11[0,1,2],mem[3],ymm11[4,5,6,7]
2145 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,0,2,3,7,4,6,7]
2146 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm8[4],ymm5[5,6,7]
2147 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,1,3,0,4,5,7,4]
2148 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm9 = ymm10[1,0,2,2]
2149 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2],ymm9[3,4,5,6],ymm8[7]
2150 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm8[1,2,3],ymm5[4,5],ymm8[6,7]
2151 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2],ymm6[3],ymm5[4,5,6,7]
2152 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0,2,3,7,4,6,7]
2153 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm4[0,1,2,3],ymm1[4],ymm4[5,6,7]
2154 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm4 = ymm13[0,1,3,0,4,5,7,4]
2155 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm6 = ymm12[1,0,2,2]
2156 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1],ymm4[2],ymm6[3,4,5,6],ymm4[7]
2157 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm4[1,2,3],ymm1[4,5],ymm4[6,7]
2158 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3],ymm1[4,5,6,7]
2159 ; AVX1-ONLY-NEXT:    vmovaps %ymm1, 544(%r9)
2160 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 384(%r9)
2161 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 224(%r9)
2162 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 64(%r9)
2163 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 608(%r9)
2164 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 576(%r9)
2165 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2166 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
2167 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2168 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
2169 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2170 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
2171 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2172 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
2173 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2174 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
2175 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2176 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
2177 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2178 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
2179 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2180 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
2181 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2182 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
2183 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2184 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
2185 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2186 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 480(%r9)
2187 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2188 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 320(%r9)
2189 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2190 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
2191 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2192 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
2193 ; AVX1-ONLY-NEXT:    addq $600, %rsp # imm = 0x258
2194 ; AVX1-ONLY-NEXT:    vzeroupper
2195 ; AVX1-ONLY-NEXT:    retq
2197 ; AVX2-SLOW-LABEL: store_i32_stride5_vf32:
2198 ; AVX2-SLOW:       # %bb.0:
2199 ; AVX2-SLOW-NEXT:    subq $552, %rsp # imm = 0x228
2200 ; AVX2-SLOW-NEXT:    vmovaps (%r8), %ymm15
2201 ; AVX2-SLOW-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2202 ; AVX2-SLOW-NEXT:    vmovaps 32(%r8), %ymm14
2203 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2204 ; AVX2-SLOW-NEXT:    vmovaps 64(%r8), %ymm13
2205 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2206 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %xmm7
2207 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %xmm3
2208 ; AVX2-SLOW-NEXT:    vmovaps 64(%rcx), %xmm0
2209 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %xmm8
2210 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %xmm4
2211 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdx), %xmm1
2212 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
2213 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2214 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[0,0,2,1]
2215 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %xmm9
2216 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %xmm6
2217 ; AVX2-SLOW-NEXT:    vmovaps 64(%rsi), %xmm2
2218 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm10
2219 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
2220 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
2221 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
2222 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6],ymm5[7]
2223 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %xmm12
2224 ; AVX2-SLOW-NEXT:    vinsertf128 $1, (%r8), %ymm11, %ymm11
2225 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0],ymm5[1,2,3],ymm11[4],ymm5[5,6,7]
2226 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2227 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %xmm5
2228 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
2229 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,2,2]
2230 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,0,2,1]
2231 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,1,2,2]
2232 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]
2233 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
2234 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,3],ymm7[4,5],ymm9[6,7]
2235 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm15[0,1,2,1]
2236 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5],ymm8[6],ymm7[7]
2237 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2238 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
2239 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,2]
2240 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,0,2,1]
2241 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
2242 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
2243 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm8[0,1,1,1]
2244 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6],ymm7[7]
2245 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 32(%r8), %ymm8, %ymm8
2246 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3],ymm8[4],ymm7[5,6,7]
2247 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2248 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm12[2],xmm6[2],xmm12[3],xmm6[3]
2249 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,2,2]
2250 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,0,2,1]
2251 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,1,2,2]
2252 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3]
2253 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
2254 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm6[2,3],ymm3[4,5],ymm6[6,7]
2255 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm14[0,1,2,1]
2256 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5],ymm4[6],ymm3[7]
2257 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2258 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2259 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,2]
2260 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,0,2,1]
2261 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
2262 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
2263 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,1,1]
2264 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6],ymm3[7]
2265 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 64(%r8), %ymm4, %ymm4
2266 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3],ymm4[4],ymm3[5,6,7]
2267 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2268 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm5[2],xmm2[2],xmm5[3],xmm2[3]
2269 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2270 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
2271 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
2272 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
2273 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
2274 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
2275 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,1,2,1]
2276 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2277 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2278 ; AVX2-SLOW-NEXT:    vmovaps 96(%rcx), %xmm0
2279 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdx), %xmm1
2280 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2281 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2282 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
2283 ; AVX2-SLOW-NEXT:    vmovaps 96(%rsi), %xmm3
2284 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %xmm4
2285 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
2286 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
2287 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
2288 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
2289 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm6
2290 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 96(%r8), %ymm5, %ymm5
2291 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
2292 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2293 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %ymm5
2294 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
2295 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %ymm14
2296 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
2297 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
2298 ; AVX2-SLOW-NEXT:    vmovaps 96(%r8), %ymm3
2299 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2300 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
2301 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
2302 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
2303 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
2304 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[0,1,2,1]
2305 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2306 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2307 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
2308 ; AVX2-SLOW-NEXT:    vmovups %ymm5, (%rsp) # 32-byte Spill
2309 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4],ymm5[5],ymm0[6,7]
2310 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2311 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %ymm12
2312 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[1,1,2,2,5,5,6,6]
2313 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2314 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1,2],ymm1[3,4],ymm6[5,6],ymm1[7]
2315 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2316 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2317 ; AVX2-SLOW-NEXT:    vbroadcastsd 16(%r8), %ymm1
2318 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2319 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2320 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
2321 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,3,2,3,6,7,6,7]
2322 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2323 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm12[2],ymm6[2],ymm12[3],ymm6[3],ymm12[6],ymm6[6],ymm12[7],ymm6[7]
2324 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2325 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2326 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2327 ; AVX2-SLOW-NEXT:    vbroadcastsd 24(%r8), %ymm1
2328 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2329 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2330 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %ymm11
2331 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %ymm10
2332 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[1,1,1,1,5,5,5,5]
2333 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm11[1],ymm0[2,3,4],ymm11[5],ymm0[6,7]
2334 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2335 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm9
2336 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %ymm8
2337 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,1,2,2,5,5,6,6]
2338 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1,2],ymm1[3,4],ymm9[5,6],ymm1[7]
2339 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2340 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2341 ; AVX2-SLOW-NEXT:    vbroadcastsd 48(%r8), %ymm1
2342 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2343 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2344 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,2,3,3,4,6,7,7]
2345 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[2,3,2,3,6,7,6,7]
2346 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2347 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
2348 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2349 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2350 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2351 ; AVX2-SLOW-NEXT:    vbroadcastsd 56(%r8), %ymm1
2352 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2353 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2354 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdx), %ymm7
2355 ; AVX2-SLOW-NEXT:    vmovaps 64(%rcx), %ymm6
2356 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1,1,1,5,5,5,5]
2357 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2,3,4],ymm7[5],ymm0[6,7]
2358 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2359 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm5
2360 ; AVX2-SLOW-NEXT:    vmovaps 64(%rsi), %ymm4
2361 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,1,2,2,5,5,6,6]
2362 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4],ymm5[5,6],ymm1[7]
2363 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2364 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2365 ; AVX2-SLOW-NEXT:    vbroadcastsd 80(%r8), %ymm1
2366 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2367 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2368 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[0,2,3,3,4,6,7,7]
2369 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[2,3,2,3,6,7,6,7]
2370 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2371 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
2372 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2373 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2374 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2375 ; AVX2-SLOW-NEXT:    vbroadcastsd 88(%r8), %ymm1
2376 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2377 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2378 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdx), %ymm3
2379 ; AVX2-SLOW-NEXT:    vmovaps 96(%rcx), %ymm2
2380 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
2381 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]
2382 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm0[2,2,2,2]
2383 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm1
2384 ; AVX2-SLOW-NEXT:    vmovaps 96(%rsi), %ymm0
2385 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[1,1,2,2,5,5,6,6]
2386 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm1[1,2],ymm15[3,4],ymm1[5,6],ymm15[7]
2387 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,3]
2388 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2],ymm13[3,4],ymm15[5,6,7]
2389 ; AVX2-SLOW-NEXT:    vbroadcastsd 112(%r8), %ymm15
2390 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2,3,4],ymm15[5],ymm13[6,7]
2391 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2392 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm13 = ymm2[0,2,3,3,4,6,7,7]
2393 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[2,3,2,3,6,7,6,7]
2394 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2],ymm15[3,4],ymm13[5,6],ymm15[7]
2395 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2396 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[3,3,3,3]
2397 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,1,3,3]
2398 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2],ymm15[3,4],ymm13[5,6,7]
2399 ; AVX2-SLOW-NEXT:    vbroadcastsd 120(%r8), %ymm15
2400 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
2401 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[3,0,2,3,7,4,6,7]
2402 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
2403 ; AVX2-SLOW-NEXT:    # ymm12 = ymm12[0,1,2,3],mem[4],ymm12[5,6,7]
2404 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,3,0,4,5,7,4]
2405 ; AVX2-SLOW-NEXT:    vpermilps $78, (%rsp), %ymm15 # 32-byte Folded Reload
2406 ; AVX2-SLOW-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
2407 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2],ymm15[3,4,5,6],ymm14[7]
2408 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1,2,3],ymm12[4,5],ymm14[6,7]
2409 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
2410 ; AVX2-SLOW-NEXT:    # ymm12 = ymm12[0,1,2],mem[3],ymm12[4,5,6,7]
2411 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[3,0,2,3,7,4,6,7]
2412 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4],ymm8[5,6,7]
2413 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,1,3,0,4,5,7,4]
2414 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[2,3,0,1,6,7,4,5]
2415 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3,4,5,6],ymm9[7]
2416 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm9[1,2,3],ymm8[4,5],ymm9[6,7]
2417 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
2418 ; AVX2-SLOW-NEXT:    # ymm8 = ymm8[0,1,2],mem[3],ymm8[4,5,6,7]
2419 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0,2,3,7,4,6,7]
2420 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7]
2421 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[0,1,3,0,4,5,7,4]
2422 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,0,1,6,7,4,5]
2423 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4,5,6],ymm5[7]
2424 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1,2,3],ymm4[4,5],ymm5[6,7]
2425 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
2426 ; AVX2-SLOW-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
2427 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
2428 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
2429 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,0,4,5,7,4]
2430 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[2,3,0,1,6,7,4,5]
2431 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6],ymm1[7]
2432 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
2433 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2434 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
2435 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 544(%r9)
2436 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, 384(%r9)
2437 ; AVX2-SLOW-NEXT:    vmovaps %ymm8, 224(%r9)
2438 ; AVX2-SLOW-NEXT:    vmovaps %ymm12, 64(%r9)
2439 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, 608(%r9)
2440 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2441 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 576(%r9)
2442 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2443 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 448(%r9)
2444 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2445 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 416(%r9)
2446 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2447 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 288(%r9)
2448 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2449 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 256(%r9)
2450 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2451 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 128(%r9)
2452 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2453 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 96(%r9)
2454 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2455 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 512(%r9)
2456 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2457 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 480(%r9)
2458 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2459 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 352(%r9)
2460 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2461 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 320(%r9)
2462 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2463 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 192(%r9)
2464 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2465 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 160(%r9)
2466 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2467 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 32(%r9)
2468 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2469 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%r9)
2470 ; AVX2-SLOW-NEXT:    addq $552, %rsp # imm = 0x228
2471 ; AVX2-SLOW-NEXT:    vzeroupper
2472 ; AVX2-SLOW-NEXT:    retq
2474 ; AVX2-FAST-LABEL: store_i32_stride5_vf32:
2475 ; AVX2-FAST:       # %bb.0:
2476 ; AVX2-FAST-NEXT:    subq $600, %rsp # imm = 0x258
2477 ; AVX2-FAST-NEXT:    vmovaps (%r8), %ymm11
2478 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2479 ; AVX2-FAST-NEXT:    vmovaps 32(%r8), %ymm10
2480 ; AVX2-FAST-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2481 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %xmm6
2482 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %xmm4
2483 ; AVX2-FAST-NEXT:    vmovaps 64(%rsi), %xmm15
2484 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm7
2485 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %xmm5
2486 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %xmm13
2487 ; AVX2-FAST-NEXT:    vmovaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2488 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm7[2],xmm6[2],xmm7[3],xmm6[3]
2489 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm12 = <0,1,0,1,u,u,2,2>
2490 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm12, %ymm0
2491 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %xmm8
2492 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %xmm2
2493 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %xmm9
2494 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %xmm3
2495 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm9[1,1,2,2]
2496 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm8[2],xmm1[3]
2497 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,1,3]
2498 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
2499 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm11[0,1,2,1]
2500 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2501 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2502 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm5[2],xmm4[2],xmm5[3],xmm4[3]
2503 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm12, %ymm0
2504 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm1 = xmm3[1,1,2,2]
2505 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],xmm2[2],xmm1[3]
2506 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,1,3]
2507 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
2508 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm10[0,1,2,1]
2509 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2510 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2511 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm13[2],xmm15[2],xmm13[3],xmm15[3]
2512 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm12, %ymm10
2513 ; AVX2-FAST-NEXT:    vmovaps 64(%rdx), %xmm1
2514 ; AVX2-FAST-NEXT:    vmovaps 64(%rcx), %xmm0
2515 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm11 = xmm0[1,1,2,2]
2516 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm1[2],xmm11[3]
2517 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,1,3]
2518 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]
2519 ; AVX2-FAST-NEXT:    vmovaps 64(%r8), %ymm11
2520 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2521 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]
2522 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm11[1],ymm10[2,3,4,5],ymm11[6],ymm10[7]
2523 ; AVX2-FAST-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2524 ; AVX2-FAST-NEXT:    vmovaps 96(%rsi), %xmm11
2525 ; AVX2-FAST-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2526 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %xmm10
2527 ; AVX2-FAST-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2528 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm10 = xmm10[2],xmm11[2],xmm10[3],xmm11[3]
2529 ; AVX2-FAST-NEXT:    vpermps %ymm10, %ymm12, %ymm10
2530 ; AVX2-FAST-NEXT:    vmovaps 96(%rdx), %xmm14
2531 ; AVX2-FAST-NEXT:    vmovaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2532 ; AVX2-FAST-NEXT:    vmovaps 96(%rcx), %xmm13
2533 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm11 = xmm13[1,1,2,2]
2534 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],xmm14[2],xmm11[3]
2535 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,1,3]
2536 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1],ymm10[2,3],ymm11[4,5],ymm10[6,7]
2537 ; AVX2-FAST-NEXT:    vmovaps 96(%r8), %ymm11
2538 ; AVX2-FAST-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2539 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,1,2,1]
2540 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm11[1],ymm10[2,3,4,5],ymm11[6],ymm10[7]
2541 ; AVX2-FAST-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2542 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm8[0],xmm9[0],xmm8[1],xmm9[1]
2543 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm6 = xmm7[0],xmm6[0],xmm7[1],xmm6[1]
2544 ; AVX2-FAST-NEXT:    vpermps %ymm8, %ymm12, %ymm7
2545 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm11 = [0,1,3,2,3,2,3,2]
2546 ; AVX2-FAST-NEXT:    vpermps %ymm6, %ymm11, %ymm8
2547 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3],ymm8[4,5,6],ymm7[7]
2548 ; AVX2-FAST-NEXT:    vinsertf128 $1, (%r8), %ymm6, %ymm6
2549 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1,2,3],ymm6[4],ymm7[5,6,7]
2550 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2551 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %ymm7
2552 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %ymm8
2553 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[1,1,1,1,5,5,5,5]
2554 ; AVX2-FAST-NEXT:    vmovaps %ymm8, %ymm9
2555 ; AVX2-FAST-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2556 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2,3,4],ymm7[5],ymm6[6,7]
2557 ; AVX2-FAST-NEXT:    vmovaps %ymm7, %ymm8
2558 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2559 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,2,2,2]
2560 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm10
2561 ; AVX2-FAST-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2562 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %ymm14
2563 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm14[1,1,2,2,5,5,6,6]
2564 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm10[1,2],ymm7[3,4],ymm10[5,6],ymm7[7]
2565 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,2,2,3]
2566 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2],ymm6[3,4],ymm7[5,6,7]
2567 ; AVX2-FAST-NEXT:    vbroadcastsd 16(%r8), %ymm7
2568 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0],ymm6[1,2,3,4],ymm7[5],ymm6[6,7]
2569 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2570 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm9[0,2,3,3,4,6,7,7]
2571 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,3,2,3,6,7,6,7]
2572 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0],ymm6[1,2],ymm7[3,4],ymm6[5,6],ymm7[7]
2573 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm7 = ymm14[2],ymm10[2],ymm14[3],ymm10[3],ymm14[6],ymm10[6],ymm14[7],ymm10[7]
2574 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[3,3,3,3]
2575 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]
2576 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm7[3,4],ymm6[5,6,7]
2577 ; AVX2-FAST-NEXT:    vbroadcastsd 24(%r8), %ymm7
2578 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm7[2],ymm6[3,4,5,6],ymm7[7]
2579 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2580 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm2[0],xmm3[0],xmm2[1],xmm3[1]
2581 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm5[0],xmm4[0],xmm5[1],xmm4[1]
2582 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm12, %ymm2
2583 ; AVX2-FAST-NEXT:    vpermps %ymm3, %ymm11, %ymm4
2584 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1],ymm2[2,3],ymm4[4,5,6],ymm2[7]
2585 ; AVX2-FAST-NEXT:    vinsertf128 $1, 32(%r8), %ymm3, %ymm3
2586 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1,2,3],ymm3[4],ymm2[5,6,7]
2587 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2588 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %ymm10
2589 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %ymm9
2590 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[1,1,1,1,5,5,5,5]
2591 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm10[1],ymm2[2,3,4],ymm10[5],ymm2[6,7]
2592 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,2,2,2]
2593 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm8
2594 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %ymm7
2595 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm7[1,1,2,2,5,5,6,6]
2596 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm8[1,2],ymm3[3,4],ymm8[5,6],ymm3[7]
2597 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[2,2,2,3]
2598 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1,2],ymm2[3,4],ymm3[5,6,7]
2599 ; AVX2-FAST-NEXT:    vbroadcastsd 48(%r8), %ymm3
2600 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1,2,3,4],ymm3[5],ymm2[6,7]
2601 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2602 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[0,2,3,3,4,6,7,7]
2603 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm10[2,3,2,3,6,7,6,7]
2604 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0],ymm2[1,2],ymm3[3,4],ymm2[5,6],ymm3[7]
2605 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm3 = ymm7[2],ymm8[2],ymm7[3],ymm8[3],ymm7[6],ymm8[6],ymm7[7],ymm8[7]
2606 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[3,3,3,3]
2607 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[2,1,3,3]
2608 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3,4],ymm2[5,6,7]
2609 ; AVX2-FAST-NEXT:    vbroadcastsd 56(%r8), %ymm3
2610 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2],ymm2[3,4,5,6],ymm3[7]
2611 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2612 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2613 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2614 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm1[0],xmm15[0],xmm1[1],xmm15[1]
2615 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm12, %ymm0
2616 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm11, %ymm2
2617 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
2618 ; AVX2-FAST-NEXT:    vinsertf128 $1, 64(%r8), %ymm1, %ymm1
2619 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
2620 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2621 ; AVX2-FAST-NEXT:    vmovaps 64(%rdx), %ymm5
2622 ; AVX2-FAST-NEXT:    vmovaps 64(%rcx), %ymm4
2623 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[1,1,1,1,5,5,5,5]
2624 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4],ymm5[5],ymm0[6,7]
2625 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2626 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm3
2627 ; AVX2-FAST-NEXT:    vmovaps 64(%rsi), %ymm2
2628 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,1,2,2,5,5,6,6]
2629 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
2630 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2631 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2632 ; AVX2-FAST-NEXT:    vbroadcastsd 80(%r8), %ymm1
2633 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2634 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2635 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[0,2,3,3,4,6,7,7]
2636 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,3,2,3,6,7,6,7]
2637 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2638 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm2[2],ymm3[2],ymm2[3],ymm3[3],ymm2[6],ymm3[6],ymm2[7],ymm3[7]
2639 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2640 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2641 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2642 ; AVX2-FAST-NEXT:    vbroadcastsd 88(%r8), %ymm1
2643 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2644 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2645 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2646 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
2647 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm12, %ymm0
2648 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2649 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2650 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
2651 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm11, %ymm6
2652 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3],ymm6[4,5,6],ymm0[7]
2653 ; AVX2-FAST-NEXT:    vinsertf128 $1, 96(%r8), %ymm1, %ymm1
2654 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
2655 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2656 ; AVX2-FAST-NEXT:    vmovaps 96(%rdx), %ymm12
2657 ; AVX2-FAST-NEXT:    vmovaps 96(%rcx), %ymm13
2658 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm13[1,1,1,1,5,5,5,5]
2659 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm12[1],ymm0[2,3,4],ymm12[5],ymm0[6,7]
2660 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm0[2,2,2,2]
2661 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm1
2662 ; AVX2-FAST-NEXT:    vmovaps 96(%rsi), %ymm0
2663 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm11 = ymm0[1,1,2,2,5,5,6,6]
2664 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm1[1,2],ymm11[3,4],ymm1[5,6],ymm11[7]
2665 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]
2666 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2],ymm6[3,4],ymm11[5,6,7]
2667 ; AVX2-FAST-NEXT:    vbroadcastsd 112(%r8), %ymm11
2668 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0],ymm6[1,2,3,4],ymm11[5],ymm6[6,7]
2669 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2670 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm13[0,2,3,3,4,6,7,7]
2671 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm15 = ymm12[2,3,2,3,6,7,6,7]
2672 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm15[0],ymm6[1,2],ymm15[3,4],ymm6[5,6],ymm15[7]
2673 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2674 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[3,3,3,3]
2675 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]
2676 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2],ymm15[3,4],ymm6[5,6,7]
2677 ; AVX2-FAST-NEXT:    vbroadcastsd 120(%r8), %ymm15
2678 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm15[2],ymm6[3,4,5,6],ymm15[7]
2679 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[3,0,2,3,7,4,6,7]
2680 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
2681 ; AVX2-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4],ymm14[5,6,7]
2682 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
2683 ; AVX2-FAST-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
2684 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
2685 ; AVX2-FAST-NEXT:    # ymm11 = mem[2,3,0,1,6,7,4,5]
2686 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm15[2],ymm11[3,4,5,6],ymm15[7]
2687 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0],ymm11[1,2,3],ymm14[4,5],ymm11[6,7]
2688 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
2689 ; AVX2-FAST-NEXT:    # ymm11 = ymm11[0,1,2],mem[3],ymm11[4,5,6,7]
2690 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm7[3,0,2,3,7,4,6,7]
2691 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4],ymm7[5,6,7]
2692 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm8 = ymm9[0,1,3,0,4,5,7,4]
2693 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[2,3,0,1,6,7,4,5]
2694 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2],ymm9[3,4,5,6],ymm8[7]
2695 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1,2,3],ymm7[4,5],ymm8[6,7]
2696 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
2697 ; AVX2-FAST-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
2698 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,0,2,3,7,4,6,7]
2699 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4],ymm2[5,6,7]
2700 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm4[0,1,3,0,4,5,7,4]
2701 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm5[2,3,0,1,6,7,4,5]
2702 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2],ymm4[3,4,5,6],ymm3[7]
2703 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0],ymm3[1,2,3],ymm2[4,5],ymm3[6,7]
2704 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
2705 ; AVX2-FAST-NEXT:    # ymm2 = ymm2[0,1,2],mem[3],ymm2[4,5,6,7]
2706 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
2707 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
2708 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[0,1,3,0,4,5,7,4]
2709 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm3 = ymm12[2,3,0,1,6,7,4,5]
2710 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2],ymm3[3,4,5,6],ymm1[7]
2711 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
2712 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2713 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
2714 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 544(%r9)
2715 ; AVX2-FAST-NEXT:    vmovaps %ymm2, 384(%r9)
2716 ; AVX2-FAST-NEXT:    vmovaps %ymm7, 224(%r9)
2717 ; AVX2-FAST-NEXT:    vmovaps %ymm11, 64(%r9)
2718 ; AVX2-FAST-NEXT:    vmovaps %ymm6, 608(%r9)
2719 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2720 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 576(%r9)
2721 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2722 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 480(%r9)
2723 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2724 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 448(%r9)
2725 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2726 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 416(%r9)
2727 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2728 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 320(%r9)
2729 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2730 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 288(%r9)
2731 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2732 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 256(%r9)
2733 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2734 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 160(%r9)
2735 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2736 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 128(%r9)
2737 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2738 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 96(%r9)
2739 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2740 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%r9)
2741 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2742 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 512(%r9)
2743 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2744 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 352(%r9)
2745 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2746 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 192(%r9)
2747 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2748 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 32(%r9)
2749 ; AVX2-FAST-NEXT:    addq $600, %rsp # imm = 0x258
2750 ; AVX2-FAST-NEXT:    vzeroupper
2751 ; AVX2-FAST-NEXT:    retq
2753 ; AVX2-FAST-PERLANE-LABEL: store_i32_stride5_vf32:
2754 ; AVX2-FAST-PERLANE:       # %bb.0:
2755 ; AVX2-FAST-PERLANE-NEXT:    subq $552, %rsp # imm = 0x228
2756 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%r8), %ymm15
2757 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2758 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%r8), %ymm14
2759 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2760 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%r8), %ymm13
2761 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2762 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %xmm7
2763 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %xmm3
2764 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rcx), %xmm0
2765 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %xmm8
2766 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %xmm4
2767 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdx), %xmm1
2768 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
2769 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2770 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[0,0,2,1]
2771 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %xmm9
2772 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %xmm6
2773 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rsi), %xmm2
2774 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm10
2775 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
2776 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
2777 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
2778 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6],ymm5[7]
2779 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %xmm12
2780 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, (%r8), %ymm11, %ymm11
2781 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0],ymm5[1,2,3],ymm11[4],ymm5[5,6,7]
2782 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2783 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %xmm5
2784 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
2785 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,2,2]
2786 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,0,2,1]
2787 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,1,2,2]
2788 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]
2789 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
2790 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,3],ymm7[4,5],ymm9[6,7]
2791 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm15[0,1,2,1]
2792 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5],ymm8[6],ymm7[7]
2793 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2794 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
2795 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,2]
2796 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,0,2,1]
2797 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
2798 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
2799 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm8[0,1,1,1]
2800 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6],ymm7[7]
2801 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 32(%r8), %ymm8, %ymm8
2802 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3],ymm8[4],ymm7[5,6,7]
2803 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2804 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm12[2],xmm6[2],xmm12[3],xmm6[3]
2805 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,2,2]
2806 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,0,2,1]
2807 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,1,2,2]
2808 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3]
2809 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
2810 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm6[2,3],ymm3[4,5],ymm6[6,7]
2811 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm14[0,1,2,1]
2812 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5],ymm4[6],ymm3[7]
2813 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2814 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2815 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,2]
2816 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,0,2,1]
2817 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
2818 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
2819 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,1,1]
2820 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6],ymm3[7]
2821 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 64(%r8), %ymm4, %ymm4
2822 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3],ymm4[4],ymm3[5,6,7]
2823 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2824 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm5[2],xmm2[2],xmm5[3],xmm2[3]
2825 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2826 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
2827 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
2828 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
2829 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
2830 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
2831 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,1,2,1]
2832 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2833 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2834 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rcx), %xmm0
2835 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdx), %xmm1
2836 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
2837 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
2838 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
2839 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rsi), %xmm3
2840 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %xmm4
2841 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
2842 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
2843 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
2844 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
2845 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm6
2846 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 96(%r8), %ymm5, %ymm5
2847 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
2848 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2849 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %ymm5
2850 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
2851 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %ymm14
2852 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
2853 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
2854 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%r8), %ymm3
2855 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2856 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
2857 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
2858 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
2859 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
2860 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[0,1,2,1]
2861 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
2862 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2863 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
2864 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, (%rsp) # 32-byte Spill
2865 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4],ymm5[5],ymm0[6,7]
2866 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2867 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %ymm12
2868 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm12[1,1,2,2,5,5,6,6]
2869 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2870 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1,2],ymm1[3,4],ymm6[5,6],ymm1[7]
2871 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2872 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2873 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 16(%r8), %ymm1
2874 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2875 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2876 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
2877 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,3,2,3,6,7,6,7]
2878 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2879 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm12[2],ymm6[2],ymm12[3],ymm6[3],ymm12[6],ymm6[6],ymm12[7],ymm6[7]
2880 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2881 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2882 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2883 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 24(%r8), %ymm1
2884 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2885 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2886 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %ymm11
2887 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %ymm10
2888 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[1,1,1,1,5,5,5,5]
2889 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm11[1],ymm0[2,3,4],ymm11[5],ymm0[6,7]
2890 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2891 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm9
2892 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %ymm8
2893 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[1,1,2,2,5,5,6,6]
2894 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm9[1,2],ymm1[3,4],ymm9[5,6],ymm1[7]
2895 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2896 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2897 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 48(%r8), %ymm1
2898 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2899 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2900 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm10[0,2,3,3,4,6,7,7]
2901 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[2,3,2,3,6,7,6,7]
2902 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2903 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm8[2],ymm9[2],ymm8[3],ymm9[3],ymm8[6],ymm9[6],ymm8[7],ymm9[7]
2904 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2905 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2906 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2907 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 56(%r8), %ymm1
2908 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2909 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2910 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdx), %ymm7
2911 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rcx), %ymm6
2912 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1,1,1,5,5,5,5]
2913 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm7[1],ymm0[2,3,4],ymm7[5],ymm0[6,7]
2914 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
2915 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm5
2916 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rsi), %ymm4
2917 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,1,2,2,5,5,6,6]
2918 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4],ymm5[5,6],ymm1[7]
2919 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
2920 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
2921 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 80(%r8), %ymm1
2922 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
2923 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2924 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[0,2,3,3,4,6,7,7]
2925 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[2,3,2,3,6,7,6,7]
2926 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
2927 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
2928 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
2929 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
2930 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
2931 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 88(%r8), %ymm1
2932 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
2933 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2934 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdx), %ymm3
2935 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rcx), %ymm2
2936 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
2937 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]
2938 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm0[2,2,2,2]
2939 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm1
2940 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rsi), %ymm0
2941 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm0[1,1,2,2,5,5,6,6]
2942 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0],ymm1[1,2],ymm15[3,4],ymm1[5,6],ymm15[7]
2943 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[2,2,2,3]
2944 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2],ymm13[3,4],ymm15[5,6,7]
2945 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 112(%r8), %ymm15
2946 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2,3,4],ymm15[5],ymm13[6,7]
2947 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2948 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm13 = ymm2[0,2,3,3,4,6,7,7]
2949 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm3[2,3,2,3,6,7,6,7]
2950 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0],ymm13[1,2],ymm15[3,4],ymm13[5,6],ymm15[7]
2951 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm15 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
2952 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[3,3,3,3]
2953 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[2,1,3,3]
2954 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2],ymm15[3,4],ymm13[5,6,7]
2955 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 120(%r8), %ymm15
2956 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
2957 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm12 = ymm12[3,0,2,3,7,4,6,7]
2958 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
2959 ; AVX2-FAST-PERLANE-NEXT:    # ymm12 = ymm12[0,1,2,3],mem[4],ymm12[5,6,7]
2960 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm14[0,1,3,0,4,5,7,4]
2961 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, (%rsp), %ymm15 # 32-byte Folded Reload
2962 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
2963 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm15[0,1],ymm14[2],ymm15[3,4,5,6],ymm14[7]
2964 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0],ymm14[1,2,3],ymm12[4,5],ymm14[6,7]
2965 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
2966 ; AVX2-FAST-PERLANE-NEXT:    # ymm12 = ymm12[0,1,2],mem[3],ymm12[4,5,6,7]
2967 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm8 = ymm8[3,0,2,3,7,4,6,7]
2968 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4],ymm8[5,6,7]
2969 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm10[0,1,3,0,4,5,7,4]
2970 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm11[2,3,0,1,6,7,4,5]
2971 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2],ymm10[3,4,5,6],ymm9[7]
2972 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm9[1,2,3],ymm8[4,5],ymm9[6,7]
2973 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
2974 ; AVX2-FAST-PERLANE-NEXT:    # ymm8 = ymm8[0,1,2],mem[3],ymm8[4,5,6,7]
2975 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0,2,3,7,4,6,7]
2976 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7]
2977 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[0,1,3,0,4,5,7,4]
2978 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[2,3,0,1,6,7,4,5]
2979 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4,5,6],ymm5[7]
2980 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1,2,3],ymm4[4,5],ymm5[6,7]
2981 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
2982 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
2983 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
2984 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
2985 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,0,4,5,7,4]
2986 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[2,3,0,1,6,7,4,5]
2987 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6],ymm1[7]
2988 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
2989 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2990 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
2991 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 544(%r9)
2992 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, 384(%r9)
2993 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm8, 224(%r9)
2994 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm12, 64(%r9)
2995 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, 608(%r9)
2996 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2997 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 576(%r9)
2998 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2999 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 448(%r9)
3000 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3001 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 416(%r9)
3002 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3003 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 288(%r9)
3004 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3005 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 256(%r9)
3006 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3007 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 128(%r9)
3008 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3009 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 96(%r9)
3010 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3011 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 512(%r9)
3012 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3013 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 480(%r9)
3014 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3015 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 352(%r9)
3016 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3017 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 320(%r9)
3018 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3019 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 192(%r9)
3020 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3021 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 160(%r9)
3022 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3023 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 32(%r9)
3024 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3025 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%r9)
3026 ; AVX2-FAST-PERLANE-NEXT:    addq $552, %rsp # imm = 0x228
3027 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
3028 ; AVX2-FAST-PERLANE-NEXT:    retq
3030 ; AVX512F-LABEL: store_i32_stride5_vf32:
3031 ; AVX512F:       # %bb.0:
3032 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm2
3033 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm0
3034 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm1
3035 ; AVX512F-NEXT:    vmovdqa64 64(%rsi), %zmm11
3036 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm4
3037 ; AVX512F-NEXT:    vmovdqa64 64(%rdx), %zmm12
3038 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm6
3039 ; AVX512F-NEXT:    vmovdqa64 64(%rcx), %zmm14
3040 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm5
3041 ; AVX512F-NEXT:    vmovdqa64 64(%r8), %zmm13
3042 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
3043 ; AVX512F-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
3044 ; AVX512F-NEXT:    vmovdqa64 %zmm4, %zmm7
3045 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm16, %zmm7
3046 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
3047 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
3048 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm3
3049 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm17, %zmm3
3050 ; AVX512F-NEXT:    movw $12684, %ax # imm = 0x318C
3051 ; AVX512F-NEXT:    kmovw %eax, %k1
3052 ; AVX512F-NEXT:    vmovdqa32 %zmm7, %zmm3 {%k1}
3053 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm18 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
3054 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm18, %zmm3
3055 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
3056 ; AVX512F-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
3057 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm9
3058 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm19, %zmm9
3059 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
3060 ; AVX512F-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
3061 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm7
3062 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm8, %zmm7
3063 ; AVX512F-NEXT:    movw $25368, %ax # imm = 0x6318
3064 ; AVX512F-NEXT:    kmovw %eax, %k2
3065 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm7 {%k2}
3066 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm20 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
3067 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm20, %zmm7
3068 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
3069 ; AVX512F-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
3070 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm15
3071 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm21, %zmm15
3072 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
3073 ; AVX512F-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
3074 ; AVX512F-NEXT:    vmovdqa64 %zmm14, %zmm9
3075 ; AVX512F-NEXT:    vpermt2d %zmm12, %zmm10, %zmm9
3076 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm9 {%k1}
3077 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm22 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
3078 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm22, %zmm9
3079 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
3080 ; AVX512F-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
3081 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm24
3082 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm23, %zmm24
3083 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
3084 ; AVX512F-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
3085 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm15
3086 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm25, %zmm15
3087 ; AVX512F-NEXT:    vmovdqa32 %zmm24, %zmm15 {%k2}
3088 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm24 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
3089 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm24, %zmm15
3090 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm26 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
3091 ; AVX512F-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3]
3092 ; AVX512F-NEXT:    vmovdqa64 %zmm12, %zmm27
3093 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm26, %zmm27
3094 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
3095 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
3096 ; AVX512F-NEXT:    vmovdqa64 %zmm11, %zmm29
3097 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm28, %zmm29
3098 ; AVX512F-NEXT:    movw $6342, %ax # imm = 0x18C6
3099 ; AVX512F-NEXT:    kmovw %eax, %k3
3100 ; AVX512F-NEXT:    vmovdqa32 %zmm27, %zmm29 {%k3}
3101 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm27 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
3102 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm27, %zmm29
3103 ; AVX512F-NEXT:    vpermt2d %zmm14, %zmm16, %zmm12
3104 ; AVX512F-NEXT:    vpermt2d %zmm11, %zmm17, %zmm0
3105 ; AVX512F-NEXT:    vmovdqa32 %zmm12, %zmm0 {%k1}
3106 ; AVX512F-NEXT:    vpermt2d %zmm13, %zmm18, %zmm0
3107 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm4, %zmm19
3108 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm2, %zmm8
3109 ; AVX512F-NEXT:    vmovdqa32 %zmm19, %zmm8 {%k2}
3110 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm20, %zmm8
3111 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm2, %zmm21
3112 ; AVX512F-NEXT:    vpermi2d %zmm4, %zmm6, %zmm10
3113 ; AVX512F-NEXT:    vmovdqa32 %zmm21, %zmm10 {%k1}
3114 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm22, %zmm10
3115 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm2, %zmm23
3116 ; AVX512F-NEXT:    vpermi2d %zmm6, %zmm4, %zmm25
3117 ; AVX512F-NEXT:    vmovdqa32 %zmm23, %zmm25 {%k2}
3118 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm24, %zmm25
3119 ; AVX512F-NEXT:    vpermt2d %zmm6, %zmm26, %zmm4
3120 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm28, %zmm1
3121 ; AVX512F-NEXT:    vmovdqa32 %zmm4, %zmm1 {%k3}
3122 ; AVX512F-NEXT:    vpermt2d %zmm5, %zmm27, %zmm1
3123 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 64(%r9)
3124 ; AVX512F-NEXT:    vmovdqa64 %zmm25, 128(%r9)
3125 ; AVX512F-NEXT:    vmovdqa64 %zmm10, 192(%r9)
3126 ; AVX512F-NEXT:    vmovdqa64 %zmm8, 256(%r9)
3127 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 320(%r9)
3128 ; AVX512F-NEXT:    vmovdqa64 %zmm29, 384(%r9)
3129 ; AVX512F-NEXT:    vmovdqa64 %zmm15, 448(%r9)
3130 ; AVX512F-NEXT:    vmovdqa64 %zmm9, 512(%r9)
3131 ; AVX512F-NEXT:    vmovdqa64 %zmm7, 576(%r9)
3132 ; AVX512F-NEXT:    vmovdqa64 %zmm3, (%r9)
3133 ; AVX512F-NEXT:    vzeroupper
3134 ; AVX512F-NEXT:    retq
3136 ; AVX512BW-LABEL: store_i32_stride5_vf32:
3137 ; AVX512BW:       # %bb.0:
3138 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm2
3139 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
3140 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
3141 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm11
3142 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm4
3143 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm12
3144 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm6
3145 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm14
3146 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm5
3147 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm13
3148 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
3149 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
3150 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm7
3151 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm16, %zmm7
3152 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
3153 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
3154 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3
3155 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm17, %zmm3
3156 ; AVX512BW-NEXT:    movw $12684, %ax # imm = 0x318C
3157 ; AVX512BW-NEXT:    kmovd %eax, %k1
3158 ; AVX512BW-NEXT:    vmovdqa32 %zmm7, %zmm3 {%k1}
3159 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm18 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
3160 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm18, %zmm3
3161 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
3162 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
3163 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm9
3164 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm19, %zmm9
3165 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
3166 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
3167 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7
3168 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm8, %zmm7
3169 ; AVX512BW-NEXT:    movw $25368, %ax # imm = 0x6318
3170 ; AVX512BW-NEXT:    kmovd %eax, %k2
3171 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm7 {%k2}
3172 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm20 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
3173 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm20, %zmm7
3174 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
3175 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
3176 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15
3177 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm21, %zmm15
3178 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
3179 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
3180 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm9
3181 ; AVX512BW-NEXT:    vpermt2d %zmm12, %zmm10, %zmm9
3182 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm9 {%k1}
3183 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm22 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
3184 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm22, %zmm9
3185 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
3186 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
3187 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24
3188 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm23, %zmm24
3189 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
3190 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
3191 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm15
3192 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm25, %zmm15
3193 ; AVX512BW-NEXT:    vmovdqa32 %zmm24, %zmm15 {%k2}
3194 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm24 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
3195 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm24, %zmm15
3196 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm26 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
3197 ; AVX512BW-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3]
3198 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm27
3199 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm26, %zmm27
3200 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
3201 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
3202 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm29
3203 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm28, %zmm29
3204 ; AVX512BW-NEXT:    movw $6342, %ax # imm = 0x18C6
3205 ; AVX512BW-NEXT:    kmovd %eax, %k3
3206 ; AVX512BW-NEXT:    vmovdqa32 %zmm27, %zmm29 {%k3}
3207 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm27 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
3208 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm27, %zmm29
3209 ; AVX512BW-NEXT:    vpermt2d %zmm14, %zmm16, %zmm12
3210 ; AVX512BW-NEXT:    vpermt2d %zmm11, %zmm17, %zmm0
3211 ; AVX512BW-NEXT:    vmovdqa32 %zmm12, %zmm0 {%k1}
3212 ; AVX512BW-NEXT:    vpermt2d %zmm13, %zmm18, %zmm0
3213 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm4, %zmm19
3214 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm2, %zmm8
3215 ; AVX512BW-NEXT:    vmovdqa32 %zmm19, %zmm8 {%k2}
3216 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm20, %zmm8
3217 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm2, %zmm21
3218 ; AVX512BW-NEXT:    vpermi2d %zmm4, %zmm6, %zmm10
3219 ; AVX512BW-NEXT:    vmovdqa32 %zmm21, %zmm10 {%k1}
3220 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm22, %zmm10
3221 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm2, %zmm23
3222 ; AVX512BW-NEXT:    vpermi2d %zmm6, %zmm4, %zmm25
3223 ; AVX512BW-NEXT:    vmovdqa32 %zmm23, %zmm25 {%k2}
3224 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm24, %zmm25
3225 ; AVX512BW-NEXT:    vpermt2d %zmm6, %zmm26, %zmm4
3226 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm28, %zmm1
3227 ; AVX512BW-NEXT:    vmovdqa32 %zmm4, %zmm1 {%k3}
3228 ; AVX512BW-NEXT:    vpermt2d %zmm5, %zmm27, %zmm1
3229 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%r9)
3230 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 128(%r9)
3231 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 192(%r9)
3232 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 256(%r9)
3233 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 320(%r9)
3234 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 384(%r9)
3235 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 448(%r9)
3236 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 512(%r9)
3237 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 576(%r9)
3238 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%r9)
3239 ; AVX512BW-NEXT:    vzeroupper
3240 ; AVX512BW-NEXT:    retq
3241   %in.vec0 = load <32 x i32>, ptr %in.vecptr0, align 64
3242   %in.vec1 = load <32 x i32>, ptr %in.vecptr1, align 64
3243   %in.vec2 = load <32 x i32>, ptr %in.vecptr2, align 64
3244   %in.vec3 = load <32 x i32>, ptr %in.vecptr3, align 64
3245   %in.vec4 = load <32 x i32>, ptr %in.vecptr4, align 64
3246   %1 = shufflevector <32 x i32> %in.vec0, <32 x i32> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
3247   %2 = shufflevector <32 x i32> %in.vec2, <32 x i32> %in.vec3, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
3248   %3 = shufflevector <64 x i32> %1, <64 x i32> %2, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
3249   %4 = shufflevector <32 x i32> %in.vec4, <32 x i32> poison, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
3250   %5 = shufflevector <128 x i32> %3, <128 x i32> %4, <160 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159>
3251   %interleaved.vec = shufflevector <160 x i32> %5, <160 x i32> poison, <160 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 1, i32 33, i32 65, i32 97, i32 129, i32 2, i32 34, i32 66, i32 98, i32 130, i32 3, i32 35, i32 67, i32 99, i32 131, i32 4, i32 36, i32 68, i32 100, i32 132, i32 5, i32 37, i32 69, i32 101, i32 133, i32 6, i32 38, i32 70, i32 102, i32 134, i32 7, i32 39, i32 71, i32 103, i32 135, i32 8, i32 40, i32 72, i32 104, i32 136, i32 9, i32 41, i32 73, i32 105, i32 137, i32 10, i32 42, i32 74, i32 106, i32 138, i32 11, i32 43, i32 75, i32 107, i32 139, i32 12, i32 44, i32 76, i32 108, i32 140, i32 13, i32 45, i32 77, i32 109, i32 141, i32 14, i32 46, i32 78, i32 110, i32 142, i32 15, i32 47, i32 79, i32 111, i32 143, i32 16, i32 48, i32 80, i32 112, i32 144, i32 17, i32 49, i32 81, i32 113, i32 145, i32 18, i32 50, i32 82, i32 114, i32 146, i32 19, i32 51, i32 83, i32 115, i32 147, i32 20, i32 52, i32 84, i32 116, i32 148, i32 21, i32 53, i32 85, i32 117, i32 149, i32 22, i32 54, i32 86, i32 118, i32 150, i32 23, i32 55, i32 87, i32 119, i32 151, i32 24, i32 56, i32 88, i32 120, i32 152, i32 25, i32 57, i32 89, i32 121, i32 153, i32 26, i32 58, i32 90, i32 122, i32 154, i32 27, i32 59, i32 91, i32 123, i32 155, i32 28, i32 60, i32 92, i32 124, i32 156, i32 29, i32 61, i32 93, i32 125, i32 157, i32 30, i32 62, i32 94, i32 126, i32 158, i32 31, i32 63, i32 95, i32 127, i32 159>
3252   store <160 x i32> %interleaved.vec, ptr %out.vec, align 64
3253   ret void
3256 define void @store_i32_stride5_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
3257 ; SSE-LABEL: store_i32_stride5_vf64:
3258 ; SSE:       # %bb.0:
3259 ; SSE-NEXT:    subq $1736, %rsp # imm = 0x6C8
3260 ; SSE-NEXT:    movdqa (%rsi), %xmm10
3261 ; SSE-NEXT:    movdqa 16(%rsi), %xmm3
3262 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3263 ; SSE-NEXT:    movdqa 32(%rsi), %xmm6
3264 ; SSE-NEXT:    movdqa %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3265 ; SSE-NEXT:    movdqa (%rdx), %xmm8
3266 ; SSE-NEXT:    movdqa 16(%rdx), %xmm13
3267 ; SSE-NEXT:    movdqa %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3268 ; SSE-NEXT:    movdqa 32(%rdx), %xmm7
3269 ; SSE-NEXT:    movdqa %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3270 ; SSE-NEXT:    movaps (%rcx), %xmm5
3271 ; SSE-NEXT:    movaps 16(%rcx), %xmm9
3272 ; SSE-NEXT:    movaps 32(%rcx), %xmm12
3273 ; SSE-NEXT:    movaps %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3274 ; SSE-NEXT:    movaps (%r8), %xmm4
3275 ; SSE-NEXT:    movaps 16(%r8), %xmm11
3276 ; SSE-NEXT:    movaps 32(%r8), %xmm14
3277 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3278 ; SSE-NEXT:    movaps %xmm5, %xmm0
3279 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm4[3,3]
3280 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm10[3,3,3,3]
3281 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm8[2,3,2,3]
3282 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm1[0],xmm2[1,2,3]
3283 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
3284 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3285 ; SSE-NEXT:    movaps %xmm9, %xmm0
3286 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm11[3,3]
3287 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm13[3,3,3,3]
3288 ; SSE-NEXT:    pshufd {{.*#+}} xmm2 = xmm3[3,3,3,3]
3289 ; SSE-NEXT:    punpckldq {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]
3290 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[0,2]
3291 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3292 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm6[3,3,3,3]
3293 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm7[2,3,2,3]
3294 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3295 ; SSE-NEXT:    movaps %xmm12, %xmm0
3296 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm14[3,3]
3297 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3298 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3299 ; SSE-NEXT:    movdqa 48(%rsi), %xmm12
3300 ; SSE-NEXT:    movdqa 48(%rdx), %xmm0
3301 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3302 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3303 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm12[3,3,3,3]
3304 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3305 ; SSE-NEXT:    movaps 48(%rcx), %xmm6
3306 ; SSE-NEXT:    movaps 48(%r8), %xmm7
3307 ; SSE-NEXT:    movaps %xmm6, %xmm0
3308 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm7[3,3]
3309 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3310 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3311 ; SSE-NEXT:    movdqa 64(%rsi), %xmm0
3312 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3313 ; SSE-NEXT:    movdqa 64(%rdx), %xmm15
3314 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3315 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm15[2,3,2,3]
3316 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3317 ; SSE-NEXT:    movaps 64(%rcx), %xmm13
3318 ; SSE-NEXT:    movaps 64(%r8), %xmm2
3319 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3320 ; SSE-NEXT:    movaps %xmm13, %xmm0
3321 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3322 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3323 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3324 ; SSE-NEXT:    movdqa 80(%rsi), %xmm2
3325 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3326 ; SSE-NEXT:    movdqa 80(%rdx), %xmm0
3327 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3328 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3329 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3330 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3331 ; SSE-NEXT:    movaps 80(%rcx), %xmm14
3332 ; SSE-NEXT:    movaps 80(%r8), %xmm2
3333 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3334 ; SSE-NEXT:    movaps %xmm14, %xmm0
3335 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3336 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3337 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3338 ; SSE-NEXT:    movdqa 96(%rsi), %xmm0
3339 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3340 ; SSE-NEXT:    movdqa 96(%rdx), %xmm1
3341 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3342 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3343 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
3344 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3345 ; SSE-NEXT:    movaps 96(%rcx), %xmm0
3346 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3347 ; SSE-NEXT:    movaps 96(%r8), %xmm2
3348 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3349 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3350 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3351 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3352 ; SSE-NEXT:    movdqa 112(%rsi), %xmm2
3353 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3354 ; SSE-NEXT:    movdqa 112(%rdx), %xmm0
3355 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3356 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3357 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3358 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3359 ; SSE-NEXT:    movaps 112(%rcx), %xmm0
3360 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3361 ; SSE-NEXT:    movaps 112(%r8), %xmm2
3362 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3363 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3364 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3365 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3366 ; SSE-NEXT:    movdqa 128(%rsi), %xmm0
3367 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3368 ; SSE-NEXT:    movdqa 128(%rdx), %xmm1
3369 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3370 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3371 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
3372 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3373 ; SSE-NEXT:    movaps 128(%rcx), %xmm0
3374 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3375 ; SSE-NEXT:    movaps 128(%r8), %xmm2
3376 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3377 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3378 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3379 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3380 ; SSE-NEXT:    movdqa 144(%rsi), %xmm2
3381 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3382 ; SSE-NEXT:    movdqa 144(%rdx), %xmm0
3383 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3384 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3385 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3386 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3387 ; SSE-NEXT:    movaps 144(%rcx), %xmm0
3388 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3389 ; SSE-NEXT:    movaps 144(%r8), %xmm2
3390 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3391 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3392 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3393 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3394 ; SSE-NEXT:    movdqa 160(%rsi), %xmm0
3395 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3396 ; SSE-NEXT:    movdqa 160(%rdx), %xmm1
3397 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3398 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3399 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
3400 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3401 ; SSE-NEXT:    movaps 160(%rcx), %xmm0
3402 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3403 ; SSE-NEXT:    movaps 160(%r8), %xmm2
3404 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3405 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3406 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3407 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3408 ; SSE-NEXT:    movdqa 176(%rsi), %xmm2
3409 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3410 ; SSE-NEXT:    movdqa 176(%rdx), %xmm0
3411 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3412 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3413 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3414 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3415 ; SSE-NEXT:    movaps 176(%rcx), %xmm0
3416 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3417 ; SSE-NEXT:    movaps 176(%r8), %xmm2
3418 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3419 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3420 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3421 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3422 ; SSE-NEXT:    movdqa 192(%rsi), %xmm0
3423 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3424 ; SSE-NEXT:    movdqa 192(%rdx), %xmm1
3425 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3426 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3427 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
3428 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3429 ; SSE-NEXT:    movaps 192(%rcx), %xmm0
3430 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3431 ; SSE-NEXT:    movaps 192(%r8), %xmm2
3432 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3433 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3434 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3435 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3436 ; SSE-NEXT:    movdqa 208(%rsi), %xmm2
3437 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3438 ; SSE-NEXT:    movdqa 208(%rdx), %xmm0
3439 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3440 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3441 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3442 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3443 ; SSE-NEXT:    movaps 208(%rcx), %xmm0
3444 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3445 ; SSE-NEXT:    movaps 208(%r8), %xmm2
3446 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3447 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3448 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3449 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3450 ; SSE-NEXT:    movdqa 224(%rsi), %xmm0
3451 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3452 ; SSE-NEXT:    movdqa 224(%rdx), %xmm1
3453 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3454 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3455 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm1[2,3,2,3]
3456 ; SSE-NEXT:    movss {{.*#+}} xmm1 = xmm0[0],xmm1[1,2,3]
3457 ; SSE-NEXT:    movaps 224(%rcx), %xmm0
3458 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3459 ; SSE-NEXT:    movaps 224(%r8), %xmm2
3460 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3461 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm2[3,3]
3462 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3463 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3464 ; SSE-NEXT:    movdqa 240(%rsi), %xmm2
3465 ; SSE-NEXT:    movdqa %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3466 ; SSE-NEXT:    movdqa 240(%rdx), %xmm0
3467 ; SSE-NEXT:    movdqa %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3468 ; SSE-NEXT:    pshufd {{.*#+}} xmm0 = xmm0[3,3,3,3]
3469 ; SSE-NEXT:    pshufd {{.*#+}} xmm1 = xmm2[3,3,3,3]
3470 ; SSE-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
3471 ; SSE-NEXT:    movaps 240(%rcx), %xmm0
3472 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3473 ; SSE-NEXT:    movaps 240(%r8), %xmm3
3474 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3475 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3],xmm3[3,3]
3476 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,1],xmm0[0,2]
3477 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3478 ; SSE-NEXT:    movdqa %xmm8, %xmm2
3479 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3480 ; SSE-NEXT:    movdqa %xmm8, %xmm0
3481 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
3482 ; SSE-NEXT:    movdqa (%rdi), %xmm1
3483 ; SSE-NEXT:    movdqa %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3484 ; SSE-NEXT:    movdqa %xmm1, %xmm8
3485 ; SSE-NEXT:    movdqa %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3486 ; SSE-NEXT:    punpckldq {{.*#+}} xmm8 = xmm8[0],xmm10[0],xmm8[1],xmm10[1]
3487 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm8 = xmm8[0],xmm0[0]
3488 ; SSE-NEXT:    movdqa %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3489 ; SSE-NEXT:    movdqa %xmm1, %xmm0
3490 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm10[2],xmm0[3],xmm10[3]
3491 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm2 = xmm2[2],xmm5[2],xmm2[3],xmm5[3]
3492 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3493 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm4[1,1]
3494 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm0[0,1]
3495 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3496 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[3,0],xmm4[2,0]
3497 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm1[2,0]
3498 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3500 ; SSE-NEXT:    movaps %xmm1, %xmm0
3501 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm9[0],xmm0[1],xmm9[1]
3502 ; SSE-NEXT:    movaps 16(%rdi), %xmm3
3503 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3504 ; SSE-NEXT:    movaps %xmm3, %xmm8
3505 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3506 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm2[0],xmm8[1],xmm2[1]
3507 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
3508 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3509 ; SSE-NEXT:    movaps %xmm3, %xmm0
3510 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3511 ; SSE-NEXT:    movaps %xmm9, %xmm8
3512 ; SSE-NEXT:    movaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3513 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[1,1],xmm11[1,1]
3514 ; SSE-NEXT:    shufps {{.*#+}} xmm8 = xmm8[0,2],xmm0[0,1]
3515 ; SSE-NEXT:    movaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3516 ; SSE-NEXT:    movaps %xmm3, %xmm0
3517 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm11[2,3]
3518 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm1[1]
3519 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[2,0],xmm0[2,0]
3520 ; SSE-NEXT:    movaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3521 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3522 ; SSE-NEXT:    movaps %xmm1, %xmm0
3523 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3524 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
3525 ; SSE-NEXT:    movaps 32(%rdi), %xmm2
3526 ; SSE-NEXT:    movaps %xmm2, %xmm3
3527 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3528 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1]
3529 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
3530 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3531 ; SSE-NEXT:    movaps %xmm2, %xmm0
3532 ; SSE-NEXT:    movaps %xmm2, (%rsp) # 16-byte Spill
3533 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm5[2],xmm0[3],xmm5[3]
3534 ; SSE-NEXT:    movaps %xmm1, %xmm3
3535 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm4[2],xmm3[3],xmm4[3]
3536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3537 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
3538 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3539 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3540 ; SSE-NEXT:    movaps %xmm2, %xmm0
3541 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm1[2,0]
3542 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
3543 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3545 ; SSE-NEXT:    movaps %xmm1, %xmm0
3546 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm6[0],xmm0[1],xmm6[1]
3547 ; SSE-NEXT:    movdqa 48(%rdi), %xmm3
3548 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3549 ; SSE-NEXT:    movdqa %xmm3, %xmm4
3550 ; SSE-NEXT:    movdqa %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3551 ; SSE-NEXT:    punpckldq {{.*#+}} xmm4 = xmm4[0],xmm12[0],xmm4[1],xmm12[1]
3552 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3553 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3554 ; SSE-NEXT:    movdqa %xmm3, %xmm0
3555 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm12[2],xmm0[3],xmm12[3]
3556 ; SSE-NEXT:    movaps %xmm6, %xmm4
3557 ; SSE-NEXT:    movaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3558 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm7[1,1]
3559 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3560 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3561 ; SSE-NEXT:    movdqa %xmm3, %xmm0
3562 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm7[2,3]
3563 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm1[1]
3564 ; SSE-NEXT:    shufps {{.*#+}} xmm6 = xmm6[2,0],xmm0[2,0]
3565 ; SSE-NEXT:    movaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3566 ; SSE-NEXT:    movdqa %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3567 ; SSE-NEXT:    movdqa %xmm15, %xmm0
3568 ; SSE-NEXT:    punpckldq {{.*#+}} xmm0 = xmm0[0],xmm13[0],xmm0[1],xmm13[1]
3569 ; SSE-NEXT:    movdqa 64(%rdi), %xmm4
3570 ; SSE-NEXT:    movdqa %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3571 ; SSE-NEXT:    movdqa %xmm4, %xmm3
3572 ; SSE-NEXT:    movdqa {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3573 ; SSE-NEXT:    punpckldq {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3574 ; SSE-NEXT:    punpcklqdq {{.*#+}} xmm3 = xmm3[0],xmm0[0]
3575 ; SSE-NEXT:    movdqa %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3576 ; SSE-NEXT:    movdqa %xmm4, %xmm0
3577 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3578 ; SSE-NEXT:    punpckhdq {{.*#+}} xmm15 = xmm15[2],xmm13[2],xmm15[3],xmm13[3]
3579 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3580 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[1,1],xmm1[1,1]
3581 ; SSE-NEXT:    shufps {{.*#+}} xmm13 = xmm13[0,2],xmm0[0,1]
3582 ; SSE-NEXT:    movaps %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3583 ; SSE-NEXT:    movdqa %xmm4, %xmm0
3584 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm1[2,0]
3585 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[2,0]
3586 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3587 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3588 ; SSE-NEXT:    movaps %xmm2, %xmm0
3589 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm14[0],xmm0[1],xmm14[1]
3590 ; SSE-NEXT:    movaps 80(%rdi), %xmm3
3591 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3592 ; SSE-NEXT:    movaps %xmm3, %xmm4
3593 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3594 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
3595 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3596 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3597 ; SSE-NEXT:    movaps %xmm3, %xmm0
3598 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
3599 ; SSE-NEXT:    movaps %xmm14, %xmm4
3600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3601 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
3602 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3603 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3604 ; SSE-NEXT:    movaps %xmm3, %xmm0
3605 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[2,3]
3606 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm2[1]
3607 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[2,0],xmm0[2,0]
3608 ; SSE-NEXT:    movaps %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3609 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3610 ; SSE-NEXT:    movaps %xmm1, %xmm0
3611 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3612 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
3613 ; SSE-NEXT:    movaps 96(%rdi), %xmm5
3614 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3615 ; SSE-NEXT:    movaps %xmm5, %xmm3
3616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3617 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3618 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
3619 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3620 ; SSE-NEXT:    movaps %xmm5, %xmm0
3621 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3622 ; SSE-NEXT:    movaps %xmm1, %xmm2
3623 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
3624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3625 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
3626 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3627 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3628 ; SSE-NEXT:    movaps %xmm5, %xmm0
3629 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm1[2,0]
3630 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3631 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3632 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3633 ; SSE-NEXT:    movaps %xmm2, %xmm0
3634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm5 # 16-byte Reload
3635 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm5[0],xmm0[1],xmm5[1]
3636 ; SSE-NEXT:    movaps 112(%rdi), %xmm3
3637 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3638 ; SSE-NEXT:    movaps %xmm3, %xmm4
3639 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3640 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm1[0],xmm4[1],xmm1[1]
3641 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3642 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3643 ; SSE-NEXT:    movaps %xmm3, %xmm0
3644 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
3645 ; SSE-NEXT:    movaps %xmm5, %xmm4
3646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3647 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
3648 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3649 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3650 ; SSE-NEXT:    movaps %xmm3, %xmm0
3651 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[2,3]
3652 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm2[1]
3653 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[2,0],xmm0[2,0]
3654 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3655 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3656 ; SSE-NEXT:    movaps %xmm1, %xmm0
3657 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm4 # 16-byte Reload
3658 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm4[0],xmm0[1],xmm4[1]
3659 ; SSE-NEXT:    movaps 128(%rdi), %xmm5
3660 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3661 ; SSE-NEXT:    movaps %xmm5, %xmm3
3662 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3663 ; SSE-NEXT:    unpcklps {{.*#+}} xmm3 = xmm3[0],xmm2[0],xmm3[1],xmm2[1]
3664 ; SSE-NEXT:    movlhps {{.*#+}} xmm3 = xmm3[0],xmm0[0]
3665 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3666 ; SSE-NEXT:    movaps %xmm5, %xmm0
3667 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3668 ; SSE-NEXT:    movaps %xmm1, %xmm2
3669 ; SSE-NEXT:    unpckhps {{.*#+}} xmm2 = xmm2[2],xmm4[2],xmm2[3],xmm4[3]
3670 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3671 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm1[1,1]
3672 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3673 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3674 ; SSE-NEXT:    movaps %xmm5, %xmm0
3675 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm1[2,0]
3676 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3677 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3678 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3679 ; SSE-NEXT:    movaps %xmm3, %xmm0
3680 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3681 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3682 ; SSE-NEXT:    movaps 144(%rdi), %xmm4
3683 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3684 ; SSE-NEXT:    movaps %xmm4, %xmm5
3685 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3686 ; SSE-NEXT:    unpcklps {{.*#+}} xmm5 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
3687 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm0[0]
3688 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3689 ; SSE-NEXT:    movaps %xmm4, %xmm0
3690 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3691 ; SSE-NEXT:    movaps %xmm1, %xmm5
3692 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3693 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[1,1],xmm2[1,1]
3694 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,2],xmm0[0,1]
3695 ; SSE-NEXT:    movaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3696 ; SSE-NEXT:    movaps %xmm4, %xmm0
3697 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm2[2,3]
3698 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
3699 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,0]
3700 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3701 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3702 ; SSE-NEXT:    movaps %xmm2, %xmm0
3703 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3704 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3705 ; SSE-NEXT:    movaps 160(%rdi), %xmm14
3706 ; SSE-NEXT:    movaps %xmm14, %xmm4
3707 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3708 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
3709 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3710 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3711 ; SSE-NEXT:    movaps %xmm14, %xmm0
3712 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
3713 ; SSE-NEXT:    movaps %xmm2, %xmm3
3714 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm1[2],xmm3[3],xmm1[3]
3715 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3716 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]
3717 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,1]
3718 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3719 ; SSE-NEXT:    movaps %xmm14, %xmm0
3720 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
3721 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
3722 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3723 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3724 ; SSE-NEXT:    movaps %xmm3, %xmm0
3725 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3726 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3727 ; SSE-NEXT:    movaps 176(%rdi), %xmm11
3728 ; SSE-NEXT:    movaps %xmm11, %xmm4
3729 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3730 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm2[0],xmm4[1],xmm2[1]
3731 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3732 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3733 ; SSE-NEXT:    movaps %xmm11, %xmm0
3734 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3735 ; SSE-NEXT:    movaps %xmm1, %xmm4
3736 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3737 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[1,1],xmm2[1,1]
3738 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,2],xmm0[0,1]
3739 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3740 ; SSE-NEXT:    movaps %xmm11, %xmm0
3741 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm2[2,3]
3742 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
3743 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,0]
3744 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3745 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3746 ; SSE-NEXT:    movaps %xmm2, %xmm0
3747 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3748 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3749 ; SSE-NEXT:    movaps 192(%rdi), %xmm10
3750 ; SSE-NEXT:    movaps %xmm10, %xmm4
3751 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3752 ; SSE-NEXT:    unpcklps {{.*#+}} xmm4 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
3753 ; SSE-NEXT:    movlhps {{.*#+}} xmm4 = xmm4[0],xmm0[0]
3754 ; SSE-NEXT:    movaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3755 ; SSE-NEXT:    movaps %xmm10, %xmm0
3756 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
3757 ; SSE-NEXT:    movaps %xmm2, %xmm3
3758 ; SSE-NEXT:    unpckhps {{.*#+}} xmm3 = xmm3[2],xmm1[2],xmm3[3],xmm1[3]
3759 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3760 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]
3761 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,1]
3762 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3763 ; SSE-NEXT:    movaps %xmm10, %xmm0
3764 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
3765 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,0]
3766 ; SSE-NEXT:    movaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3767 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3768 ; SSE-NEXT:    movaps %xmm3, %xmm0
3769 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3770 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3771 ; SSE-NEXT:    movaps 208(%rdi), %xmm12
3772 ; SSE-NEXT:    movaps %xmm12, %xmm13
3773 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3774 ; SSE-NEXT:    unpcklps {{.*#+}} xmm13 = xmm13[0],xmm2[0],xmm13[1],xmm2[1]
3775 ; SSE-NEXT:    movlhps {{.*#+}} xmm13 = xmm13[0],xmm0[0]
3776 ; SSE-NEXT:    movaps %xmm12, %xmm0
3777 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm2[2],xmm0[3],xmm2[3]
3778 ; SSE-NEXT:    movaps %xmm1, %xmm9
3779 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3780 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[1,1],xmm2[1,1]
3781 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,2],xmm0[0,1]
3782 ; SSE-NEXT:    movaps %xmm12, %xmm0
3783 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm2[2,3]
3784 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
3785 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[2,0],xmm0[2,0]
3786 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3787 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm7 # 16-byte Reload
3788 ; SSE-NEXT:    movaps %xmm7, %xmm0
3789 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3790 ; SSE-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
3791 ; SSE-NEXT:    movaps 224(%rdi), %xmm4
3792 ; SSE-NEXT:    movaps %xmm4, %xmm8
3793 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3794 ; SSE-NEXT:    unpcklps {{.*#+}} xmm8 = xmm8[0],xmm3[0],xmm8[1],xmm3[1]
3795 ; SSE-NEXT:    movlhps {{.*#+}} xmm8 = xmm8[0],xmm0[0]
3796 ; SSE-NEXT:    movaps %xmm4, %xmm0
3797 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm3[2],xmm0[3],xmm3[3]
3798 ; SSE-NEXT:    unpckhps {{.*#+}} xmm7 = xmm7[2],xmm1[2],xmm7[3],xmm1[3]
3799 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3800 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm2[1,1]
3801 ; SSE-NEXT:    shufps {{.*#+}} xmm1 = xmm1[0,2],xmm0[0,1]
3802 ; SSE-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3803 ; SSE-NEXT:    movaps %xmm4, %xmm0
3804 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,0],xmm2[2,0]
3805 ; SSE-NEXT:    shufps {{.*#+}} xmm7 = xmm7[0,1],xmm0[2,0]
3806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3807 ; SSE-NEXT:    movaps %xmm2, %xmm1
3808 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
3809 ; SSE-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]
3810 ; SSE-NEXT:    movaps 240(%rdi), %xmm5
3811 ; SSE-NEXT:    movaps %xmm5, %xmm6
3812 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3813 ; SSE-NEXT:    unpcklps {{.*#+}} xmm6 = xmm6[0],xmm15[0],xmm6[1],xmm15[1]
3814 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm1[0]
3815 ; SSE-NEXT:    movaps %xmm5, %xmm0
3816 ; SSE-NEXT:    unpckhps {{.*#+}} xmm0 = xmm0[2],xmm15[2],xmm0[3],xmm15[3]
3817 ; SSE-NEXT:    movaps %xmm3, %xmm15
3818 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
3819 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[1,1],xmm1[1,1]
3820 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,2],xmm0[0,1]
3821 ; SSE-NEXT:    movaps %xmm5, %xmm0
3822 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,1],xmm1[2,3]
3823 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm2[1]
3824 ; SSE-NEXT:    movaps %xmm2, %xmm1
3825 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[2,0],xmm0[2,0]
3826 ; SSE-NEXT:    movaps %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3827 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3828 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Folded Reload
3829 ; SSE-NEXT:    # xmm2 = xmm2[1,1],mem[1,1]
3830 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3831 ; SSE-NEXT:    shufps {{.*#+}} xmm0 = xmm0[0,1],xmm2[2,0]
3832 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3833 ; SSE-NEXT:    movss {{.*#+}} xmm0 = xmm2[0],xmm0[1,2,3]
3834 ; SSE-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3835 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3836 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3837 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3838 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3839 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3840 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3841 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3842 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3843 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3844 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3845 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3846 ; SSE-NEXT:    movaps (%rsp), %xmm2 # 16-byte Reload
3847 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3848 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3849 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3850 ; SSE-NEXT:    movaps %xmm2, (%rsp) # 16-byte Spill
3851 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3852 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3853 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3854 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3855 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3856 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3857 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3858 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3859 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3860 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3861 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3862 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3863 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3864 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3865 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3866 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3867 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3868 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3869 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3870 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3871 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3872 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3873 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3874 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3875 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3876 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3877 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3878 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3879 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3880 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3881 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3882 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3883 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3884 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3885 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3886 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3887 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3888 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3889 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3890 ; SSE-NEXT:    movaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3891 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3892 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3893 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3894 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm15 # 16-byte Reload
3895 ; SSE-NEXT:    shufps {{.*#+}} xmm15 = xmm15[0,1],xmm0[2,0]
3896 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3897 ; SSE-NEXT:    movss {{.*#+}} xmm15 = xmm0[0],xmm15[1,2,3]
3898 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3899 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3900 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3901 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3902 ; SSE-NEXT:    shufps {{.*#+}} xmm2 = xmm2[0,1],xmm0[2,0]
3903 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3904 ; SSE-NEXT:    movss {{.*#+}} xmm2 = xmm0[0],xmm2[1,2,3]
3905 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3906 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3907 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3908 ; SSE-NEXT:    shufps {{.*#+}} xmm14 = xmm14[0,1],xmm0[2,0]
3909 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3910 ; SSE-NEXT:    movss {{.*#+}} xmm14 = xmm0[0],xmm14[1,2,3]
3911 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3912 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3913 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3914 ; SSE-NEXT:    shufps {{.*#+}} xmm11 = xmm11[0,1],xmm0[2,0]
3915 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3916 ; SSE-NEXT:    movss {{.*#+}} xmm11 = xmm0[0],xmm11[1,2,3]
3917 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3918 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3919 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3920 ; SSE-NEXT:    shufps {{.*#+}} xmm10 = xmm10[0,1],xmm0[2,0]
3921 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3922 ; SSE-NEXT:    movss {{.*#+}} xmm10 = xmm0[0],xmm10[1,2,3]
3923 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3924 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3925 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3926 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm0[2,0]
3927 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3928 ; SSE-NEXT:    movss {{.*#+}} xmm12 = xmm0[0],xmm12[1,2,3]
3929 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3930 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3931 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3932 ; SSE-NEXT:    shufps {{.*#+}} xmm4 = xmm4[0,1],xmm0[2,0]
3933 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3934 ; SSE-NEXT:    movss {{.*#+}} xmm4 = xmm0[0],xmm4[1,2,3]
3935 ; SSE-NEXT:    movaps %xmm1, %xmm0
3936 ; SSE-NEXT:    shufps $85, {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Folded Reload
3937 ; SSE-NEXT:    # xmm0 = xmm0[1,1],mem[1,1]
3938 ; SSE-NEXT:    shufps {{.*#+}} xmm5 = xmm5[0,1],xmm0[2,0]
3939 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3940 ; SSE-NEXT:    movss {{.*#+}} xmm5 = xmm0[0],xmm5[1,2,3]
3941 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3942 ; SSE-NEXT:    movaps %xmm0, 1248(%r9)
3943 ; SSE-NEXT:    movaps %xmm3, 1232(%r9)
3944 ; SSE-NEXT:    movaps %xmm6, 1200(%r9)
3945 ; SSE-NEXT:    movaps %xmm7, 1168(%r9)
3946 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3947 ; SSE-NEXT:    movaps %xmm0, 1152(%r9)
3948 ; SSE-NEXT:    movaps %xmm8, 1120(%r9)
3949 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3950 ; SSE-NEXT:    movaps %xmm0, 1088(%r9)
3951 ; SSE-NEXT:    movaps %xmm9, 1072(%r9)
3952 ; SSE-NEXT:    movaps %xmm13, 1040(%r9)
3953 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3954 ; SSE-NEXT:    movaps %xmm0, 1008(%r9)
3955 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3956 ; SSE-NEXT:    movaps %xmm0, 992(%r9)
3957 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3958 ; SSE-NEXT:    movaps %xmm0, 960(%r9)
3959 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3960 ; SSE-NEXT:    movaps %xmm0, 928(%r9)
3961 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3962 ; SSE-NEXT:    movaps %xmm0, 912(%r9)
3963 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3964 ; SSE-NEXT:    movaps %xmm0, 880(%r9)
3965 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3966 ; SSE-NEXT:    movaps %xmm0, 848(%r9)
3967 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3968 ; SSE-NEXT:    movaps %xmm0, 832(%r9)
3969 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3970 ; SSE-NEXT:    movaps %xmm0, 800(%r9)
3971 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3972 ; SSE-NEXT:    movaps %xmm0, 768(%r9)
3973 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3974 ; SSE-NEXT:    movaps %xmm0, 752(%r9)
3975 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3976 ; SSE-NEXT:    movaps %xmm0, 720(%r9)
3977 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3978 ; SSE-NEXT:    movaps %xmm0, 688(%r9)
3979 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3980 ; SSE-NEXT:    movaps %xmm0, 672(%r9)
3981 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3982 ; SSE-NEXT:    movaps %xmm0, 640(%r9)
3983 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3984 ; SSE-NEXT:    movaps %xmm0, 608(%r9)
3985 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3986 ; SSE-NEXT:    movaps %xmm0, 592(%r9)
3987 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3988 ; SSE-NEXT:    movaps %xmm0, 560(%r9)
3989 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3990 ; SSE-NEXT:    movaps %xmm0, 528(%r9)
3991 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3992 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
3993 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3994 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
3995 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3996 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
3997 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3998 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
3999 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4000 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
4001 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4002 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
4003 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4004 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
4005 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4006 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
4007 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4008 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
4009 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4010 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
4011 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4012 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
4013 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4014 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
4015 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4016 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
4017 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4018 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
4019 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4020 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
4021 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4022 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
4023 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4024 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
4025 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4026 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
4027 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4028 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
4029 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4030 ; SSE-NEXT:    movaps %xmm0, (%r9)
4031 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4032 ; SSE-NEXT:    movaps %xmm0, 1264(%r9)
4033 ; SSE-NEXT:    movaps %xmm5, 1216(%r9)
4034 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4035 ; SSE-NEXT:    movaps %xmm0, 1184(%r9)
4036 ; SSE-NEXT:    movaps %xmm4, 1136(%r9)
4037 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4038 ; SSE-NEXT:    movaps %xmm0, 1104(%r9)
4039 ; SSE-NEXT:    movaps %xmm12, 1056(%r9)
4040 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4041 ; SSE-NEXT:    movaps %xmm0, 1024(%r9)
4042 ; SSE-NEXT:    movaps %xmm10, 976(%r9)
4043 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4044 ; SSE-NEXT:    movaps %xmm0, 944(%r9)
4045 ; SSE-NEXT:    movaps %xmm11, 896(%r9)
4046 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4047 ; SSE-NEXT:    movaps %xmm0, 864(%r9)
4048 ; SSE-NEXT:    movaps %xmm14, 816(%r9)
4049 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4050 ; SSE-NEXT:    movaps %xmm0, 784(%r9)
4051 ; SSE-NEXT:    movaps %xmm2, 736(%r9)
4052 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4053 ; SSE-NEXT:    movaps %xmm0, 704(%r9)
4054 ; SSE-NEXT:    movaps %xmm15, 656(%r9)
4055 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4056 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
4057 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4058 ; SSE-NEXT:    movaps %xmm0, 576(%r9)
4059 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4060 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
4061 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4062 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
4063 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4064 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
4065 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4066 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
4067 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4068 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
4069 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4070 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
4071 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4072 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
4073 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4074 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
4075 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4076 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
4077 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
4078 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
4079 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4080 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
4081 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4082 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
4083 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4084 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
4085 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4086 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
4087 ; SSE-NEXT:    addq $1736, %rsp # imm = 0x6C8
4088 ; SSE-NEXT:    retq
4090 ; AVX1-ONLY-LABEL: store_i32_stride5_vf64:
4091 ; AVX1-ONLY:       # %bb.0:
4092 ; AVX1-ONLY-NEXT:    subq $1784, %rsp # imm = 0x6F8
4093 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %xmm6
4094 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %xmm14
4095 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %xmm5
4096 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %xmm15
4097 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,xmm5[1],xmm6[1],zero
4098 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = xmm5[0],xmm6[0],zero,zero
4099 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
4100 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %xmm0
4101 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4102 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %xmm11
4103 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm11[0],xmm0[0]
4104 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,2,0]
4105 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rdx), %xmm7
4106 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm4, %ymm4
4107 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3],ymm2[4,5,6],ymm4[7]
4108 ; AVX1-ONLY-NEXT:    vinsertf128 $1, (%r8), %ymm3, %ymm3
4109 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm2[1,2,3],ymm3[4],ymm2[5,6,7]
4110 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4111 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,xmm15[1],xmm14[1],zero
4112 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = xmm15[0],xmm14[0],zero,zero
4113 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm3, %ymm2
4114 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %xmm0
4115 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4116 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %xmm1
4117 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4118 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm1[0],xmm0[0]
4119 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,2,0]
4120 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rdx), %xmm7
4121 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm4, %ymm4
4122 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm4[2,3],ymm2[4,5,6],ymm4[7]
4123 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 32(%r8), %ymm3, %ymm3
4124 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm2[1,2,3],ymm3[4],ymm2[5,6,7]
4125 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4126 ; AVX1-ONLY-NEXT:    vmovaps 64(%rsi), %xmm13
4127 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %xmm10
4128 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %xmm0
4129 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4130 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %xmm1
4131 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4132 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
4133 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,0]
4134 ; AVX1-ONLY-NEXT:    vbroadcastss 68(%rdx), %xmm3
4135 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
4136 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm3 = zero,xmm10[1],xmm13[1],zero
4137 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = xmm10[0],xmm13[0],zero,zero
4138 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm4, %ymm3
4139 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5,6],ymm2[7]
4140 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 64(%r8), %ymm4, %ymm3
4141 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0],ymm2[1,2,3],ymm3[4],ymm2[5,6,7]
4142 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4143 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %xmm0
4144 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
4145 ; AVX1-ONLY-NEXT:    vmovaps 96(%rcx), %xmm1
4146 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4147 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
4148 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,0]
4149 ; AVX1-ONLY-NEXT:    vbroadcastss 100(%rdx), %xmm3
4150 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm3
4151 ; AVX1-ONLY-NEXT:    vmovaps 96(%rsi), %xmm0
4152 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4153 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %xmm7
4154 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm4 = zero,xmm7[1],xmm0[1],zero
4155 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm9 = xmm7[0],xmm0[0],zero,zero
4156 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm9, %ymm4
4157 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1],ymm3[2,3],ymm4[4,5,6],ymm3[7]
4158 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 96(%r8), %ymm9, %ymm4
4159 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0],ymm3[1,2,3],ymm4[4],ymm3[5,6,7]
4160 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4161 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdx), %xmm0
4162 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4163 ; AVX1-ONLY-NEXT:    vmovaps 128(%rcx), %xmm1
4164 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4165 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm1[0],xmm0[0]
4166 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,0]
4167 ; AVX1-ONLY-NEXT:    vbroadcastss 132(%rdx), %xmm4
4168 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm3, %ymm4
4169 ; AVX1-ONLY-NEXT:    vmovaps 128(%rsi), %xmm0
4170 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4171 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %xmm8
4172 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm9 = zero,xmm8[1],xmm0[1],zero
4173 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = xmm8[0],xmm0[0],zero,zero
4174 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm12, %ymm9
4175 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1],ymm4[2,3],ymm9[4,5,6],ymm4[7]
4176 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 128(%r8), %ymm12, %ymm9
4177 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0],ymm4[1,2,3],ymm9[4],ymm4[5,6,7]
4178 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4179 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdx), %xmm0
4180 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4181 ; AVX1-ONLY-NEXT:    vmovaps 160(%rcx), %xmm1
4182 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4183 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm1[0],xmm0[0]
4184 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,2,0]
4185 ; AVX1-ONLY-NEXT:    vbroadcastss 164(%rdx), %xmm9
4186 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm4, %ymm9
4187 ; AVX1-ONLY-NEXT:    vmovaps 160(%rsi), %xmm0
4188 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4189 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %xmm4
4190 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = zero,xmm4[1],xmm0[1],zero
4191 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = xmm4[0],xmm0[0],zero,zero
4192 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
4193 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2,3],ymm12[4,5,6],ymm9[7]
4194 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 160(%r8), %ymm0, %ymm0
4195 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm9[1,2,3],ymm0[4],ymm9[5,6,7]
4196 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4197 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdx), %xmm1
4198 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4199 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %xmm0
4200 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4201 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
4202 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,0]
4203 ; AVX1-ONLY-NEXT:    vbroadcastss 196(%rdx), %xmm9
4204 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm1
4205 ; AVX1-ONLY-NEXT:    vmovaps 192(%rsi), %xmm0
4206 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4207 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %xmm9
4208 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = zero,xmm9[1],xmm0[1],zero
4209 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm0 = xmm9[0],xmm0[0],zero,zero
4210 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm12
4211 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm12[0,1],ymm1[2,3],ymm12[4,5,6],ymm1[7]
4212 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 192(%r8), %ymm0, %ymm0
4213 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4],ymm1[5,6,7]
4214 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4215 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdx), %xmm1
4216 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4217 ; AVX1-ONLY-NEXT:    vmovaps 224(%rcx), %xmm0
4218 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4219 ; AVX1-ONLY-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]
4220 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[0,1,2,0]
4221 ; AVX1-ONLY-NEXT:    vbroadcastss 228(%rdx), %xmm1
4222 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm3
4223 ; AVX1-ONLY-NEXT:    vmovaps 224(%rsi), %xmm1
4224 ; AVX1-ONLY-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4225 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %xmm0
4226 ; AVX1-ONLY-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
4227 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,xmm0[1],xmm1[1],zero
4228 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm12 = xmm0[0],xmm1[0],zero,zero
4229 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm12, %ymm1
4230 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm3[2,3],ymm1[4,5,6],ymm3[7]
4231 ; AVX1-ONLY-NEXT:    vinsertf128 $1, 224(%r8), %ymm12, %ymm1
4232 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
4233 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4234 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4235 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm11[2],xmm0[3],xmm11[3]
4236 ; AVX1-ONLY-NEXT:    vbroadcastss 4(%rcx), %xmm1
4237 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4238 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,zero,xmm5[2],xmm6[2]
4239 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm1, %ymm1
4240 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4241 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4242 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4243 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4244 ; AVX1-ONLY-NEXT:    vmovaps 16(%rsi), %xmm0
4245 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdi), %xmm1
4246 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,zero,xmm1[2],xmm0[2]
4247 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4248 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0
4249 ; AVX1-ONLY-NEXT:    vmovaps (%rdx), %ymm11
4250 ; AVX1-ONLY-NEXT:    vmovaps (%rcx), %ymm1
4251 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4252 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,1],ymm11[1,1],ymm1[5,5],ymm11[5,5]
4253 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4254 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4255 ; AVX1-ONLY-NEXT:    vmovaps 16(%rcx), %xmm1
4256 ; AVX1-ONLY-NEXT:    vmovaps 16(%rdx), %xmm5
4257 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[3,3],xmm1[3,3]
4258 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm1[2],xmm5[3],xmm1[3]
4259 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm1, %ymm1
4260 ; AVX1-ONLY-NEXT:    vmovaps (%rdi), %ymm2
4261 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4262 ; AVX1-ONLY-NEXT:    vmovaps (%rsi), %ymm3
4263 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4264 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm3[3,3],ymm2[3,3],ymm3[7,7],ymm2[7,7]
4265 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,2,3]
4266 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4],ymm1[5,6,7]
4267 ; AVX1-ONLY-NEXT:    vmovaps (%r8), %ymm2
4268 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4269 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm2[2,3,2,3]
4270 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4],ymm5[5],ymm0[6,7]
4271 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4272 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm5[2],ymm1[3,4,5,6],ymm5[7]
4273 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4274 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4275 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4276 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4277 ; AVX1-ONLY-NEXT:    vbroadcastss 36(%rcx), %xmm1
4278 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4279 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,zero,xmm15[2],xmm14[2]
4280 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm15, %ymm1, %ymm1
4281 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4282 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4283 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4284 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4285 ; AVX1-ONLY-NEXT:    vmovaps 48(%rsi), %xmm0
4286 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdi), %xmm1
4287 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,zero,xmm1[2],xmm0[2]
4288 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4289 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0
4290 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdx), %ymm14
4291 ; AVX1-ONLY-NEXT:    vmovaps 32(%rcx), %ymm15
4292 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[1,1],ymm14[1,1],ymm15[5,5],ymm14[5,5]
4293 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4294 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4295 ; AVX1-ONLY-NEXT:    vmovaps 48(%rcx), %xmm1
4296 ; AVX1-ONLY-NEXT:    vmovaps 48(%rdx), %xmm5
4297 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[3,3],xmm1[3,3]
4298 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm1[2],xmm5[3],xmm1[3]
4299 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm1, %ymm1
4300 ; AVX1-ONLY-NEXT:    vmovaps 32(%rdi), %ymm2
4301 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4302 ; AVX1-ONLY-NEXT:    vmovaps 32(%rsi), %ymm3
4303 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4304 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm3[3,3],ymm2[3,3],ymm3[7,7],ymm2[7,7]
4305 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,2,3]
4306 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4],ymm1[5,6,7]
4307 ; AVX1-ONLY-NEXT:    vmovaps 32(%r8), %ymm2
4308 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4309 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm2[2,3,2,3]
4310 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4],ymm5[5],ymm0[6,7]
4311 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4312 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm5[2],ymm1[3,4,5,6],ymm5[7]
4313 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4314 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4315 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4316 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4317 ; AVX1-ONLY-NEXT:    vbroadcastss 68(%rcx), %xmm1
4318 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4319 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm1 = zero,zero,xmm10[2],xmm13[2]
4320 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm10, %ymm1, %ymm1
4321 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4322 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4323 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4324 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4325 ; AVX1-ONLY-NEXT:    vmovaps 80(%rsi), %xmm0
4326 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdi), %xmm1
4327 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm5 = zero,zero,xmm1[2],xmm0[2]
4328 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4329 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0
4330 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdx), %ymm13
4331 ; AVX1-ONLY-NEXT:    vmovaps 64(%rcx), %ymm1
4332 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4333 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,1],ymm13[1,1],ymm1[5,5],ymm13[5,5]
4334 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4335 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4336 ; AVX1-ONLY-NEXT:    vmovaps 80(%rcx), %xmm1
4337 ; AVX1-ONLY-NEXT:    vmovaps 80(%rdx), %xmm5
4338 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm6 = xmm5[3,3],xmm1[3,3]
4339 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm5[2],xmm1[2],xmm5[3],xmm1[3]
4340 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm6, %ymm1, %ymm1
4341 ; AVX1-ONLY-NEXT:    vmovaps 64(%rdi), %ymm2
4342 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4343 ; AVX1-ONLY-NEXT:    vmovaps 64(%rsi), %ymm3
4344 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4345 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm3[3,3],ymm2[3,3],ymm3[7,7],ymm2[7,7]
4346 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,2,3]
4347 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm5[3,4],ymm1[5,6,7]
4348 ; AVX1-ONLY-NEXT:    vmovaps 64(%r8), %ymm2
4349 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4350 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm2[2,3,2,3]
4351 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0],ymm0[1,2,3,4],ymm5[5],ymm0[6,7]
4352 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4353 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm5[2],ymm1[3,4,5,6],ymm5[7]
4354 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4355 ; AVX1-ONLY-NEXT:    vmovaps (%rsp), %xmm0 # 16-byte Reload
4356 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4357 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4358 ; AVX1-ONLY-NEXT:    vbroadcastss 100(%rcx), %xmm1
4359 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4360 ; AVX1-ONLY-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm7, %xmm1 # 16-byte Folded Reload
4361 ; AVX1-ONLY-NEXT:    # xmm1 = zero,zero,xmm7[2],mem[0]
4362 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm7, %ymm1, %ymm1
4363 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4364 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4365 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4366 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4367 ; AVX1-ONLY-NEXT:    vmovaps 112(%rsi), %xmm0
4368 ; AVX1-ONLY-NEXT:    vmovaps 112(%rdi), %xmm1
4369 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
4370 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4371 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4372 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdx), %ymm1
4373 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4374 ; AVX1-ONLY-NEXT:    vmovaps 96(%rcx), %ymm2
4375 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4376 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,1],ymm1[1,1],ymm2[5,5],ymm1[5,5]
4377 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4378 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4379 ; AVX1-ONLY-NEXT:    vmovaps 112(%rcx), %xmm1
4380 ; AVX1-ONLY-NEXT:    vmovaps 112(%rdx), %xmm2
4381 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[3,3],xmm1[3,3]
4382 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
4383 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm5, %ymm1, %ymm1
4384 ; AVX1-ONLY-NEXT:    vmovaps 96(%rdi), %ymm3
4385 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4386 ; AVX1-ONLY-NEXT:    vmovaps 96(%rsi), %ymm2
4387 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4388 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,3],ymm3[3,3],ymm2[7,7],ymm3[7,7]
4389 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4390 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4],ymm1[5,6,7]
4391 ; AVX1-ONLY-NEXT:    vmovaps 96(%r8), %ymm2
4392 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4393 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4394 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4],ymm2[5],ymm0[6,7]
4395 ; AVX1-ONLY-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
4396 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
4397 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4398 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4399 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4400 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4401 ; AVX1-ONLY-NEXT:    vbroadcastss 132(%rcx), %xmm1
4402 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4403 ; AVX1-ONLY-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm8, %xmm1 # 16-byte Folded Reload
4404 ; AVX1-ONLY-NEXT:    # xmm1 = zero,zero,xmm8[2],mem[0]
4405 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm8, %ymm1, %ymm1
4406 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4407 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4408 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4409 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4410 ; AVX1-ONLY-NEXT:    vmovaps 144(%rsi), %xmm0
4411 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdi), %xmm1
4412 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
4413 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4414 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4415 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdx), %ymm2
4416 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4417 ; AVX1-ONLY-NEXT:    vmovaps 128(%rcx), %ymm1
4418 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4419 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,1],ymm2[1,1],ymm1[5,5],ymm2[5,5]
4420 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4421 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4422 ; AVX1-ONLY-NEXT:    vmovaps 144(%rcx), %xmm1
4423 ; AVX1-ONLY-NEXT:    vmovaps 144(%rdx), %xmm2
4424 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm2[3,3],xmm1[3,3]
4425 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
4426 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
4427 ; AVX1-ONLY-NEXT:    vmovaps 128(%rdi), %ymm3
4428 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4429 ; AVX1-ONLY-NEXT:    vmovaps 128(%rsi), %ymm2
4430 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4431 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,3],ymm3[3,3],ymm2[7,7],ymm3[7,7]
4432 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4433 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4],ymm1[5,6,7]
4434 ; AVX1-ONLY-NEXT:    vmovaps 128(%r8), %ymm2
4435 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4436 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4437 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4],ymm2[5],ymm0[6,7]
4438 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4439 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
4440 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4441 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4442 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4443 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4444 ; AVX1-ONLY-NEXT:    vbroadcastss 164(%rcx), %xmm1
4445 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4446 ; AVX1-ONLY-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm1 # 16-byte Folded Reload
4447 ; AVX1-ONLY-NEXT:    # xmm1 = zero,zero,xmm4[2],mem[0]
4448 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
4449 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4450 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4451 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4452 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4453 ; AVX1-ONLY-NEXT:    vmovaps 176(%rsi), %xmm0
4454 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdi), %xmm1
4455 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
4456 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4457 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4458 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdx), %ymm2
4459 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4460 ; AVX1-ONLY-NEXT:    vmovaps 160(%rcx), %ymm1
4461 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4462 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm1[1,1],ymm2[1,1],ymm1[5,5],ymm2[5,5]
4463 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4464 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4465 ; AVX1-ONLY-NEXT:    vmovaps 176(%rcx), %xmm1
4466 ; AVX1-ONLY-NEXT:    vmovaps 176(%rdx), %xmm2
4467 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm2[3,3],xmm1[3,3]
4468 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
4469 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
4470 ; AVX1-ONLY-NEXT:    vmovaps 160(%rdi), %ymm12
4471 ; AVX1-ONLY-NEXT:    vmovaps 160(%rsi), %ymm2
4472 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4473 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm2[3,3],ymm12[3,3],ymm2[7,7],ymm12[7,7]
4474 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4475 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4],ymm1[5,6,7]
4476 ; AVX1-ONLY-NEXT:    vmovaps 160(%r8), %ymm2
4477 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4478 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4479 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4],ymm2[5],ymm0[6,7]
4480 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4481 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
4482 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4483 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4484 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4485 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4486 ; AVX1-ONLY-NEXT:    vbroadcastss 196(%rcx), %xmm1
4487 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4488 ; AVX1-ONLY-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm9, %xmm1 # 16-byte Folded Reload
4489 ; AVX1-ONLY-NEXT:    # xmm1 = zero,zero,xmm9[2],mem[0]
4490 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm9, %ymm1, %ymm1
4491 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4492 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4493 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4494 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4495 ; AVX1-ONLY-NEXT:    vmovaps 208(%rsi), %xmm0
4496 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdi), %xmm1
4497 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
4498 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4499 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4500 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdx), %ymm1
4501 ; AVX1-ONLY-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4502 ; AVX1-ONLY-NEXT:    vmovaps 192(%rcx), %ymm2
4503 ; AVX1-ONLY-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4504 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[1,1],ymm1[1,1],ymm2[5,5],ymm1[5,5]
4505 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4506 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4507 ; AVX1-ONLY-NEXT:    vmovaps 208(%rcx), %xmm1
4508 ; AVX1-ONLY-NEXT:    vmovaps 208(%rdx), %xmm2
4509 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm3 = xmm2[3,3],xmm1[3,3]
4510 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm1 = xmm2[2],xmm1[2],xmm2[3],xmm1[3]
4511 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
4512 ; AVX1-ONLY-NEXT:    vmovaps 192(%rdi), %ymm8
4513 ; AVX1-ONLY-NEXT:    vmovaps 192(%rsi), %ymm9
4514 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm9[3,3],ymm8[3,3],ymm9[7,7],ymm8[7,7]
4515 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3,2,3]
4516 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3,4],ymm1[5,6,7]
4517 ; AVX1-ONLY-NEXT:    vmovaps 192(%r8), %ymm10
4518 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm10[2,3,2,3]
4519 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm0[1,2,3,4],ymm2[5],ymm0[6,7]
4520 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4521 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm2[2],ymm1[3,4,5,6],ymm2[7]
4522 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4523 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
4524 ; AVX1-ONLY-NEXT:    vunpckhps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
4525 ; AVX1-ONLY-NEXT:    # xmm0 = xmm0[2],mem[2],xmm0[3],mem[3]
4526 ; AVX1-ONLY-NEXT:    vbroadcastss 228(%rcx), %xmm1
4527 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm0
4528 ; AVX1-ONLY-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
4529 ; AVX1-ONLY-NEXT:    vinsertps $51, {{[-0-9]+}}(%r{{[sb]}}p), %xmm2, %xmm1 # 16-byte Folded Reload
4530 ; AVX1-ONLY-NEXT:    # xmm1 = zero,zero,xmm2[2],mem[0]
4531 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4532 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4533 ; AVX1-ONLY-NEXT:    vbroadcastf128 {{.*#+}} ymm1 = mem[0,1,0,1]
4534 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4535 ; AVX1-ONLY-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4536 ; AVX1-ONLY-NEXT:    vmovaps 240(%rsi), %xmm0
4537 ; AVX1-ONLY-NEXT:    vmovaps 240(%rdi), %xmm1
4538 ; AVX1-ONLY-NEXT:    vinsertps {{.*#+}} xmm2 = zero,zero,xmm1[2],xmm0[2]
4539 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm0 = xmm1[1,1],xmm0[1,1]
4540 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4541 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdx), %ymm6
4542 ; AVX1-ONLY-NEXT:    vmovaps 224(%rcx), %ymm4
4543 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,1],ymm6[1,1],ymm4[5,5],ymm6[5,5]
4544 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3,2,3]
4545 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4546 ; AVX1-ONLY-NEXT:    vmovaps 240(%rcx), %xmm0
4547 ; AVX1-ONLY-NEXT:    vmovaps 240(%rdx), %xmm1
4548 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} xmm2 = xmm1[3,3],xmm0[3,3]
4549 ; AVX1-ONLY-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
4550 ; AVX1-ONLY-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
4551 ; AVX1-ONLY-NEXT:    vmovaps 224(%rdi), %ymm2
4552 ; AVX1-ONLY-NEXT:    vmovaps 224(%rsi), %ymm0
4553 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm0[3,3],ymm2[3,3],ymm0[7,7],ymm2[7,7]
4554 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm5 = ymm5[2,3,2,3]
4555 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1,2],ymm5[3,4],ymm1[5,6,7]
4556 ; AVX1-ONLY-NEXT:    vmovaps 224(%r8), %ymm1
4557 ; AVX1-ONLY-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm1[2,3,2,3]
4558 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm7[0],ymm3[1,2,3,4],ymm7[5],ymm3[6,7]
4559 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4560 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm7[2],ymm5[3,4,5,6],ymm7[7]
4561 ; AVX1-ONLY-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4562 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
4563 ; AVX1-ONLY-NEXT:    # ymm3 = mem[3,0,2,3,7,4,6,7]
4564 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4565 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4],ymm3[5,6,7]
4566 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4567 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,3,0,4,5,7,4]
4568 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm11[1,0,2,2]
4569 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm5[2],ymm7[3,4,5,6],ymm5[7]
4570 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1,2,3],ymm3[4,5],ymm5[6,7]
4571 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm11 # 32-byte Folded Reload
4572 ; AVX1-ONLY-NEXT:    # ymm11 = ymm3[0,1,2],mem[3],ymm3[4,5,6,7]
4573 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
4574 ; AVX1-ONLY-NEXT:    # ymm3 = mem[3,0,2,3,7,4,6,7]
4575 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4576 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4],ymm3[5,6,7]
4577 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm5 = ymm15[0,1,3,0,4,5,7,4]
4578 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm7 = ymm14[1,0,2,2]
4579 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm7[0,1],ymm5[2],ymm7[3,4,5,6],ymm5[7]
4580 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1,2,3],ymm3[4,5],ymm5[6,7]
4581 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload
4582 ; AVX1-ONLY-NEXT:    # ymm7 = ymm3[0,1,2],mem[3],ymm3[4,5,6,7]
4583 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
4584 ; AVX1-ONLY-NEXT:    # ymm3 = mem[3,0,2,3,7,4,6,7]
4585 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4586 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4],ymm3[5,6,7]
4587 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Folded Reload
4588 ; AVX1-ONLY-NEXT:    # ymm5 = mem[0,1,3,0,4,5,7,4]
4589 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm15 = ymm13[1,0,2,2]
4590 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm5 = ymm15[0,1],ymm5[2],ymm15[3,4,5,6],ymm5[7]
4591 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm5[1,2,3],ymm3[4,5],ymm5[6,7]
4592 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm5 # 32-byte Folded Reload
4593 ; AVX1-ONLY-NEXT:    # ymm5 = ymm3[0,1,2],mem[3],ymm3[4,5,6,7]
4594 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Folded Reload
4595 ; AVX1-ONLY-NEXT:    # ymm3 = mem[3,0,2,3,7,4,6,7]
4596 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4597 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4],ymm3[5,6,7]
4598 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
4599 ; AVX1-ONLY-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
4600 ; AVX1-ONLY-NEXT:    vpermilpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
4601 ; AVX1-ONLY-NEXT:    # ymm14 = mem[1,0,2,2]
4602 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4,5,6],ymm15[7]
4603 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm14[1,2,3],ymm3[4,5],ymm14[6,7]
4604 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
4605 ; AVX1-ONLY-NEXT:    # ymm3 = ymm3[0,1,2],mem[3],ymm3[4,5,6,7]
4606 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
4607 ; AVX1-ONLY-NEXT:    # ymm14 = mem[3,0,2,3,7,4,6,7]
4608 ; AVX1-ONLY-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
4609 ; AVX1-ONLY-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4],ymm14[5,6,7]
4610 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
4611 ; AVX1-ONLY-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
4612 ; AVX1-ONLY-NEXT:    vpermilpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Folded Reload
4613 ; AVX1-ONLY-NEXT:    # ymm13 = mem[1,0,2,2]
4614 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
4615 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1,2,3],ymm14[4,5],ymm13[6,7]
4616 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
4617 ; AVX1-ONLY-NEXT:    # ymm13 = ymm13[0,1,2],mem[3],ymm13[4,5,6,7]
4618 ; AVX1-ONLY-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
4619 ; AVX1-ONLY-NEXT:    # ymm14 = mem[3,0,2,3,7,4,6,7]
4620 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3],ymm12[4],ymm14[5,6,7]
4621 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
4622 ; AVX1-ONLY-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
4623 ; AVX1-ONLY-NEXT:    vpermilpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
4624 ; AVX1-ONLY-NEXT:    # ymm12 = mem[1,0,2,2]
4625 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm15[2],ymm12[3,4,5,6],ymm15[7]
4626 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm12 = ymm14[0],ymm12[1,2,3],ymm14[4,5],ymm12[6,7]
4627 ; AVX1-ONLY-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm12 # 32-byte Folded Reload
4628 ; AVX1-ONLY-NEXT:    # ymm12 = ymm12[0,1,2],mem[3],ymm12[4,5,6,7]
4629 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[3,0,2,3,7,4,6,7]
4630 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4],ymm9[5,6,7]
4631 ; AVX1-ONLY-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
4632 ; AVX1-ONLY-NEXT:    # ymm9 = mem[0,1,3,0,4,5,7,4]
4633 ; AVX1-ONLY-NEXT:    vpermilpd $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
4634 ; AVX1-ONLY-NEXT:    # ymm14 = mem[1,0,2,2]
4635 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm9 = ymm14[0,1],ymm9[2],ymm14[3,4,5,6],ymm9[7]
4636 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0],ymm9[1,2,3],ymm8[4,5],ymm9[6,7]
4637 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2],ymm10[3],ymm8[4,5,6,7]
4638 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
4639 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4],ymm0[5,6,7]
4640 ; AVX1-ONLY-NEXT:    vshufps {{.*#+}} ymm2 = ymm4[0,1,3,0,4,5,7,4]
4641 ; AVX1-ONLY-NEXT:    vshufpd {{.*#+}} ymm4 = ymm6[1,0,2,2]
4642 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm2 = ymm4[0,1],ymm2[2],ymm4[3,4,5,6],ymm2[7]
4643 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm2[1,2,3],ymm0[4,5],ymm2[6,7]
4644 ; AVX1-ONLY-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3],ymm0[4,5,6,7]
4645 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1184(%r9)
4646 ; AVX1-ONLY-NEXT:    vmovaps %ymm8, 1024(%r9)
4647 ; AVX1-ONLY-NEXT:    vmovaps %ymm12, 864(%r9)
4648 ; AVX1-ONLY-NEXT:    vmovaps %ymm13, 704(%r9)
4649 ; AVX1-ONLY-NEXT:    vmovaps %ymm3, 544(%r9)
4650 ; AVX1-ONLY-NEXT:    vmovaps %ymm5, 384(%r9)
4651 ; AVX1-ONLY-NEXT:    vmovaps %ymm7, 224(%r9)
4652 ; AVX1-ONLY-NEXT:    vmovaps %ymm11, 64(%r9)
4653 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4654 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1248(%r9)
4655 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4656 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1216(%r9)
4657 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4658 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1152(%r9)
4659 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4660 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1088(%r9)
4661 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4662 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1056(%r9)
4663 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4664 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 992(%r9)
4665 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4666 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 928(%r9)
4667 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4668 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 896(%r9)
4669 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4670 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 832(%r9)
4671 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4672 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 768(%r9)
4673 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4674 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 736(%r9)
4675 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4676 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 672(%r9)
4677 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4678 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 608(%r9)
4679 ; AVX1-ONLY-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4680 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 576(%r9)
4681 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4682 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 512(%r9)
4683 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4684 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 448(%r9)
4685 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4686 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 416(%r9)
4687 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4688 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 352(%r9)
4689 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4690 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 288(%r9)
4691 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4692 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 256(%r9)
4693 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4694 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 192(%r9)
4695 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4696 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 128(%r9)
4697 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4698 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 96(%r9)
4699 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4700 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 32(%r9)
4701 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4702 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 1120(%r9)
4703 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4704 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 960(%r9)
4705 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4706 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 800(%r9)
4707 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4708 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 640(%r9)
4709 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4710 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 480(%r9)
4711 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4712 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 320(%r9)
4713 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4714 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, 160(%r9)
4715 ; AVX1-ONLY-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4716 ; AVX1-ONLY-NEXT:    vmovaps %ymm0, (%r9)
4717 ; AVX1-ONLY-NEXT:    addq $1784, %rsp # imm = 0x6F8
4718 ; AVX1-ONLY-NEXT:    vzeroupper
4719 ; AVX1-ONLY-NEXT:    retq
4721 ; AVX2-SLOW-LABEL: store_i32_stride5_vf64:
4722 ; AVX2-SLOW:       # %bb.0:
4723 ; AVX2-SLOW-NEXT:    subq $1736, %rsp # imm = 0x6C8
4724 ; AVX2-SLOW-NEXT:    vmovaps (%r8), %ymm15
4725 ; AVX2-SLOW-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4726 ; AVX2-SLOW-NEXT:    vmovaps 32(%r8), %ymm14
4727 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4728 ; AVX2-SLOW-NEXT:    vmovaps 64(%r8), %ymm13
4729 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4730 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %xmm7
4731 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %xmm3
4732 ; AVX2-SLOW-NEXT:    vmovaps 64(%rcx), %xmm0
4733 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %xmm8
4734 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %xmm4
4735 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdx), %xmm1
4736 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
4737 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4738 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[0,0,2,1]
4739 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %xmm9
4740 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %xmm6
4741 ; AVX2-SLOW-NEXT:    vmovaps 64(%rsi), %xmm2
4742 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %xmm10
4743 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
4744 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
4745 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
4746 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6],ymm5[7]
4747 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %xmm12
4748 ; AVX2-SLOW-NEXT:    vinsertf128 $1, (%r8), %ymm11, %ymm11
4749 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0],ymm5[1,2,3],ymm11[4],ymm5[5,6,7]
4750 ; AVX2-SLOW-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4751 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %xmm5
4752 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
4753 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,2,2]
4754 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,0,2,1]
4755 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,1,2,2]
4756 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]
4757 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
4758 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,3],ymm7[4,5],ymm9[6,7]
4759 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm8 = ymm15[0,1,2,1]
4760 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5],ymm8[6],ymm7[7]
4761 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4762 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4763 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,2]
4764 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,0,2,1]
4765 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
4766 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
4767 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm9 = ymm8[0,1,1,1]
4768 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6],ymm7[7]
4769 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 32(%r8), %ymm8, %ymm8
4770 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3],ymm8[4],ymm7[5,6,7]
4771 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4772 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm12[2],xmm6[2],xmm12[3],xmm6[3]
4773 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,2,2]
4774 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,0,2,1]
4775 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,1,2,2]
4776 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3]
4777 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
4778 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm6[2,3],ymm3[4,5],ymm6[6,7]
4779 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm4 = ymm14[0,1,2,1]
4780 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5],ymm4[6],ymm3[7]
4781 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4782 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4783 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,2]
4784 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,0,2,1]
4785 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
4786 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
4787 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,1,1]
4788 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6],ymm3[7]
4789 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 64(%r8), %ymm4, %ymm4
4790 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3],ymm4[4],ymm3[5,6,7]
4791 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4792 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm5[2],xmm2[2],xmm5[3],xmm2[3]
4793 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4794 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4795 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4796 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4797 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4798 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
4799 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,1,2,1]
4800 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4801 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4802 ; AVX2-SLOW-NEXT:    vmovaps 96(%rcx), %xmm0
4803 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdx), %xmm1
4804 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4805 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4806 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4807 ; AVX2-SLOW-NEXT:    vmovaps 96(%rsi), %xmm3
4808 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %xmm4
4809 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4810 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
4811 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
4812 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
4813 ; AVX2-SLOW-NEXT:    vmovaps 96(%r8), %ymm6
4814 ; AVX2-SLOW-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4815 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 96(%r8), %ymm5, %ymm5
4816 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
4817 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4818 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
4819 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4820 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4821 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4822 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4823 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4824 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
4825 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[0,1,2,1]
4826 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4827 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4828 ; AVX2-SLOW-NEXT:    vmovaps 128(%rcx), %xmm0
4829 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdx), %xmm1
4830 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4831 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4832 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4833 ; AVX2-SLOW-NEXT:    vmovaps 128(%rsi), %xmm3
4834 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %xmm4
4835 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4836 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
4837 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
4838 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
4839 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 128(%r8), %ymm5, %ymm5
4840 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
4841 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4842 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
4843 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4844 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4845 ; AVX2-SLOW-NEXT:    vmovaps 128(%r8), %ymm3
4846 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4847 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
4848 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
4849 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4850 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4851 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[0,1,2,1]
4852 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4853 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4854 ; AVX2-SLOW-NEXT:    vmovaps 160(%rcx), %xmm0
4855 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdx), %xmm1
4856 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4857 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4858 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4859 ; AVX2-SLOW-NEXT:    vmovaps 160(%rsi), %xmm3
4860 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %xmm4
4861 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4862 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
4863 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
4864 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
4865 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 160(%r8), %ymm5, %ymm5
4866 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
4867 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4868 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
4869 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4870 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4871 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
4872 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
4873 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4874 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4875 ; AVX2-SLOW-NEXT:    vmovaps 160(%r8), %ymm1
4876 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4877 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
4878 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4879 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4880 ; AVX2-SLOW-NEXT:    vmovaps 192(%rcx), %xmm0
4881 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdx), %xmm1
4882 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4883 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4884 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4885 ; AVX2-SLOW-NEXT:    vmovaps 192(%rsi), %xmm3
4886 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %xmm4
4887 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4888 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
4889 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
4890 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
4891 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 192(%r8), %ymm5, %ymm5
4892 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
4893 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4894 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
4895 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4896 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4897 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
4898 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
4899 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4900 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4901 ; AVX2-SLOW-NEXT:    vmovaps 192(%r8), %ymm1
4902 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4903 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
4904 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4905 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4906 ; AVX2-SLOW-NEXT:    vmovaps 224(%rcx), %xmm0
4907 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdx), %xmm1
4908 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
4909 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
4910 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
4911 ; AVX2-SLOW-NEXT:    vmovaps 224(%rsi), %xmm3
4912 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdi), %xmm4
4913 ; AVX2-SLOW-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
4914 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
4915 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
4916 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
4917 ; AVX2-SLOW-NEXT:    vinsertf128 $1, 224(%r8), %ymm5, %ymm5
4918 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
4919 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4920 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
4921 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
4922 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
4923 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
4924 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
4925 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
4926 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
4927 ; AVX2-SLOW-NEXT:    vmovaps 224(%r8), %ymm1
4928 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4929 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
4930 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
4931 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4932 ; AVX2-SLOW-NEXT:    vmovaps (%rdx), %ymm15
4933 ; AVX2-SLOW-NEXT:    vmovaps (%rcx), %ymm13
4934 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm13[1,1,1,1,5,5,5,5]
4935 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, %ymm2
4936 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4937 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4],ymm15[5],ymm0[6,7]
4938 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
4939 ; AVX2-SLOW-NEXT:    vmovaps (%rdi), %ymm3
4940 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4941 ; AVX2-SLOW-NEXT:    vmovaps (%rsi), %ymm13
4942 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
4943 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4944 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
4945 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
4946 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
4947 ; AVX2-SLOW-NEXT:    vbroadcastsd 16(%r8), %ymm1
4948 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
4949 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4950 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
4951 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[2,3,2,3,6,7,6,7]
4952 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
4953 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm3[2],ymm13[3],ymm3[3],ymm13[6],ymm3[6],ymm13[7],ymm3[7]
4954 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
4955 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
4956 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4957 ; AVX2-SLOW-NEXT:    vbroadcastsd 24(%r8), %ymm1
4958 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
4959 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4960 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdx), %ymm13
4961 ; AVX2-SLOW-NEXT:    vmovaps 32(%rcx), %ymm14
4962 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
4963 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4964 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
4965 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, %ymm3
4966 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4967 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
4968 ; AVX2-SLOW-NEXT:    vmovaps 32(%rdi), %ymm2
4969 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4970 ; AVX2-SLOW-NEXT:    vmovaps 32(%rsi), %ymm13
4971 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
4972 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4973 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
4974 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
4975 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
4976 ; AVX2-SLOW-NEXT:    vbroadcastsd 48(%r8), %ymm1
4977 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
4978 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4979 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
4980 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[2,3,2,3,6,7,6,7]
4981 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
4982 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm2[2],ymm13[3],ymm2[3],ymm13[6],ymm2[6],ymm13[7],ymm2[7]
4983 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
4984 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
4985 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
4986 ; AVX2-SLOW-NEXT:    vbroadcastsd 56(%r8), %ymm1
4987 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
4988 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4989 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdx), %ymm13
4990 ; AVX2-SLOW-NEXT:    vmovaps 64(%rcx), %ymm14
4991 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
4992 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4993 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
4994 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, %ymm3
4995 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4996 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
4997 ; AVX2-SLOW-NEXT:    vmovaps 64(%rdi), %ymm2
4998 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4999 ; AVX2-SLOW-NEXT:    vmovaps 64(%rsi), %ymm13
5000 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
5001 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5002 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
5003 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5004 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5005 ; AVX2-SLOW-NEXT:    vbroadcastsd 80(%r8), %ymm1
5006 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5007 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5008 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
5009 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[2,3,2,3,6,7,6,7]
5010 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5011 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm2[2],ymm13[3],ymm2[3],ymm13[6],ymm2[6],ymm13[7],ymm2[7]
5012 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5013 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5014 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5015 ; AVX2-SLOW-NEXT:    vbroadcastsd 88(%r8), %ymm1
5016 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5017 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5018 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdx), %ymm13
5019 ; AVX2-SLOW-NEXT:    vmovaps 96(%rcx), %ymm14
5020 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
5021 ; AVX2-SLOW-NEXT:    vmovaps %ymm14, %ymm4
5022 ; AVX2-SLOW-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5023 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
5024 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5025 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5026 ; AVX2-SLOW-NEXT:    vmovaps 96(%rdi), %ymm2
5027 ; AVX2-SLOW-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5028 ; AVX2-SLOW-NEXT:    vmovaps 96(%rsi), %ymm14
5029 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[1,1,2,2,5,5,6,6]
5030 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
5031 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5032 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5033 ; AVX2-SLOW-NEXT:    vbroadcastsd 112(%r8), %ymm1
5034 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5035 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5036 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[0,2,3,3,4,6,7,7]
5037 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[2,3,2,3,6,7,6,7]
5038 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5039 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm14[2],ymm2[2],ymm14[3],ymm2[3],ymm14[6],ymm2[6],ymm14[7],ymm2[7]
5040 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5041 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5042 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5043 ; AVX2-SLOW-NEXT:    vbroadcastsd 120(%r8), %ymm1
5044 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5045 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5046 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdx), %ymm13
5047 ; AVX2-SLOW-NEXT:    vmovaps 128(%rcx), %ymm1
5048 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1,1,1,5,5,5,5]
5049 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, %ymm2
5050 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5051 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
5052 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, %ymm4
5053 ; AVX2-SLOW-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5054 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5055 ; AVX2-SLOW-NEXT:    vmovaps 128(%rdi), %ymm3
5056 ; AVX2-SLOW-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5057 ; AVX2-SLOW-NEXT:    vmovaps 128(%rsi), %ymm13
5058 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
5059 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
5060 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5061 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5062 ; AVX2-SLOW-NEXT:    vbroadcastsd 144(%r8), %ymm1
5063 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5064 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5065 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
5066 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[2,3,2,3,6,7,6,7]
5067 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5068 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm3[2],ymm13[3],ymm3[3],ymm13[6],ymm3[6],ymm13[7],ymm3[7]
5069 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5070 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5071 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5072 ; AVX2-SLOW-NEXT:    vbroadcastsd 152(%r8), %ymm1
5073 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5074 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5075 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdx), %ymm1
5076 ; AVX2-SLOW-NEXT:    vmovaps 160(%rcx), %ymm12
5077 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[1,1,1,1,5,5,5,5]
5078 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
5079 ; AVX2-SLOW-NEXT:    vmovaps %ymm1, %ymm2
5080 ; AVX2-SLOW-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5081 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5082 ; AVX2-SLOW-NEXT:    vmovaps 160(%rdi), %ymm10
5083 ; AVX2-SLOW-NEXT:    vmovaps 160(%rsi), %ymm9
5084 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,1,2,2,5,5,6,6]
5085 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm10[1,2],ymm1[3,4],ymm10[5,6],ymm1[7]
5086 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5087 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5088 ; AVX2-SLOW-NEXT:    vbroadcastsd 176(%r8), %ymm1
5089 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5090 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5091 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[0,2,3,3,4,6,7,7]
5092 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,3,2,3,6,7,6,7]
5093 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5094 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm9[2],ymm10[2],ymm9[3],ymm10[3],ymm9[6],ymm10[6],ymm9[7],ymm10[7]
5095 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5096 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5097 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5098 ; AVX2-SLOW-NEXT:    vbroadcastsd 184(%r8), %ymm1
5099 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5100 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5101 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdx), %ymm8
5102 ; AVX2-SLOW-NEXT:    vmovaps 192(%rcx), %ymm6
5103 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1,1,1,5,5,5,5]
5104 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2,3,4],ymm8[5],ymm0[6,7]
5105 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5106 ; AVX2-SLOW-NEXT:    vmovaps 192(%rdi), %ymm5
5107 ; AVX2-SLOW-NEXT:    vmovaps 192(%rsi), %ymm4
5108 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,1,2,2,5,5,6,6]
5109 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4],ymm5[5,6],ymm1[7]
5110 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5111 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5112 ; AVX2-SLOW-NEXT:    vbroadcastsd 208(%r8), %ymm1
5113 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5114 ; AVX2-SLOW-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5115 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[0,2,3,3,4,6,7,7]
5116 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[2,3,2,3,6,7,6,7]
5117 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5118 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
5119 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5120 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5121 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5122 ; AVX2-SLOW-NEXT:    vbroadcastsd 216(%r8), %ymm1
5123 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5124 ; AVX2-SLOW-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
5125 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdx), %ymm3
5126 ; AVX2-SLOW-NEXT:    vmovaps 224(%rcx), %ymm2
5127 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
5128 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]
5129 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
5130 ; AVX2-SLOW-NEXT:    vmovaps 224(%rdi), %ymm1
5131 ; AVX2-SLOW-NEXT:    vmovaps 224(%rsi), %ymm0
5132 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm11 = ymm0[1,1,2,2,5,5,6,6]
5133 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm1[1,2],ymm11[3,4],ymm1[5,6],ymm11[7]
5134 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]
5135 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4],ymm11[5,6,7]
5136 ; AVX2-SLOW-NEXT:    vbroadcastsd 240(%r8), %ymm11
5137 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0],ymm7[1,2,3,4],ymm11[5],ymm7[6,7]
5138 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5139 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm2[0,2,3,3,4,6,7,7]
5140 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm11 = ymm3[2,3,2,3,6,7,6,7]
5141 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0],ymm7[1,2],ymm11[3,4],ymm7[5,6],ymm11[7]
5142 ; AVX2-SLOW-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5143 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[3,3,3,3]
5144 ; AVX2-SLOW-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,1,3,3]
5145 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3,4],ymm7[5,6,7]
5146 ; AVX2-SLOW-NEXT:    vbroadcastsd 248(%r8), %ymm11
5147 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm11[2],ymm7[3,4,5,6],ymm11[7]
5148 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5149 ; AVX2-SLOW-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
5150 ; AVX2-SLOW-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
5151 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5152 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
5153 ; AVX2-SLOW-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
5154 ; AVX2-SLOW-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
5155 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]
5156 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
5157 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
5158 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5159 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
5160 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5161 ; AVX2-SLOW-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
5162 ; AVX2-SLOW-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
5163 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5164 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
5165 ; AVX2-SLOW-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
5166 ; AVX2-SLOW-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
5167 ; AVX2-SLOW-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5168 ; AVX2-SLOW-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
5169 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
5170 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
5171 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5172 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
5173 ; AVX2-SLOW-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5174 ; AVX2-SLOW-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
5175 ; AVX2-SLOW-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
5176 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5177 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
5178 ; AVX2-SLOW-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
5179 ; AVX2-SLOW-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
5180 ; AVX2-SLOW-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5181 ; AVX2-SLOW-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
5182 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
5183 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
5184 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm11 # 32-byte Folded Reload
5185 ; AVX2-SLOW-NEXT:    # ymm11 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
5186 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm7 = ymm14[3,0,2,3,7,4,6,7]
5187 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5188 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
5189 ; AVX2-SLOW-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5190 ; AVX2-SLOW-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
5191 ; AVX2-SLOW-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
5192 ; AVX2-SLOW-NEXT:    # ymm14 = mem[2,3,0,1,6,7,4,5]
5193 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4,5,6],ymm15[7]
5194 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm14[1,2,3],ymm7[4,5],ymm14[6,7]
5195 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
5196 ; AVX2-SLOW-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
5197 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm14 = ymm13[3,0,2,3,7,4,6,7]
5198 ; AVX2-SLOW-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
5199 ; AVX2-SLOW-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4],ymm14[5,6,7]
5200 ; AVX2-SLOW-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5201 ; AVX2-SLOW-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
5202 ; AVX2-SLOW-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Folded Reload
5203 ; AVX2-SLOW-NEXT:    # ymm13 = mem[2,3,0,1,6,7,4,5]
5204 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
5205 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1,2,3],ymm14[4,5],ymm13[6,7]
5206 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
5207 ; AVX2-SLOW-NEXT:    # ymm13 = ymm13[0,1,2],mem[3],ymm13[4,5,6,7]
5208 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[3,0,2,3,7,4,6,7]
5209 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4],ymm9[5,6,7]
5210 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[0,1,3,0,4,5,7,4]
5211 ; AVX2-SLOW-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
5212 ; AVX2-SLOW-NEXT:    # ymm12 = mem[2,3,0,1,6,7,4,5]
5213 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1],ymm10[2],ymm12[3,4,5,6],ymm10[7]
5214 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm10[1,2,3],ymm9[4,5],ymm10[6,7]
5215 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
5216 ; AVX2-SLOW-NEXT:    # ymm9 = ymm9[0,1,2],mem[3],ymm9[4,5,6,7]
5217 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0,2,3,7,4,6,7]
5218 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7]
5219 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[0,1,3,0,4,5,7,4]
5220 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[2,3,0,1,6,7,4,5]
5221 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4,5,6],ymm5[7]
5222 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1,2,3],ymm4[4,5],ymm5[6,7]
5223 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5224 ; AVX2-SLOW-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
5225 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
5226 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
5227 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,0,4,5,7,4]
5228 ; AVX2-SLOW-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[2,3,0,1,6,7,4,5]
5229 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6],ymm1[7]
5230 ; AVX2-SLOW-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
5231 ; AVX2-SLOW-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5232 ; AVX2-SLOW-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
5233 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1184(%r9)
5234 ; AVX2-SLOW-NEXT:    vmovaps %ymm4, 1024(%r9)
5235 ; AVX2-SLOW-NEXT:    vmovaps %ymm9, 864(%r9)
5236 ; AVX2-SLOW-NEXT:    vmovaps %ymm13, 704(%r9)
5237 ; AVX2-SLOW-NEXT:    vmovaps %ymm7, 544(%r9)
5238 ; AVX2-SLOW-NEXT:    vmovaps %ymm11, 384(%r9)
5239 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5240 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 224(%r9)
5241 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5242 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 64(%r9)
5243 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5244 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1248(%r9)
5245 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5246 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1216(%r9)
5247 ; AVX2-SLOW-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
5248 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1088(%r9)
5249 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5250 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1056(%r9)
5251 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5252 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 928(%r9)
5253 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5254 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 896(%r9)
5255 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5256 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 768(%r9)
5257 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5258 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 736(%r9)
5259 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5260 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 608(%r9)
5261 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5262 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 576(%r9)
5263 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5264 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 448(%r9)
5265 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5266 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 416(%r9)
5267 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5268 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 288(%r9)
5269 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5270 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 256(%r9)
5271 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5272 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 128(%r9)
5273 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5274 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 96(%r9)
5275 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5276 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1152(%r9)
5277 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5278 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 1120(%r9)
5279 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5280 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 992(%r9)
5281 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5282 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 960(%r9)
5283 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5284 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 832(%r9)
5285 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5286 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 800(%r9)
5287 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5288 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 672(%r9)
5289 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5290 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 640(%r9)
5291 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5292 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 512(%r9)
5293 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5294 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 480(%r9)
5295 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5296 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 352(%r9)
5297 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5298 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 320(%r9)
5299 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5300 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 192(%r9)
5301 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5302 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 160(%r9)
5303 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5304 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, 32(%r9)
5305 ; AVX2-SLOW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5306 ; AVX2-SLOW-NEXT:    vmovaps %ymm0, (%r9)
5307 ; AVX2-SLOW-NEXT:    addq $1736, %rsp # imm = 0x6C8
5308 ; AVX2-SLOW-NEXT:    vzeroupper
5309 ; AVX2-SLOW-NEXT:    retq
5311 ; AVX2-FAST-LABEL: store_i32_stride5_vf64:
5312 ; AVX2-FAST:       # %bb.0:
5313 ; AVX2-FAST-NEXT:    subq $1800, %rsp # imm = 0x708
5314 ; AVX2-FAST-NEXT:    vmovaps (%r8), %ymm8
5315 ; AVX2-FAST-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5316 ; AVX2-FAST-NEXT:    vmovaps 32(%r8), %ymm5
5317 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5318 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %xmm11
5319 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %xmm13
5320 ; AVX2-FAST-NEXT:    vmovaps 64(%rsi), %xmm1
5321 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5322 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %xmm14
5323 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %xmm7
5324 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %xmm6
5325 ; AVX2-FAST-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5326 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm14[2],xmm11[2],xmm14[3],xmm11[3]
5327 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm9 = <0,1,0,1,u,u,2,2>
5328 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm2
5329 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %xmm15
5330 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %xmm10
5331 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %xmm4
5332 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %xmm12
5333 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm4[1,1,2,2]
5334 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm15[2],xmm3[3]
5335 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
5336 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]
5337 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm8[0,1,2,1]
5338 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm3[1],ymm2[2,3,4,5],ymm3[6],ymm2[7]
5339 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5340 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm7[2],xmm13[2],xmm7[3],xmm13[3]
5341 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm2
5342 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm12[1,1,2,2]
5343 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm10[2],xmm3[3]
5344 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
5345 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]
5346 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm5[0,1,2,1]
5347 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm3[1],ymm2[2,3,4,5],ymm3[6],ymm2[7]
5348 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5349 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm6[2],xmm1[2],xmm6[3],xmm1[3]
5350 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm2
5351 ; AVX2-FAST-NEXT:    vmovaps 64(%rdx), %xmm8
5352 ; AVX2-FAST-NEXT:    vmovaps 64(%rcx), %xmm6
5353 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm3 = xmm6[1,1,2,2]
5354 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm8[2],xmm3[3]
5355 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
5356 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3],ymm3[4,5],ymm2[6,7]
5357 ; AVX2-FAST-NEXT:    vmovaps 64(%r8), %ymm0
5358 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5359 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,1,2,1]
5360 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0],ymm3[1],ymm2[2,3,4,5],ymm3[6],ymm2[7]
5361 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5362 ; AVX2-FAST-NEXT:    vmovaps 96(%rsi), %xmm0
5363 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5364 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %xmm1
5365 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5366 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm1[2],xmm0[2],xmm1[3],xmm0[3]
5367 ; AVX2-FAST-NEXT:    vpermps %ymm2, %ymm9, %ymm0
5368 ; AVX2-FAST-NEXT:    vmovaps 96(%rdx), %xmm1
5369 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5370 ; AVX2-FAST-NEXT:    vmovaps 96(%rcx), %xmm3
5371 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm3[1,1,2,2]
5372 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3]
5373 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,1,3]
5374 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1],ymm0[2,3],ymm5[4,5],ymm0[6,7]
5375 ; AVX2-FAST-NEXT:    vmovaps 96(%r8), %ymm0
5376 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5377 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm0[0,1,2,1]
5378 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm5[1],ymm1[2,3,4,5],ymm5[6],ymm1[7]
5379 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5380 ; AVX2-FAST-NEXT:    vmovaps 128(%rsi), %xmm1
5381 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5382 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %xmm0
5383 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5384 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
5385 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5386 ; AVX2-FAST-NEXT:    vmovaps 128(%rdx), %xmm1
5387 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5388 ; AVX2-FAST-NEXT:    vmovaps 128(%rcx), %xmm2
5389 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5390 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[1,1,2,2]
5391 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3]
5392 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,1,3]
5393 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5],ymm0[6,7]
5394 ; AVX2-FAST-NEXT:    vmovaps 128(%r8), %ymm1
5395 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5396 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm1[0,1,2,1]
5397 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4,5],ymm5[6],ymm0[7]
5398 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5399 ; AVX2-FAST-NEXT:    vmovaps 160(%rsi), %xmm1
5400 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5401 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %xmm0
5402 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5403 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
5404 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5405 ; AVX2-FAST-NEXT:    vmovaps 160(%rdx), %xmm1
5406 ; AVX2-FAST-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
5407 ; AVX2-FAST-NEXT:    vmovaps 160(%rcx), %xmm2
5408 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5409 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[1,1,2,2]
5410 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3]
5411 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,1,3]
5412 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5],ymm0[6,7]
5413 ; AVX2-FAST-NEXT:    vmovaps 160(%r8), %ymm1
5414 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5415 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm1[0,1,2,1]
5416 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4,5],ymm5[6],ymm0[7]
5417 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5418 ; AVX2-FAST-NEXT:    vmovaps 192(%rsi), %xmm1
5419 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5420 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %xmm0
5421 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5422 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
5423 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5424 ; AVX2-FAST-NEXT:    vmovaps 192(%rdx), %xmm1
5425 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5426 ; AVX2-FAST-NEXT:    vmovaps 192(%rcx), %xmm2
5427 ; AVX2-FAST-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5428 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm2[1,1,2,2]
5429 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3]
5430 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,1,3]
5431 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5],ymm0[6,7]
5432 ; AVX2-FAST-NEXT:    vmovaps 192(%r8), %ymm1
5433 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5434 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm1[0,1,2,1]
5435 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4,5],ymm5[6],ymm0[7]
5436 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5437 ; AVX2-FAST-NEXT:    vmovaps 224(%rsi), %xmm1
5438 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5439 ; AVX2-FAST-NEXT:    vmovaps 224(%rdi), %xmm0
5440 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5441 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} xmm0 = xmm0[2],xmm1[2],xmm0[3],xmm1[3]
5442 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm2
5443 ; AVX2-FAST-NEXT:    vmovaps 224(%rdx), %xmm1
5444 ; AVX2-FAST-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5445 ; AVX2-FAST-NEXT:    vmovaps 224(%rcx), %xmm0
5446 ; AVX2-FAST-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5447 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} xmm5 = xmm0[1,1,2,2]
5448 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],xmm1[2],xmm5[3]
5449 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,1,1,3]
5450 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm2[2,3],ymm5[4,5],ymm2[6,7]
5451 ; AVX2-FAST-NEXT:    vmovaps 224(%r8), %ymm1
5452 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5453 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm5 = ymm1[0,1,2,1]
5454 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4,5],ymm5[6],ymm0[7]
5455 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5456 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm15[0],xmm4[0],xmm15[1],xmm4[1]
5457 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm14[0],xmm11[0],xmm14[1],xmm11[1]
5458 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5459 ; AVX2-FAST-NEXT:    vmovaps {{.*#+}} ymm4 = [0,1,3,2,3,2,3,2]
5460 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm5
5461 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6],ymm0[7]
5462 ; AVX2-FAST-NEXT:    vinsertf128 $1, (%r8), %ymm1, %ymm1
5463 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5464 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5465 ; AVX2-FAST-NEXT:    vmovaps (%rdx), %ymm1
5466 ; AVX2-FAST-NEXT:    vmovaps (%rcx), %ymm15
5467 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[1,1,1,1,5,5,5,5]
5468 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
5469 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm11
5470 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5471 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5472 ; AVX2-FAST-NEXT:    vmovaps (%rdi), %ymm2
5473 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5474 ; AVX2-FAST-NEXT:    vmovaps (%rsi), %ymm5
5475 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,1,2,2,5,5,6,6]
5476 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5477 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
5478 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5479 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5480 ; AVX2-FAST-NEXT:    vbroadcastsd 16(%r8), %ymm1
5481 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5482 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5483 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm15[0,2,3,3,4,6,7,7]
5484 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm11[2,3,2,3,6,7,6,7]
5485 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5486 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm5[2],ymm2[2],ymm5[3],ymm2[3],ymm5[6],ymm2[6],ymm5[7],ymm2[7]
5487 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5488 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5489 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5490 ; AVX2-FAST-NEXT:    vbroadcastsd 24(%r8), %ymm1
5491 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5492 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5493 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm10[0],xmm12[0],xmm10[1],xmm12[1]
5494 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm1 = xmm7[0],xmm13[0],xmm7[1],xmm13[1]
5495 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5496 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm5
5497 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6],ymm0[7]
5498 ; AVX2-FAST-NEXT:    vinsertf128 $1, 32(%r8), %ymm1, %ymm1
5499 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5500 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5501 ; AVX2-FAST-NEXT:    vmovaps 32(%rdx), %ymm5
5502 ; AVX2-FAST-NEXT:    vmovaps 32(%rcx), %ymm1
5503 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1,1,1,5,5,5,5]
5504 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm2
5505 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5506 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm5[1],ymm0[2,3,4],ymm5[5],ymm0[6,7]
5507 ; AVX2-FAST-NEXT:    vmovaps %ymm5, %ymm10
5508 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5509 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5510 ; AVX2-FAST-NEXT:    vmovaps 32(%rdi), %ymm5
5511 ; AVX2-FAST-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5512 ; AVX2-FAST-NEXT:    vmovaps 32(%rsi), %ymm7
5513 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[1,1,2,2,5,5,6,6]
5514 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5515 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4],ymm5[5,6],ymm1[7]
5516 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5517 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5518 ; AVX2-FAST-NEXT:    vbroadcastsd 48(%r8), %ymm1
5519 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5520 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5521 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
5522 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[2,3,2,3,6,7,6,7]
5523 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5524 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm7[2],ymm5[2],ymm7[3],ymm5[3],ymm7[6],ymm5[6],ymm7[7],ymm5[7]
5525 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5526 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5527 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5528 ; AVX2-FAST-NEXT:    vbroadcastsd 56(%r8), %ymm1
5529 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5530 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5531 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm8[0],xmm6[0],xmm8[1],xmm6[1]
5532 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5533 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5534 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5535 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5536 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm5
5537 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6],ymm0[7]
5538 ; AVX2-FAST-NEXT:    vinsertf128 $1, 64(%r8), %ymm1, %ymm1
5539 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5540 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5541 ; AVX2-FAST-NEXT:    vmovaps 64(%rdx), %ymm1
5542 ; AVX2-FAST-NEXT:    vmovaps 64(%rcx), %ymm2
5543 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
5544 ; AVX2-FAST-NEXT:    vmovaps %ymm2, %ymm5
5545 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5546 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
5547 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm2
5548 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5549 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5550 ; AVX2-FAST-NEXT:    vmovaps 64(%rdi), %ymm6
5551 ; AVX2-FAST-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5552 ; AVX2-FAST-NEXT:    vmovaps 64(%rsi), %ymm7
5553 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm7[1,1,2,2,5,5,6,6]
5554 ; AVX2-FAST-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5555 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1,2],ymm1[3,4],ymm6[5,6],ymm1[7]
5556 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5557 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5558 ; AVX2-FAST-NEXT:    vbroadcastsd 80(%r8), %ymm1
5559 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5560 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5561 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm5[0,2,3,3,4,6,7,7]
5562 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,3,2,3,6,7,6,7]
5563 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5564 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm7[2],ymm6[2],ymm7[3],ymm6[3],ymm7[6],ymm6[6],ymm7[7],ymm6[7]
5565 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5566 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5567 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5568 ; AVX2-FAST-NEXT:    vbroadcastsd 88(%r8), %ymm1
5569 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5570 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5571 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5572 ; AVX2-FAST-NEXT:    vunpcklps {{.*#+}} xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
5573 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5574 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5575 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5576 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5577 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm2
5578 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
5579 ; AVX2-FAST-NEXT:    vinsertf128 $1, 96(%r8), %ymm1, %ymm1
5580 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5581 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5582 ; AVX2-FAST-NEXT:    vmovaps 96(%rdx), %ymm14
5583 ; AVX2-FAST-NEXT:    vmovaps 96(%rcx), %ymm1
5584 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1,1,1,5,5,5,5]
5585 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm2
5586 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5587 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm14[1],ymm0[2,3,4],ymm14[5],ymm0[6,7]
5588 ; AVX2-FAST-NEXT:    vmovaps %ymm14, %ymm5
5589 ; AVX2-FAST-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5590 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5591 ; AVX2-FAST-NEXT:    vmovaps 96(%rdi), %ymm3
5592 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5593 ; AVX2-FAST-NEXT:    vmovaps 96(%rsi), %ymm14
5594 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[1,1,2,2,5,5,6,6]
5595 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
5596 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5597 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5598 ; AVX2-FAST-NEXT:    vbroadcastsd 112(%r8), %ymm1
5599 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5600 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5601 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
5602 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,3,2,3,6,7,6,7]
5603 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5604 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm14[2],ymm3[2],ymm14[3],ymm3[3],ymm14[6],ymm3[6],ymm14[7],ymm3[7]
5605 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5606 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5607 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5608 ; AVX2-FAST-NEXT:    vbroadcastsd 120(%r8), %ymm1
5609 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5610 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5611 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5612 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5613 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5614 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5615 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5616 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5617 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5618 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm2
5619 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
5620 ; AVX2-FAST-NEXT:    vinsertf128 $1, 128(%r8), %ymm1, %ymm1
5621 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5622 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5623 ; AVX2-FAST-NEXT:    vmovaps 128(%rdx), %ymm13
5624 ; AVX2-FAST-NEXT:    vmovaps 128(%rcx), %ymm1
5625 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1,1,1,5,5,5,5]
5626 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm2
5627 ; AVX2-FAST-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5628 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
5629 ; AVX2-FAST-NEXT:    vmovaps %ymm13, %ymm5
5630 ; AVX2-FAST-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5631 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5632 ; AVX2-FAST-NEXT:    vmovaps 128(%rdi), %ymm3
5633 ; AVX2-FAST-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5634 ; AVX2-FAST-NEXT:    vmovaps 128(%rsi), %ymm13
5635 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
5636 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
5637 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5638 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5639 ; AVX2-FAST-NEXT:    vbroadcastsd 144(%r8), %ymm1
5640 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5641 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5642 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
5643 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[2,3,2,3,6,7,6,7]
5644 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5645 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm3[2],ymm13[3],ymm3[3],ymm13[6],ymm3[6],ymm13[7],ymm3[7]
5646 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5647 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5648 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5649 ; AVX2-FAST-NEXT:    vbroadcastsd 152(%r8), %ymm1
5650 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5651 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5652 ; AVX2-FAST-NEXT:    vmovaps (%rsp), %xmm0 # 16-byte Reload
5653 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5654 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5655 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5656 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5657 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5658 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5659 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm2
5660 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
5661 ; AVX2-FAST-NEXT:    vinsertf128 $1, 160(%r8), %ymm1, %ymm1
5662 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5663 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5664 ; AVX2-FAST-NEXT:    vmovaps 160(%rdx), %ymm1
5665 ; AVX2-FAST-NEXT:    vmovaps 160(%rcx), %ymm2
5666 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
5667 ; AVX2-FAST-NEXT:    vmovaps %ymm2, %ymm3
5668 ; AVX2-FAST-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5669 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
5670 ; AVX2-FAST-NEXT:    vmovaps %ymm1, %ymm2
5671 ; AVX2-FAST-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
5672 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5673 ; AVX2-FAST-NEXT:    vmovaps 160(%rdi), %ymm11
5674 ; AVX2-FAST-NEXT:    vmovaps 160(%rsi), %ymm10
5675 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm10[1,1,2,2,5,5,6,6]
5676 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm11[1,2],ymm1[3,4],ymm11[5,6],ymm1[7]
5677 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5678 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5679 ; AVX2-FAST-NEXT:    vbroadcastsd 176(%r8), %ymm1
5680 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5681 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5682 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm3[0,2,3,3,4,6,7,7]
5683 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,3,2,3,6,7,6,7]
5684 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5685 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm10[2],ymm11[2],ymm10[3],ymm11[3],ymm10[6],ymm11[6],ymm10[7],ymm11[7]
5686 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5687 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5688 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5689 ; AVX2-FAST-NEXT:    vbroadcastsd 184(%r8), %ymm1
5690 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5691 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5692 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5693 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5694 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5695 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5696 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5697 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5698 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5699 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm2
5700 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
5701 ; AVX2-FAST-NEXT:    vinsertf128 $1, 192(%r8), %ymm1, %ymm1
5702 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5703 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5704 ; AVX2-FAST-NEXT:    vmovaps 192(%rdx), %ymm8
5705 ; AVX2-FAST-NEXT:    vmovaps 192(%rcx), %ymm7
5706 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[1,1,1,1,5,5,5,5]
5707 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2,3,4],ymm8[5],ymm0[6,7]
5708 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
5709 ; AVX2-FAST-NEXT:    vmovaps 192(%rdi), %ymm6
5710 ; AVX2-FAST-NEXT:    vmovaps 192(%rsi), %ymm5
5711 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm5[1,1,2,2,5,5,6,6]
5712 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm6[1,2],ymm1[3,4],ymm6[5,6],ymm1[7]
5713 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
5714 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
5715 ; AVX2-FAST-NEXT:    vbroadcastsd 208(%r8), %ymm1
5716 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
5717 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5718 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm7[0,2,3,3,4,6,7,7]
5719 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[2,3,2,3,6,7,6,7]
5720 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
5721 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm5[2],ymm6[2],ymm5[3],ymm6[3],ymm5[6],ymm6[6],ymm5[7],ymm6[7]
5722 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
5723 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
5724 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
5725 ; AVX2-FAST-NEXT:    vbroadcastsd 216(%r8), %ymm1
5726 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
5727 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5728 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5729 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
5730 ; AVX2-FAST-NEXT:    # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
5731 ; AVX2-FAST-NEXT:    vpermps %ymm0, %ymm9, %ymm0
5732 ; AVX2-FAST-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
5733 ; AVX2-FAST-NEXT:    vunpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
5734 ; AVX2-FAST-NEXT:    # xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
5735 ; AVX2-FAST-NEXT:    vpermps %ymm1, %ymm4, %ymm2
5736 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3],ymm2[4,5,6],ymm0[7]
5737 ; AVX2-FAST-NEXT:    vinsertf128 $1, 224(%r8), %ymm1, %ymm1
5738 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3],ymm1[4],ymm0[5,6,7]
5739 ; AVX2-FAST-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5740 ; AVX2-FAST-NEXT:    vmovaps 224(%rdx), %ymm3
5741 ; AVX2-FAST-NEXT:    vmovaps 224(%rcx), %ymm2
5742 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
5743 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]
5744 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm0[2,2,2,2]
5745 ; AVX2-FAST-NEXT:    vmovaps 224(%rdi), %ymm1
5746 ; AVX2-FAST-NEXT:    vmovaps 224(%rsi), %ymm0
5747 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm0[1,1,2,2,5,5,6,6]
5748 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm1[1,2],ymm9[3,4],ymm1[5,6],ymm9[7]
5749 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[2,2,2,3]
5750 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0,1,2],ymm4[3,4],ymm9[5,6,7]
5751 ; AVX2-FAST-NEXT:    vbroadcastsd 240(%r8), %ymm9
5752 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0],ymm4[1,2,3,4],ymm9[5],ymm4[6,7]
5753 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5754 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm2[0,2,3,3,4,6,7,7]
5755 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm3[2,3,2,3,6,7,6,7]
5756 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm9[0],ymm4[1,2],ymm9[3,4],ymm4[5,6],ymm9[7]
5757 ; AVX2-FAST-NEXT:    vunpckhps {{.*#+}} ymm9 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
5758 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[3,3,3,3]
5759 ; AVX2-FAST-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[2,1,3,3]
5760 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2],ymm9[3,4],ymm4[5,6,7]
5761 ; AVX2-FAST-NEXT:    vbroadcastsd 248(%r8), %ymm9
5762 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1],ymm9[2],ymm4[3,4,5,6],ymm9[7]
5763 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5764 ; AVX2-FAST-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
5765 ; AVX2-FAST-NEXT:    # ymm4 = mem[3,0,2,3,7,4,6,7]
5766 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5767 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4],ymm4[5,6,7]
5768 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm9 = ymm15[0,1,3,0,4,5,7,4]
5769 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
5770 ; AVX2-FAST-NEXT:    # ymm12 = mem[2,3,0,1,6,7,4,5]
5771 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2],ymm12[3,4,5,6],ymm9[7]
5772 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm9[1,2,3],ymm4[4,5],ymm9[6,7]
5773 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5774 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
5775 ; AVX2-FAST-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5776 ; AVX2-FAST-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
5777 ; AVX2-FAST-NEXT:    # ymm4 = mem[3,0,2,3,7,4,6,7]
5778 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5779 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4],ymm4[5,6,7]
5780 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
5781 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,3,0,4,5,7,4]
5782 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
5783 ; AVX2-FAST-NEXT:    # ymm12 = mem[2,3,0,1,6,7,4,5]
5784 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2],ymm12[3,4,5,6],ymm9[7]
5785 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm9[1,2,3],ymm4[4,5],ymm9[6,7]
5786 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm12 # 32-byte Folded Reload
5787 ; AVX2-FAST-NEXT:    # ymm12 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
5788 ; AVX2-FAST-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Folded Reload
5789 ; AVX2-FAST-NEXT:    # ymm4 = mem[3,0,2,3,7,4,6,7]
5790 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5791 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4],ymm4[5,6,7]
5792 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Folded Reload
5793 ; AVX2-FAST-NEXT:    # ymm9 = mem[0,1,3,0,4,5,7,4]
5794 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5795 ; AVX2-FAST-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
5796 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1],ymm9[2],ymm15[3,4,5,6],ymm9[7]
5797 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm9[1,2,3],ymm4[4,5],ymm9[6,7]
5798 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm9 # 32-byte Folded Reload
5799 ; AVX2-FAST-NEXT:    # ymm9 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
5800 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm4 = ymm14[3,0,2,3,7,4,6,7]
5801 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5802 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2,3],mem[4],ymm4[5,6,7]
5803 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5804 ; AVX2-FAST-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
5805 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
5806 ; AVX2-FAST-NEXT:    # ymm14 = mem[2,3,0,1,6,7,4,5]
5807 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4,5,6],ymm15[7]
5808 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm14[1,2,3],ymm4[4,5],ymm14[6,7]
5809 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
5810 ; AVX2-FAST-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
5811 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm14 = ymm13[3,0,2,3,7,4,6,7]
5812 ; AVX2-FAST-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
5813 ; AVX2-FAST-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4],ymm14[5,6,7]
5814 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
5815 ; AVX2-FAST-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
5816 ; AVX2-FAST-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Folded Reload
5817 ; AVX2-FAST-NEXT:    # ymm13 = mem[2,3,0,1,6,7,4,5]
5818 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
5819 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1,2,3],ymm14[4,5],ymm13[6,7]
5820 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
5821 ; AVX2-FAST-NEXT:    # ymm13 = ymm13[0,1,2],mem[3],ymm13[4,5,6,7]
5822 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm10 = ymm10[3,0,2,3,7,4,6,7]
5823 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3],ymm11[4],ymm10[5,6,7]
5824 ; AVX2-FAST-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
5825 ; AVX2-FAST-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
5826 ; AVX2-FAST-NEXT:    vpermilps $78, (%rsp), %ymm14 # 32-byte Folded Reload
5827 ; AVX2-FAST-NEXT:    # ymm14 = mem[2,3,0,1,6,7,4,5]
5828 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm11 = ymm14[0,1],ymm11[2],ymm14[3,4,5,6],ymm11[7]
5829 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0],ymm11[1,2,3],ymm10[4,5],ymm11[6,7]
5830 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm10, %ymm10 # 32-byte Folded Reload
5831 ; AVX2-FAST-NEXT:    # ymm10 = ymm10[0,1,2],mem[3],ymm10[4,5,6,7]
5832 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm5 = ymm5[3,0,2,3,7,4,6,7]
5833 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4],ymm5[5,6,7]
5834 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm6 = ymm7[0,1,3,0,4,5,7,4]
5835 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm7 = ymm8[2,3,0,1,6,7,4,5]
5836 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2],ymm7[3,4,5,6],ymm6[7]
5837 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0],ymm6[1,2,3],ymm5[4,5],ymm6[6,7]
5838 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
5839 ; AVX2-FAST-NEXT:    # ymm5 = ymm5[0,1,2],mem[3],ymm5[4,5,6,7]
5840 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
5841 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
5842 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,0,4,5,7,4]
5843 ; AVX2-FAST-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[2,3,0,1,6,7,4,5]
5844 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6],ymm1[7]
5845 ; AVX2-FAST-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
5846 ; AVX2-FAST-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
5847 ; AVX2-FAST-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
5848 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1184(%r9)
5849 ; AVX2-FAST-NEXT:    vmovaps %ymm5, 1024(%r9)
5850 ; AVX2-FAST-NEXT:    vmovaps %ymm10, 864(%r9)
5851 ; AVX2-FAST-NEXT:    vmovaps %ymm13, 704(%r9)
5852 ; AVX2-FAST-NEXT:    vmovaps %ymm4, 544(%r9)
5853 ; AVX2-FAST-NEXT:    vmovaps %ymm9, 384(%r9)
5854 ; AVX2-FAST-NEXT:    vmovaps %ymm12, 224(%r9)
5855 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5856 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 64(%r9)
5857 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5858 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1248(%r9)
5859 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5860 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1216(%r9)
5861 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5862 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1120(%r9)
5863 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5864 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1088(%r9)
5865 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5866 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1056(%r9)
5867 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5868 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 960(%r9)
5869 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5870 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 928(%r9)
5871 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5872 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 896(%r9)
5873 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5874 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 800(%r9)
5875 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5876 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 768(%r9)
5877 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5878 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 736(%r9)
5879 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5880 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 640(%r9)
5881 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5882 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 608(%r9)
5883 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5884 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 576(%r9)
5885 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5886 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 480(%r9)
5887 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5888 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 448(%r9)
5889 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5890 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 416(%r9)
5891 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5892 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 320(%r9)
5893 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5894 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 288(%r9)
5895 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5896 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 256(%r9)
5897 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5898 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 160(%r9)
5899 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5900 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 128(%r9)
5901 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5902 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 96(%r9)
5903 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5904 ; AVX2-FAST-NEXT:    vmovaps %ymm0, (%r9)
5905 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5906 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 1152(%r9)
5907 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5908 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 992(%r9)
5909 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5910 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 832(%r9)
5911 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5912 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 672(%r9)
5913 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5914 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 512(%r9)
5915 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5916 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 352(%r9)
5917 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5918 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 192(%r9)
5919 ; AVX2-FAST-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
5920 ; AVX2-FAST-NEXT:    vmovaps %ymm0, 32(%r9)
5921 ; AVX2-FAST-NEXT:    addq $1800, %rsp # imm = 0x708
5922 ; AVX2-FAST-NEXT:    vzeroupper
5923 ; AVX2-FAST-NEXT:    retq
5925 ; AVX2-FAST-PERLANE-LABEL: store_i32_stride5_vf64:
5926 ; AVX2-FAST-PERLANE:       # %bb.0:
5927 ; AVX2-FAST-PERLANE-NEXT:    subq $1736, %rsp # imm = 0x6C8
5928 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%r8), %ymm15
5929 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5930 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%r8), %ymm14
5931 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5932 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%r8), %ymm13
5933 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5934 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %xmm7
5935 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %xmm3
5936 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rcx), %xmm0
5937 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %xmm8
5938 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %xmm4
5939 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdx), %xmm1
5940 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm8[0],xmm7[0],xmm8[1],xmm7[1]
5941 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
5942 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm5 = ymm2[0,0,2,1]
5943 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %xmm9
5944 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %xmm6
5945 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rsi), %xmm2
5946 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %xmm10
5947 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm11 = xmm10[0],xmm9[0],xmm10[1],xmm9[1]
5948 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm11 = xmm11[0,1,3,2]
5949 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm12 = ymm11[0,1,1,1]
5950 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1],ymm5[2,3],ymm12[4,5,6],ymm5[7]
5951 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %xmm12
5952 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, (%r8), %ymm11, %ymm11
5953 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0],ymm5[1,2,3],ymm11[4],ymm5[5,6,7]
5954 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5955 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %xmm5
5956 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm9 = xmm10[2],xmm9[2],xmm10[3],xmm9[3]
5957 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[0,1,2,2]
5958 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,0,2,1]
5959 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[1,1,2,2]
5960 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm7 = xmm7[0,1],xmm8[2],xmm7[3]
5961 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,1,1,3]
5962 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,3],ymm7[4,5],ymm9[6,7]
5963 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm8 = ymm15[0,1,2,1]
5964 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm8[1],ymm7[2,3,4,5],ymm8[6],ymm7[7]
5965 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5966 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm7 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
5967 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm7 = xmm7[0,1,2,2]
5968 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,0,2,1]
5969 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm8 = xmm12[0],xmm6[0],xmm12[1],xmm6[1]
5970 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm8 = xmm8[0,1,3,2]
5971 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm9 = ymm8[0,1,1,1]
5972 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm7[2,3],ymm9[4,5,6],ymm7[7]
5973 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 32(%r8), %ymm8, %ymm8
5974 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0],ymm7[1,2,3],ymm8[4],ymm7[5,6,7]
5975 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5976 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm6 = xmm12[2],xmm6[2],xmm12[3],xmm6[3]
5977 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm6 = xmm6[0,1,2,2]
5978 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,0,2,1]
5979 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[1,1,2,2]
5980 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm3 = xmm3[0,1],xmm4[2],xmm3[3]
5981 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,1,1,3]
5982 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm6[2,3],ymm3[4,5],ymm6[6,7]
5983 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm4 = ymm14[0,1,2,1]
5984 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2,3,4,5],ymm4[6],ymm3[7]
5985 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5986 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm3 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
5987 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[0,1,2,2]
5988 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,0,2,1]
5989 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm4 = xmm5[0],xmm2[0],xmm5[1],xmm2[1]
5990 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm4 = xmm4[0,1,3,2]
5991 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm4[0,1,1,1]
5992 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6],ymm3[7]
5993 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 64(%r8), %ymm4, %ymm4
5994 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0],ymm3[1,2,3],ymm4[4],ymm3[5,6,7]
5995 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
5996 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm5[2],xmm2[2],xmm5[3],xmm2[3]
5997 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
5998 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
5999 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6000 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6001 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6002 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
6003 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm13[0,1,2,1]
6004 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6005 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6006 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rcx), %xmm0
6007 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdx), %xmm1
6008 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6009 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6010 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6011 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rsi), %xmm3
6012 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %xmm4
6013 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
6014 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
6015 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
6016 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
6017 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%r8), %ymm6
6018 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6019 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 96(%r8), %ymm5, %ymm5
6020 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
6021 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6022 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
6023 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6024 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6025 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6026 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6027 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6028 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm2[2,3],ymm0[4,5],ymm2[6,7]
6029 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm6[0,1,2,1]
6030 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6031 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6032 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rcx), %xmm0
6033 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdx), %xmm1
6034 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6035 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6036 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6037 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rsi), %xmm3
6038 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %xmm4
6039 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
6040 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
6041 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
6042 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
6043 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 128(%r8), %ymm5, %ymm5
6044 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
6045 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6046 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
6047 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6048 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6049 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%r8), %ymm3
6050 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6051 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
6052 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
6053 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6054 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
6055 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm3[0,1,2,1]
6056 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6057 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6058 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rcx), %xmm0
6059 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdx), %xmm1
6060 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6061 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6062 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6063 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rsi), %xmm3
6064 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %xmm4
6065 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
6066 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
6067 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
6068 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
6069 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 160(%r8), %ymm5, %ymm5
6070 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
6071 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6072 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
6073 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6074 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6075 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
6076 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
6077 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6078 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
6079 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%r8), %ymm1
6080 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6081 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
6082 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6083 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6084 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rcx), %xmm0
6085 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdx), %xmm1
6086 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6087 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6088 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6089 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rsi), %xmm3
6090 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %xmm4
6091 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
6092 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
6093 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
6094 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
6095 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 192(%r8), %ymm5, %ymm5
6096 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
6097 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6098 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
6099 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6100 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6101 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
6102 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
6103 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6104 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
6105 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%r8), %ymm1
6106 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6107 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
6108 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6109 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6110 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rcx), %xmm0
6111 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdx), %xmm1
6112 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm2 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]
6113 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[0,1,2,2]
6114 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,0,2,1]
6115 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rsi), %xmm3
6116 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdi), %xmm4
6117 ; AVX2-FAST-PERLANE-NEXT:    vunpcklps {{.*#+}} xmm5 = xmm4[0],xmm3[0],xmm4[1],xmm3[1]
6118 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm5 = xmm5[0,1,3,2]
6119 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm6 = ymm5[0,1,1,1]
6120 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1],ymm2[2,3],ymm6[4,5,6],ymm2[7]
6121 ; AVX2-FAST-PERLANE-NEXT:    vinsertf128 $1, 224(%r8), %ymm5, %ymm5
6122 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm2 = ymm5[0],ymm2[1,2,3],ymm5[4],ymm2[5,6,7]
6123 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6124 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} xmm2 = xmm4[2],xmm3[2],xmm4[3],xmm3[3]
6125 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[1,1,2,2]
6126 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],xmm1[2],xmm0[3]
6127 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[0,1,2,2]
6128 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,0,2,1]
6129 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,1,1,3]
6130 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
6131 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%r8), %ymm1
6132 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6133 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,1,2,1]
6134 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4,5],ymm1[6],ymm0[7]
6135 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6136 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdx), %ymm15
6137 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rcx), %ymm13
6138 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm13[1,1,1,1,5,5,5,5]
6139 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, %ymm2
6140 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6141 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm15[1],ymm0[2,3,4],ymm15[5],ymm0[6,7]
6142 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6143 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rdi), %ymm3
6144 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6145 ; AVX2-FAST-PERLANE-NEXT:    vmovaps (%rsi), %ymm13
6146 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
6147 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6148 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
6149 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6150 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6151 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 16(%r8), %ymm1
6152 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6153 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6154 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
6155 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm15[2,3,2,3,6,7,6,7]
6156 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6157 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm3[2],ymm13[3],ymm3[3],ymm13[6],ymm3[6],ymm13[7],ymm3[7]
6158 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6159 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6160 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6161 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 24(%r8), %ymm1
6162 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6163 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6164 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdx), %ymm13
6165 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rcx), %ymm14
6166 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
6167 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6168 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
6169 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, %ymm3
6170 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6171 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6172 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rdi), %ymm2
6173 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6174 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 32(%rsi), %ymm13
6175 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
6176 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6177 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
6178 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6179 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6180 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 48(%r8), %ymm1
6181 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6182 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6183 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
6184 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[2,3,2,3,6,7,6,7]
6185 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6186 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm2[2],ymm13[3],ymm2[3],ymm13[6],ymm2[6],ymm13[7],ymm2[7]
6187 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6188 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6189 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6190 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 56(%r8), %ymm1
6191 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6192 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6193 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdx), %ymm13
6194 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rcx), %ymm14
6195 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
6196 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6197 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
6198 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, %ymm3
6199 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6200 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6201 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rdi), %ymm2
6202 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6203 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 64(%rsi), %ymm13
6204 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
6205 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6206 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
6207 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6208 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6209 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 80(%r8), %ymm1
6210 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6211 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6212 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[0,2,3,3,4,6,7,7]
6213 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm3[2,3,2,3,6,7,6,7]
6214 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6215 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm2[2],ymm13[3],ymm2[3],ymm13[6],ymm2[6],ymm13[7],ymm2[7]
6216 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6217 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6218 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6219 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 88(%r8), %ymm1
6220 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6221 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6222 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdx), %ymm13
6223 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rcx), %ymm14
6224 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm14[1,1,1,1,5,5,5,5]
6225 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm14, %ymm4
6226 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6227 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
6228 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6229 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6230 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rdi), %ymm2
6231 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6232 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 96(%rsi), %ymm14
6233 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm14[1,1,2,2,5,5,6,6]
6234 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm2[1,2],ymm1[3,4],ymm2[5,6],ymm1[7]
6235 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6236 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6237 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 112(%r8), %ymm1
6238 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6239 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6240 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm4[0,2,3,3,4,6,7,7]
6241 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[2,3,2,3,6,7,6,7]
6242 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6243 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm14[2],ymm2[2],ymm14[3],ymm2[3],ymm14[6],ymm2[6],ymm14[7],ymm2[7]
6244 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6245 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6246 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6247 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 120(%r8), %ymm1
6248 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6249 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6250 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdx), %ymm13
6251 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rcx), %ymm1
6252 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm1[1,1,1,1,5,5,5,5]
6253 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, %ymm2
6254 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6255 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm13[1],ymm0[2,3,4],ymm13[5],ymm0[6,7]
6256 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, %ymm4
6257 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6258 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6259 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rdi), %ymm3
6260 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6261 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 128(%rsi), %ymm13
6262 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm13[1,1,2,2,5,5,6,6]
6263 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm3[1,2],ymm1[3,4],ymm3[5,6],ymm1[7]
6264 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6265 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6266 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 144(%r8), %ymm1
6267 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6268 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6269 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[0,2,3,3,4,6,7,7]
6270 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[2,3,2,3,6,7,6,7]
6271 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6272 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm13[2],ymm3[2],ymm13[3],ymm3[3],ymm13[6],ymm3[6],ymm13[7],ymm3[7]
6273 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6274 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6275 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6276 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 152(%r8), %ymm1
6277 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6278 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6279 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdx), %ymm1
6280 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rcx), %ymm12
6281 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[1,1,1,1,5,5,5,5]
6282 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1],ymm0[2,3,4],ymm1[5],ymm0[6,7]
6283 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm1, %ymm2
6284 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6285 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6286 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rdi), %ymm10
6287 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 160(%rsi), %ymm9
6288 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm9[1,1,2,2,5,5,6,6]
6289 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm10[1,2],ymm1[3,4],ymm10[5,6],ymm1[7]
6290 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6291 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6292 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 176(%r8), %ymm1
6293 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6294 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6295 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm12[0,2,3,3,4,6,7,7]
6296 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[2,3,2,3,6,7,6,7]
6297 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6298 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm9[2],ymm10[2],ymm9[3],ymm10[3],ymm9[6],ymm10[6],ymm9[7],ymm10[7]
6299 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6300 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6301 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6302 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 184(%r8), %ymm1
6303 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6304 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6305 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdx), %ymm8
6306 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rcx), %ymm6
6307 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[1,1,1,1,5,5,5,5]
6308 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm8[1],ymm0[2,3,4],ymm8[5],ymm0[6,7]
6309 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,2,2,2]
6310 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rdi), %ymm5
6311 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 192(%rsi), %ymm4
6312 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm4[1,1,2,2,5,5,6,6]
6313 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0],ymm5[1,2],ymm1[3,4],ymm5[5,6],ymm1[7]
6314 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[2,2,2,3]
6315 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2],ymm0[3,4],ymm1[5,6,7]
6316 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 208(%r8), %ymm1
6317 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3,4],ymm1[5],ymm0[6,7]
6318 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6319 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm6[0,2,3,3,4,6,7,7]
6320 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm8[2,3,2,3,6,7,6,7]
6321 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0],ymm0[1,2],ymm1[3,4],ymm0[5,6],ymm1[7]
6322 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm1 = ymm4[2],ymm5[2],ymm4[3],ymm5[3],ymm4[6],ymm5[6],ymm4[7],ymm5[7]
6323 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[3,3,3,3]
6324 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[2,1,3,3]
6325 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3,4],ymm0[5,6,7]
6326 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 216(%r8), %ymm1
6327 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2],ymm0[3,4,5,6],ymm1[7]
6328 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
6329 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdx), %ymm3
6330 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rcx), %ymm2
6331 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm2[1,1,1,1,5,5,5,5]
6332 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm3[1],ymm0[2,3,4],ymm3[5],ymm0[6,7]
6333 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm0[2,2,2,2]
6334 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rdi), %ymm1
6335 ; AVX2-FAST-PERLANE-NEXT:    vmovaps 224(%rsi), %ymm0
6336 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm11 = ymm0[1,1,2,2,5,5,6,6]
6337 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0],ymm1[1,2],ymm11[3,4],ymm1[5,6],ymm11[7]
6338 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[2,2,2,3]
6339 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0,1,2],ymm7[3,4],ymm11[5,6,7]
6340 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 240(%r8), %ymm11
6341 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0],ymm7[1,2,3,4],ymm11[5],ymm7[6,7]
6342 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6343 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm2[0,2,3,3,4,6,7,7]
6344 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm11 = ymm3[2,3,2,3,6,7,6,7]
6345 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm11[0],ymm7[1,2],ymm11[3,4],ymm7[5,6],ymm11[7]
6346 ; AVX2-FAST-PERLANE-NEXT:    vunpckhps {{.*#+}} ymm11 = ymm0[2],ymm1[2],ymm0[3],ymm1[3],ymm0[6],ymm1[6],ymm0[7],ymm1[7]
6347 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[3,3,3,3]
6348 ; AVX2-FAST-PERLANE-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[2,1,3,3]
6349 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2],ymm11[3,4],ymm7[5,6,7]
6350 ; AVX2-FAST-PERLANE-NEXT:    vbroadcastsd 248(%r8), %ymm11
6351 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm11[2],ymm7[3,4,5,6],ymm11[7]
6352 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6353 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
6354 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
6355 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6356 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
6357 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
6358 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
6359 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm15 = ymm15[2,3,0,1,6,7,4,5]
6360 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
6361 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
6362 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6363 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
6364 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6365 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
6366 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
6367 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6368 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
6369 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
6370 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
6371 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
6372 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
6373 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
6374 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
6375 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6376 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
6377 ; AVX2-FAST-PERLANE-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6378 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $227, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Folded Reload
6379 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = mem[3,0,2,3,7,4,6,7]
6380 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6381 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
6382 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11 # 32-byte Folded Reload
6383 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = mem[0,1,3,0,4,5,7,4]
6384 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
6385 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[2,3,0,1,6,7,4,5]
6386 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1],ymm11[2],ymm15[3,4,5,6],ymm11[7]
6387 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm11[1,2,3],ymm7[4,5],ymm11[6,7]
6388 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm11 # 32-byte Folded Reload
6389 ; AVX2-FAST-PERLANE-NEXT:    # ymm11 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
6390 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm7 = ymm14[3,0,2,3,7,4,6,7]
6391 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6392 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2,3],mem[4],ymm7[5,6,7]
6393 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
6394 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
6395 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14 # 32-byte Folded Reload
6396 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = mem[2,3,0,1,6,7,4,5]
6397 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1],ymm15[2],ymm14[3,4,5,6],ymm15[7]
6398 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0],ymm14[1,2,3],ymm7[4,5],ymm14[6,7]
6399 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
6400 ; AVX2-FAST-PERLANE-NEXT:    # ymm7 = ymm7[0,1,2],mem[3],ymm7[4,5,6,7]
6401 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm14 = ymm13[3,0,2,3,7,4,6,7]
6402 ; AVX2-FAST-PERLANE-NEXT:    vblendps $16, {{[-0-9]+}}(%r{{[sb]}}p), %ymm14, %ymm14 # 32-byte Folded Reload
6403 ; AVX2-FAST-PERLANE-NEXT:    # ymm14 = ymm14[0,1,2,3],mem[4],ymm14[5,6,7]
6404 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $52, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15 # 32-byte Folded Reload
6405 ; AVX2-FAST-PERLANE-NEXT:    # ymm15 = mem[0,1,3,0,4,5,7,4]
6406 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Folded Reload
6407 ; AVX2-FAST-PERLANE-NEXT:    # ymm13 = mem[2,3,0,1,6,7,4,5]
6408 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1],ymm15[2],ymm13[3,4,5,6],ymm15[7]
6409 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0],ymm13[1,2,3],ymm14[4,5],ymm13[6,7]
6410 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm13 # 32-byte Folded Reload
6411 ; AVX2-FAST-PERLANE-NEXT:    # ymm13 = ymm13[0,1,2],mem[3],ymm13[4,5,6,7]
6412 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm9 = ymm9[3,0,2,3,7,4,6,7]
6413 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4],ymm9[5,6,7]
6414 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm10 = ymm12[0,1,3,0,4,5,7,4]
6415 ; AVX2-FAST-PERLANE-NEXT:    vpermilps $78, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Folded Reload
6416 ; AVX2-FAST-PERLANE-NEXT:    # ymm12 = mem[2,3,0,1,6,7,4,5]
6417 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm10 = ymm12[0,1],ymm10[2],ymm12[3,4,5,6],ymm10[7]
6418 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0],ymm10[1,2,3],ymm9[4,5],ymm10[6,7]
6419 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm9 # 32-byte Folded Reload
6420 ; AVX2-FAST-PERLANE-NEXT:    # ymm9 = ymm9[0,1,2],mem[3],ymm9[4,5,6,7]
6421 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm4 = ymm4[3,0,2,3,7,4,6,7]
6422 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4],ymm4[5,6,7]
6423 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm5 = ymm6[0,1,3,0,4,5,7,4]
6424 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm6 = ymm8[2,3,0,1,6,7,4,5]
6425 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2],ymm6[3,4,5,6],ymm5[7]
6426 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0],ymm5[1,2,3],ymm4[4,5],ymm5[6,7]
6427 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
6428 ; AVX2-FAST-PERLANE-NEXT:    # ymm4 = ymm4[0,1,2],mem[3],ymm4[4,5,6,7]
6429 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm0 = ymm0[3,0,2,3,7,4,6,7]
6430 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4],ymm0[5,6,7]
6431 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm1 = ymm2[0,1,3,0,4,5,7,4]
6432 ; AVX2-FAST-PERLANE-NEXT:    vshufps {{.*#+}} ymm2 = ymm3[2,3,0,1,6,7,4,5]
6433 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2],ymm2[3,4,5,6],ymm1[7]
6434 ; AVX2-FAST-PERLANE-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0],ymm1[1,2,3],ymm0[4,5],ymm1[6,7]
6435 ; AVX2-FAST-PERLANE-NEXT:    vblendps $8, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
6436 ; AVX2-FAST-PERLANE-NEXT:    # ymm0 = ymm0[0,1,2],mem[3],ymm0[4,5,6,7]
6437 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1184(%r9)
6438 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm4, 1024(%r9)
6439 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm9, 864(%r9)
6440 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm13, 704(%r9)
6441 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm7, 544(%r9)
6442 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm11, 384(%r9)
6443 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6444 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 224(%r9)
6445 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6446 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 64(%r9)
6447 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6448 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1248(%r9)
6449 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6450 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1216(%r9)
6451 ; AVX2-FAST-PERLANE-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
6452 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1088(%r9)
6453 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6454 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1056(%r9)
6455 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6456 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 928(%r9)
6457 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6458 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 896(%r9)
6459 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6460 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 768(%r9)
6461 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6462 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 736(%r9)
6463 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6464 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 608(%r9)
6465 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6466 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 576(%r9)
6467 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6468 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 448(%r9)
6469 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6470 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 416(%r9)
6471 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6472 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 288(%r9)
6473 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6474 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 256(%r9)
6475 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6476 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 128(%r9)
6477 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6478 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 96(%r9)
6479 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6480 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1152(%r9)
6481 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6482 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 1120(%r9)
6483 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6484 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 992(%r9)
6485 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6486 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 960(%r9)
6487 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6488 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 832(%r9)
6489 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6490 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 800(%r9)
6491 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6492 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 672(%r9)
6493 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6494 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 640(%r9)
6495 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6496 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 512(%r9)
6497 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6498 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 480(%r9)
6499 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6500 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 352(%r9)
6501 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6502 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 320(%r9)
6503 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6504 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 192(%r9)
6505 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6506 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 160(%r9)
6507 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6508 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, 32(%r9)
6509 ; AVX2-FAST-PERLANE-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6510 ; AVX2-FAST-PERLANE-NEXT:    vmovaps %ymm0, (%r9)
6511 ; AVX2-FAST-PERLANE-NEXT:    addq $1736, %rsp # imm = 0x6C8
6512 ; AVX2-FAST-PERLANE-NEXT:    vzeroupper
6513 ; AVX2-FAST-PERLANE-NEXT:    retq
6515 ; AVX512F-LABEL: store_i32_stride5_vf64:
6516 ; AVX512F:       # %bb.0:
6517 ; AVX512F-NEXT:    subq $712, %rsp # imm = 0x2C8
6518 ; AVX512F-NEXT:    vmovdqa64 128(%rdi), %zmm19
6519 ; AVX512F-NEXT:    vmovdqa64 192(%rdi), %zmm23
6520 ; AVX512F-NEXT:    vmovdqa64 192(%rsi), %zmm18
6521 ; AVX512F-NEXT:    vmovdqa64 (%rdx), %zmm1
6522 ; AVX512F-NEXT:    vmovdqa64 64(%rdx), %zmm3
6523 ; AVX512F-NEXT:    vmovdqa64 128(%rdx), %zmm29
6524 ; AVX512F-NEXT:    vmovdqa64 192(%rdx), %zmm15
6525 ; AVX512F-NEXT:    vmovdqa64 (%rcx), %zmm21
6526 ; AVX512F-NEXT:    vmovdqa64 64(%rcx), %zmm25
6527 ; AVX512F-NEXT:    vmovdqa64 128(%rcx), %zmm24
6528 ; AVX512F-NEXT:    vmovdqa64 192(%rcx), %zmm0
6529 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
6530 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6531 ; AVX512F-NEXT:    vmovdqa64 %zmm1, %zmm2
6532 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm28, %zmm2
6533 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6534 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
6535 ; AVX512F-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
6536 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
6537 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6538 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm4
6539 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm4
6540 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6541 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm4
6542 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
6543 ; AVX512F-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
6544 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm2
6545 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm17, %zmm2
6546 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6547 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
6548 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6549 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm5
6550 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm2, %zmm5
6551 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6552 ; AVX512F-NEXT:    vmovdqa64 %zmm2, %zmm5
6553 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
6554 ; AVX512F-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
6555 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm31
6556 ; AVX512F-NEXT:    vpermt2d %zmm15, %zmm14, %zmm31
6557 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
6558 ; AVX512F-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
6559 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm22
6560 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm13, %zmm22
6561 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
6562 ; AVX512F-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
6563 ; AVX512F-NEXT:    vmovdqa64 %zmm15, %zmm2
6564 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm30, %zmm2
6565 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6566 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm28, %zmm15
6567 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm0
6568 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm4, %zmm0
6569 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6570 ; AVX512F-NEXT:    vmovdqa64 %zmm24, %zmm20
6571 ; AVX512F-NEXT:    vpermt2d %zmm29, %zmm14, %zmm20
6572 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm27
6573 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm13, %zmm27
6574 ; AVX512F-NEXT:    vmovdqa64 %zmm29, %zmm0
6575 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm30, %zmm0
6576 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6577 ; AVX512F-NEXT:    vpermt2d %zmm24, %zmm28, %zmm29
6578 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm0
6579 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm24
6580 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm14, %zmm24
6581 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm26
6582 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm2
6583 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm28, %zmm3
6584 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6585 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
6586 ; AVX512F-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6587 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm4, %zmm0
6588 ; AVX512F-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6589 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm13, %zmm26
6590 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm30, %zmm2
6591 ; AVX512F-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6592 ; AVX512F-NEXT:    vmovdqa64 %zmm23, %zmm16
6593 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm28, %zmm16
6594 ; AVX512F-NEXT:    vpermi2d %zmm21, %zmm1, %zmm4
6595 ; AVX512F-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6596 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm21, %zmm14
6597 ; AVX512F-NEXT:    vpermi2d %zmm21, %zmm1, %zmm13
6598 ; AVX512F-NEXT:    vpermt2d %zmm21, %zmm30, %zmm1
6599 ; AVX512F-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
6600 ; AVX512F-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
6601 ; AVX512F-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6602 ; AVX512F-NEXT:    vmovdqa64 %zmm18, %zmm21
6603 ; AVX512F-NEXT:    vpermt2d %zmm23, %zmm2, %zmm21
6604 ; AVX512F-NEXT:    vpermt2d %zmm18, %zmm7, %zmm23
6605 ; AVX512F-NEXT:    vmovdqa64 128(%rsi), %zmm0
6606 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm18
6607 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm17, %zmm18
6608 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm11
6609 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
6610 ; AVX512F-NEXT:    vmovdqa64 %zmm19, %zmm12
6611 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm28, %zmm12
6612 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm30
6613 ; AVX512F-NEXT:    vpermt2d %zmm19, %zmm2, %zmm30
6614 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
6615 ; AVX512F-NEXT:    vmovdqa64 (%rdi), %zmm25
6616 ; AVX512F-NEXT:    vmovdqa64 (%rsi), %zmm1
6617 ; AVX512F-NEXT:    vmovdqa64 %zmm25, %zmm8
6618 ; AVX512F-NEXT:    vpermt2d %zmm1, %zmm7, %zmm8
6619 ; AVX512F-NEXT:    vmovdqa64 64(%rdi), %zmm0
6620 ; AVX512F-NEXT:    vmovdqa64 64(%rsi), %zmm3
6621 ; AVX512F-NEXT:    vmovdqa64 %zmm3, %zmm4
6622 ; AVX512F-NEXT:    vpermt2d %zmm0, %zmm2, %zmm4
6623 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm6
6624 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm10
6625 ; AVX512F-NEXT:    vmovdqa64 %zmm0, %zmm9
6626 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm7, %zmm0
6627 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm17, %zmm6
6628 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm5, %zmm10
6629 ; AVX512F-NEXT:    vpermt2d %zmm3, %zmm28, %zmm9
6630 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm25, %zmm17
6631 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm25, %zmm5
6632 ; AVX512F-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6633 ; AVX512F-NEXT:    vpermi2d %zmm1, %zmm25, %zmm28
6634 ; AVX512F-NEXT:    vpermt2d %zmm25, %zmm2, %zmm1
6635 ; AVX512F-NEXT:    movw $12684, %ax # imm = 0x318C
6636 ; AVX512F-NEXT:    kmovw %eax, %k1
6637 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6638 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm8 {%k1}
6639 ; AVX512F-NEXT:    movw $25368, %ax # imm = 0x6318
6640 ; AVX512F-NEXT:    kmovw %eax, %k2
6641 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6642 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6643 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm3 {%k2}
6644 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6645 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm31 {%k1}
6646 ; AVX512F-NEXT:    vmovdqa32 %zmm16, %zmm22 {%k2}
6647 ; AVX512F-NEXT:    movw $6342, %ax # imm = 0x18C6
6648 ; AVX512F-NEXT:    kmovw %eax, %k3
6649 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6650 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm21 {%k3}
6651 ; AVX512F-NEXT:    vmovdqa32 %zmm15, %zmm23 {%k1}
6652 ; AVX512F-NEXT:    vmovdqa64 192(%r8), %zmm2
6653 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
6654 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm5, %zmm3
6655 ; AVX512F-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6656 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm15 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
6657 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm15, %zmm31
6658 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm16 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
6659 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm16, %zmm22
6660 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm25 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
6661 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm25, %zmm21
6662 ; AVX512F-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
6663 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm3, %zmm23
6664 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6665 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm18 {%k2}
6666 ; AVX512F-NEXT:    vmovdqa32 %zmm11, %zmm20 {%k1}
6667 ; AVX512F-NEXT:    vmovdqa32 %zmm12, %zmm27 {%k2}
6668 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6669 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm30 {%k3}
6670 ; AVX512F-NEXT:    vmovdqa32 %zmm29, %zmm19 {%k1}
6671 ; AVX512F-NEXT:    vmovdqa64 128(%r8), %zmm2
6672 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm5, %zmm18
6673 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm15, %zmm20
6674 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm16, %zmm27
6675 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm25, %zmm30
6676 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm3, %zmm19
6677 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6678 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm6 {%k2}
6679 ; AVX512F-NEXT:    vmovdqa32 %zmm10, %zmm24 {%k1}
6680 ; AVX512F-NEXT:    vmovdqa32 %zmm9, %zmm26 {%k2}
6681 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6682 ; AVX512F-NEXT:    vmovdqa32 %zmm2, %zmm4 {%k3}
6683 ; AVX512F-NEXT:    vmovdqa64 (%r8), %zmm2
6684 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
6685 ; AVX512F-NEXT:    vmovdqa32 %zmm7, %zmm0 {%k1}
6686 ; AVX512F-NEXT:    vmovdqa64 64(%r8), %zmm7
6687 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm3, %zmm8
6688 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm3, %zmm0
6689 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm5, %zmm6
6690 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm15, %zmm24
6691 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm16, %zmm26
6692 ; AVX512F-NEXT:    vpermt2d %zmm7, %zmm25, %zmm4
6693 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6694 ; AVX512F-NEXT:    vmovdqa32 %zmm3, %zmm17 {%k2}
6695 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm5, %zmm17
6696 ; AVX512F-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6697 ; AVX512F-NEXT:    vmovdqa32 %zmm3, %zmm14 {%k1}
6698 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm15, %zmm14
6699 ; AVX512F-NEXT:    vmovdqa32 %zmm28, %zmm13 {%k2}
6700 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm16, %zmm13
6701 ; AVX512F-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
6702 ; AVX512F-NEXT:    vmovdqa32 %zmm3, %zmm1 {%k3}
6703 ; AVX512F-NEXT:    vpermt2d %zmm2, %zmm25, %zmm1
6704 ; AVX512F-NEXT:    vmovdqa64 %zmm1, 64(%r9)
6705 ; AVX512F-NEXT:    vmovdqa64 %zmm13, 128(%r9)
6706 ; AVX512F-NEXT:    vmovdqa64 %zmm14, 192(%r9)
6707 ; AVX512F-NEXT:    vmovdqa64 %zmm17, 256(%r9)
6708 ; AVX512F-NEXT:    vmovdqa64 %zmm0, 320(%r9)
6709 ; AVX512F-NEXT:    vmovdqa64 %zmm4, 384(%r9)
6710 ; AVX512F-NEXT:    vmovdqa64 %zmm26, 448(%r9)
6711 ; AVX512F-NEXT:    vmovdqa64 %zmm24, 512(%r9)
6712 ; AVX512F-NEXT:    vmovdqa64 %zmm6, 576(%r9)
6713 ; AVX512F-NEXT:    vmovdqa64 %zmm19, 640(%r9)
6714 ; AVX512F-NEXT:    vmovdqa64 %zmm30, 704(%r9)
6715 ; AVX512F-NEXT:    vmovdqa64 %zmm27, 768(%r9)
6716 ; AVX512F-NEXT:    vmovdqa64 %zmm20, 832(%r9)
6717 ; AVX512F-NEXT:    vmovdqa64 %zmm18, 896(%r9)
6718 ; AVX512F-NEXT:    vmovdqa64 %zmm23, 960(%r9)
6719 ; AVX512F-NEXT:    vmovdqa64 %zmm21, 1024(%r9)
6720 ; AVX512F-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
6721 ; AVX512F-NEXT:    vmovdqa64 %zmm31, 1152(%r9)
6722 ; AVX512F-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6723 ; AVX512F-NEXT:    vmovaps %zmm0, 1216(%r9)
6724 ; AVX512F-NEXT:    vmovdqa64 %zmm8, (%r9)
6725 ; AVX512F-NEXT:    addq $712, %rsp # imm = 0x2C8
6726 ; AVX512F-NEXT:    vzeroupper
6727 ; AVX512F-NEXT:    retq
6729 ; AVX512BW-LABEL: store_i32_stride5_vf64:
6730 ; AVX512BW:       # %bb.0:
6731 ; AVX512BW-NEXT:    subq $712, %rsp # imm = 0x2C8
6732 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm19
6733 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm23
6734 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm18
6735 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm1
6736 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm3
6737 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm29
6738 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm15
6739 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm21
6740 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm25
6741 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm24
6742 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
6743 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [17,0,0,16,2,18,0,1,17,0,0,16,2,18,0,1]
6744 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6745 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
6746 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm28, %zmm2
6747 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6748 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [0,16,2,18,0,1,17,3,0,16,2,18,0,1,17,3]
6749 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
6750 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [14,30,0,13,29,15,31,0,14,30,0,13,29,15,31,0]
6751 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6752 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm4
6753 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm4
6754 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6755 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
6756 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [0,13,29,15,31,0,14,30,0,13,29,15,31,0,14,30]
6757 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
6758 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm2
6759 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm17, %zmm2
6760 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6761 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [27,0,10,26,12,28,0,11,27,0,10,26,12,28,0,11]
6762 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6763 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm5
6764 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm2, %zmm5
6765 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6766 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm5
6767 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [9,27,11,0,26,10,28,12,9,27,11,0,26,10,28,12]
6768 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
6769 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31
6770 ; AVX512BW-NEXT:    vpermt2d %zmm15, %zmm14, %zmm31
6771 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [6,22,8,24,0,7,23,9,6,22,8,24,0,7,23,9]
6772 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
6773 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm22
6774 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm13, %zmm22
6775 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,3,19,5,21,0,4,20,0,3,19,5,21,0,4,20]
6776 ; AVX512BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
6777 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm2
6778 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm30, %zmm2
6779 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6780 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm28, %zmm15
6781 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm0
6782 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm4, %zmm0
6783 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6784 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm20
6785 ; AVX512BW-NEXT:    vpermt2d %zmm29, %zmm14, %zmm20
6786 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm27
6787 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm13, %zmm27
6788 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm0
6789 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm30, %zmm0
6790 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6791 ; AVX512BW-NEXT:    vpermt2d %zmm24, %zmm28, %zmm29
6792 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm0
6793 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm24
6794 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm14, %zmm24
6795 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm26
6796 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
6797 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm28, %zmm3
6798 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6799 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [8,24,0,7,23,9,25,0,8,24,0,7,23,9,25,0]
6800 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
6801 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm4, %zmm0
6802 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6803 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm13, %zmm26
6804 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm30, %zmm2
6805 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6806 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm16
6807 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm28, %zmm16
6808 ; AVX512BW-NEXT:    vpermi2d %zmm21, %zmm1, %zmm4
6809 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6810 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm21, %zmm14
6811 ; AVX512BW-NEXT:    vpermi2d %zmm21, %zmm1, %zmm13
6812 ; AVX512BW-NEXT:    vpermt2d %zmm21, %zmm30, %zmm1
6813 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
6814 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,21,5,0,20,4,22,6,3,21,5,0,20,4,22,6]
6815 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
6816 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm21
6817 ; AVX512BW-NEXT:    vpermt2d %zmm23, %zmm2, %zmm21
6818 ; AVX512BW-NEXT:    vpermt2d %zmm18, %zmm7, %zmm23
6819 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
6820 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm18
6821 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm17, %zmm18
6822 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm11
6823 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm5, %zmm11
6824 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm12
6825 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm28, %zmm12
6826 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm30
6827 ; AVX512BW-NEXT:    vpermt2d %zmm19, %zmm2, %zmm30
6828 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm7, %zmm19
6829 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm25
6830 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
6831 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm8
6832 ; AVX512BW-NEXT:    vpermt2d %zmm1, %zmm7, %zmm8
6833 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
6834 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm3
6835 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm4
6836 ; AVX512BW-NEXT:    vpermt2d %zmm0, %zmm2, %zmm4
6837 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6
6838 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10
6839 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9
6840 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm7, %zmm0
6841 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm17, %zmm6
6842 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm5, %zmm10
6843 ; AVX512BW-NEXT:    vpermt2d %zmm3, %zmm28, %zmm9
6844 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm25, %zmm17
6845 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm25, %zmm5
6846 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6847 ; AVX512BW-NEXT:    vpermi2d %zmm1, %zmm25, %zmm28
6848 ; AVX512BW-NEXT:    vpermt2d %zmm25, %zmm2, %zmm1
6849 ; AVX512BW-NEXT:    movw $12684, %ax # imm = 0x318C
6850 ; AVX512BW-NEXT:    kmovd %eax, %k1
6851 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6852 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm8 {%k1}
6853 ; AVX512BW-NEXT:    movw $25368, %ax # imm = 0x6318
6854 ; AVX512BW-NEXT:    kmovd %eax, %k2
6855 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6856 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6857 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm3 {%k2}
6858 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6859 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm31 {%k1}
6860 ; AVX512BW-NEXT:    vmovdqa32 %zmm16, %zmm22 {%k2}
6861 ; AVX512BW-NEXT:    movw $6342, %ax # imm = 0x18C6
6862 ; AVX512BW-NEXT:    kmovd %eax, %k3
6863 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6864 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm21 {%k3}
6865 ; AVX512BW-NEXT:    vmovdqa32 %zmm15, %zmm23 {%k1}
6866 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm2
6867 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm5 = [28,1,2,3,4,29,6,7,8,9,30,11,12,13,14,31]
6868 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm5, %zmm3
6869 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6870 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm15 = [0,25,2,3,4,5,26,7,8,9,10,27,12,13,14,15]
6871 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm15, %zmm31
6872 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm16 = [0,1,22,3,4,5,6,23,8,9,10,11,24,13,14,15]
6873 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm16, %zmm22
6874 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm25 = [0,1,2,19,4,5,6,7,20,9,10,11,12,21,14,15]
6875 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm25, %zmm21
6876 ; AVX512BW-NEXT:    vmovdqa64 {{.*#+}} zmm3 = [0,1,2,3,16,5,6,7,8,17,10,11,12,13,18,15]
6877 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm3, %zmm23
6878 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6879 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm18 {%k2}
6880 ; AVX512BW-NEXT:    vmovdqa32 %zmm11, %zmm20 {%k1}
6881 ; AVX512BW-NEXT:    vmovdqa32 %zmm12, %zmm27 {%k2}
6882 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6883 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm30 {%k3}
6884 ; AVX512BW-NEXT:    vmovdqa32 %zmm29, %zmm19 {%k1}
6885 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm2
6886 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm5, %zmm18
6887 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm15, %zmm20
6888 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm16, %zmm27
6889 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm25, %zmm30
6890 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm3, %zmm19
6891 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6892 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm6 {%k2}
6893 ; AVX512BW-NEXT:    vmovdqa32 %zmm10, %zmm24 {%k1}
6894 ; AVX512BW-NEXT:    vmovdqa32 %zmm9, %zmm26 {%k2}
6895 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
6896 ; AVX512BW-NEXT:    vmovdqa32 %zmm2, %zmm4 {%k3}
6897 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm2
6898 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
6899 ; AVX512BW-NEXT:    vmovdqa32 %zmm7, %zmm0 {%k1}
6900 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm7
6901 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm3, %zmm8
6902 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm3, %zmm0
6903 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm5, %zmm6
6904 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm15, %zmm24
6905 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm16, %zmm26
6906 ; AVX512BW-NEXT:    vpermt2d %zmm7, %zmm25, %zmm4
6907 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6908 ; AVX512BW-NEXT:    vmovdqa32 %zmm3, %zmm17 {%k2}
6909 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm5, %zmm17
6910 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6911 ; AVX512BW-NEXT:    vmovdqa32 %zmm3, %zmm14 {%k1}
6912 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm15, %zmm14
6913 ; AVX512BW-NEXT:    vmovdqa32 %zmm28, %zmm13 {%k2}
6914 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm16, %zmm13
6915 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm3 # 64-byte Reload
6916 ; AVX512BW-NEXT:    vmovdqa32 %zmm3, %zmm1 {%k3}
6917 ; AVX512BW-NEXT:    vpermt2d %zmm2, %zmm25, %zmm1
6918 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%r9)
6919 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 128(%r9)
6920 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 192(%r9)
6921 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 256(%r9)
6922 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 320(%r9)
6923 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 384(%r9)
6924 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 448(%r9)
6925 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 512(%r9)
6926 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 576(%r9)
6927 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 640(%r9)
6928 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 704(%r9)
6929 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 768(%r9)
6930 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 832(%r9)
6931 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 896(%r9)
6932 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 960(%r9)
6933 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 1024(%r9)
6934 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
6935 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1152(%r9)
6936 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6937 ; AVX512BW-NEXT:    vmovaps %zmm0, 1216(%r9)
6938 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%r9)
6939 ; AVX512BW-NEXT:    addq $712, %rsp # imm = 0x2C8
6940 ; AVX512BW-NEXT:    vzeroupper
6941 ; AVX512BW-NEXT:    retq
6942   %in.vec0 = load <64 x i32>, ptr %in.vecptr0, align 64
6943   %in.vec1 = load <64 x i32>, ptr %in.vecptr1, align 64
6944   %in.vec2 = load <64 x i32>, ptr %in.vecptr2, align 64
6945   %in.vec3 = load <64 x i32>, ptr %in.vecptr3, align 64
6946   %in.vec4 = load <64 x i32>, ptr %in.vecptr4, align 64
6947   %1 = shufflevector <64 x i32> %in.vec0, <64 x i32> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
6948   %2 = shufflevector <64 x i32> %in.vec2, <64 x i32> %in.vec3, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
6949   %3 = shufflevector <128 x i32> %1, <128 x i32> %2, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
6950   %4 = shufflevector <64 x i32> %in.vec4, <64 x i32> poison, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
6951   %5 = shufflevector <256 x i32> %3, <256 x i32> %4, <320 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 256, i32 257, i32 258, i32 259, i32 260, i32 261, i32 262, i32 263, i32 264, i32 265, i32 266, i32 267, i32 268, i32 269, i32 270, i32 271, i32 272, i32 273, i32 274, i32 275, i32 276, i32 277, i32 278, i32 279, i32 280, i32 281, i32 282, i32 283, i32 284, i32 285, i32 286, i32 287, i32 288, i32 289, i32 290, i32 291, i32 292, i32 293, i32 294, i32 295, i32 296, i32 297, i32 298, i32 299, i32 300, i32 301, i32 302, i32 303, i32 304, i32 305, i32 306, i32 307, i32 308, i32 309, i32 310, i32 311, i32 312, i32 313, i32 314, i32 315, i32 316, i32 317, i32 318, i32 319>
6952   %interleaved.vec = shufflevector <320 x i32> %5, <320 x i32> poison, <320 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 1, i32 65, i32 129, i32 193, i32 257, i32 2, i32 66, i32 130, i32 194, i32 258, i32 3, i32 67, i32 131, i32 195, i32 259, i32 4, i32 68, i32 132, i32 196, i32 260, i32 5, i32 69, i32 133, i32 197, i32 261, i32 6, i32 70, i32 134, i32 198, i32 262, i32 7, i32 71, i32 135, i32 199, i32 263, i32 8, i32 72, i32 136, i32 200, i32 264, i32 9, i32 73, i32 137, i32 201, i32 265, i32 10, i32 74, i32 138, i32 202, i32 266, i32 11, i32 75, i32 139, i32 203, i32 267, i32 12, i32 76, i32 140, i32 204, i32 268, i32 13, i32 77, i32 141, i32 205, i32 269, i32 14, i32 78, i32 142, i32 206, i32 270, i32 15, i32 79, i32 143, i32 207, i32 271, i32 16, i32 80, i32 144, i32 208, i32 272, i32 17, i32 81, i32 145, i32 209, i32 273, i32 18, i32 82, i32 146, i32 210, i32 274, i32 19, i32 83, i32 147, i32 211, i32 275, i32 20, i32 84, i32 148, i32 212, i32 276, i32 21, i32 85, i32 149, i32 213, i32 277, i32 22, i32 86, i32 150, i32 214, i32 278, i32 23, i32 87, i32 151, i32 215, i32 279, i32 24, i32 88, i32 152, i32 216, i32 280, i32 25, i32 89, i32 153, i32 217, i32 281, i32 26, i32 90, i32 154, i32 218, i32 282, i32 27, i32 91, i32 155, i32 219, i32 283, i32 28, i32 92, i32 156, i32 220, i32 284, i32 29, i32 93, i32 157, i32 221, i32 285, i32 30, i32 94, i32 158, i32 222, i32 286, i32 31, i32 95, i32 159, i32 223, i32 287, i32 32, i32 96, i32 160, i32 224, i32 288, i32 33, i32 97, i32 161, i32 225, i32 289, i32 34, i32 98, i32 162, i32 226, i32 290, i32 35, i32 99, i32 163, i32 227, i32 291, i32 36, i32 100, i32 164, i32 228, i32 292, i32 37, i32 101, i32 165, i32 229, i32 293, i32 38, i32 102, i32 166, i32 230, i32 294, i32 39, i32 103, i32 167, i32 231, i32 295, i32 40, i32 104, i32 168, i32 232, i32 296, i32 41, i32 105, i32 169, i32 233, i32 297, i32 42, i32 106, i32 170, i32 234, i32 298, i32 43, i32 107, i32 171, i32 235, i32 299, i32 44, i32 108, i32 172, i32 236, i32 300, i32 45, i32 109, i32 173, i32 237, i32 301, i32 46, i32 110, i32 174, i32 238, i32 302, i32 47, i32 111, i32 175, i32 239, i32 303, i32 48, i32 112, i32 176, i32 240, i32 304, i32 49, i32 113, i32 177, i32 241, i32 305, i32 50, i32 114, i32 178, i32 242, i32 306, i32 51, i32 115, i32 179, i32 243, i32 307, i32 52, i32 116, i32 180, i32 244, i32 308, i32 53, i32 117, i32 181, i32 245, i32 309, i32 54, i32 118, i32 182, i32 246, i32 310, i32 55, i32 119, i32 183, i32 247, i32 311, i32 56, i32 120, i32 184, i32 248, i32 312, i32 57, i32 121, i32 185, i32 249, i32 313, i32 58, i32 122, i32 186, i32 250, i32 314, i32 59, i32 123, i32 187, i32 251, i32 315, i32 60, i32 124, i32 188, i32 252, i32 316, i32 61, i32 125, i32 189, i32 253, i32 317, i32 62, i32 126, i32 190, i32 254, i32 318, i32 63, i32 127, i32 191, i32 255, i32 319>
6953   store <320 x i32> %interleaved.vec, ptr %out.vec, align 64
6954   ret void
6956 ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
6957 ; AVX: {{.*}}
6958 ; AVX1: {{.*}}
6959 ; AVX2: {{.*}}
6960 ; AVX512-FAST: {{.*}}
6961 ; AVX512-SLOW: {{.*}}
6962 ; AVX512BW-FAST: {{.*}}
6963 ; AVX512BW-ONLY-FAST: {{.*}}
6964 ; AVX512BW-ONLY-SLOW: {{.*}}
6965 ; AVX512BW-SLOW: {{.*}}
6966 ; AVX512DQ-FAST: {{.*}}
6967 ; AVX512DQ-SLOW: {{.*}}
6968 ; AVX512DQBW-FAST: {{.*}}
6969 ; AVX512DQBW-SLOW: {{.*}}
6970 ; AVX512F-FAST: {{.*}}
6971 ; AVX512F-ONLY-FAST: {{.*}}
6972 ; AVX512F-ONLY-SLOW: {{.*}}
6973 ; AVX512F-SLOW: {{.*}}
6974 ; FALLBACK0: {{.*}}
6975 ; FALLBACK1: {{.*}}
6976 ; FALLBACK10: {{.*}}
6977 ; FALLBACK11: {{.*}}
6978 ; FALLBACK12: {{.*}}
6979 ; FALLBACK2: {{.*}}
6980 ; FALLBACK3: {{.*}}
6981 ; FALLBACK4: {{.*}}
6982 ; FALLBACK5: {{.*}}
6983 ; FALLBACK6: {{.*}}
6984 ; FALLBACK7: {{.*}}
6985 ; FALLBACK8: {{.*}}
6986 ; FALLBACK9: {{.*}}