[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i64-stride-5.ll
blob8dded96acfc12c9256c84b5c824fc846105fbd54
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
3 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx  | FileCheck %s --check-prefixes=AVX
4 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2 | FileCheck %s --check-prefixes=AVX2
5 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FP
6 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx2,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX2-FCP
7 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX512
8 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512-FCP
9 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq | FileCheck %s --check-prefixes=AVX512DQ
10 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-FCP
11 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512BW
12 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512BW-FCP
13 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw | FileCheck %s --check-prefixes=AVX512DQ-BW
14 ; RUN: llc < %s -mtriple=x86_64-- -mattr=+avx512vl,+avx512dq,+avx512bw,+fast-variable-crosslane-shuffle,+fast-variable-perlane-shuffle | FileCheck %s --check-prefixes=AVX512DQ-BW-FCP
16 ; These patterns are produced by LoopVectorizer for interleaved stores.
18 define void @store_i64_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_i64_stride5_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movapd (%rdi), %xmm0
22 ; SSE-NEXT:    movapd (%rsi), %xmm1
23 ; SSE-NEXT:    movapd (%rdx), %xmm2
24 ; SSE-NEXT:    movapd (%rcx), %xmm3
25 ; SSE-NEXT:    movapd (%r8), %xmm4
26 ; SSE-NEXT:    movapd %xmm0, %xmm5
27 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm1[0]
28 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
29 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
30 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm4[1]
31 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm4[0],xmm0[1]
32 ; SSE-NEXT:    movapd %xmm2, 16(%r9)
33 ; SSE-NEXT:    movapd %xmm0, 32(%r9)
34 ; SSE-NEXT:    movapd %xmm1, 48(%r9)
35 ; SSE-NEXT:    movapd %xmm3, 64(%r9)
36 ; SSE-NEXT:    movapd %xmm5, (%r9)
37 ; SSE-NEXT:    retq
39 ; AVX-LABEL: store_i64_stride5_vf2:
40 ; AVX:       # %bb.0:
41 ; AVX-NEXT:    vmovaps (%rdi), %xmm0
42 ; AVX-NEXT:    vmovaps (%rsi), %xmm1
43 ; AVX-NEXT:    vmovaps (%rcx), %xmm2
44 ; AVX-NEXT:    vmovaps (%r8), %xmm3
45 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm4
46 ; AVX-NEXT:    vinsertf128 $1, (%rdx), %ymm0, %ymm0
47 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
48 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
49 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
50 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
51 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
52 ; AVX-NEXT:    vmovaps %xmm1, 64(%r9)
53 ; AVX-NEXT:    vmovaps %ymm0, (%r9)
54 ; AVX-NEXT:    vmovaps %ymm4, 32(%r9)
55 ; AVX-NEXT:    vzeroupper
56 ; AVX-NEXT:    retq
58 ; AVX2-LABEL: store_i64_stride5_vf2:
59 ; AVX2:       # %bb.0:
60 ; AVX2-NEXT:    vmovaps (%rdi), %xmm0
61 ; AVX2-NEXT:    vmovaps (%rdx), %xmm1
62 ; AVX2-NEXT:    vmovaps (%rcx), %xmm2
63 ; AVX2-NEXT:    vmovaps (%r8), %xmm3
64 ; AVX2-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
65 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
66 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
67 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,0,2,1]
68 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
69 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
70 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
71 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
72 ; AVX2-NEXT:    vmovaps %xmm1, 64(%r9)
73 ; AVX2-NEXT:    vmovaps %ymm0, (%r9)
74 ; AVX2-NEXT:    vmovaps %ymm4, 32(%r9)
75 ; AVX2-NEXT:    vzeroupper
76 ; AVX2-NEXT:    retq
78 ; AVX2-FP-LABEL: store_i64_stride5_vf2:
79 ; AVX2-FP:       # %bb.0:
80 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm0
81 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm1
82 ; AVX2-FP-NEXT:    vmovaps (%rcx), %xmm2
83 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm3
84 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
85 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
86 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
87 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,0,2,1]
88 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
89 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
90 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
91 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
92 ; AVX2-FP-NEXT:    vmovaps %xmm1, 64(%r9)
93 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%r9)
94 ; AVX2-FP-NEXT:    vmovaps %ymm4, 32(%r9)
95 ; AVX2-FP-NEXT:    vzeroupper
96 ; AVX2-FP-NEXT:    retq
98 ; AVX2-FCP-LABEL: store_i64_stride5_vf2:
99 ; AVX2-FCP:       # %bb.0:
100 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm0
101 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm1
102 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %xmm2
103 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm3
104 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
105 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
106 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
107 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,0,2,1]
108 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
109 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
110 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
111 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm3[1]
112 ; AVX2-FCP-NEXT:    vmovaps %xmm1, 64(%r9)
113 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%r9)
114 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 32(%r9)
115 ; AVX2-FCP-NEXT:    vzeroupper
116 ; AVX2-FCP-NEXT:    retq
118 ; AVX512-LABEL: store_i64_stride5_vf2:
119 ; AVX512:       # %bb.0:
120 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
121 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm1
122 ; AVX512-NEXT:    vmovdqa (%r8), %xmm2
123 ; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
124 ; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
125 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
126 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
127 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
128 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
129 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
130 ; AVX512-NEXT:    vmovdqa64 %zmm3, (%r9)
131 ; AVX512-NEXT:    vmovdqa %xmm1, 64(%r9)
132 ; AVX512-NEXT:    vzeroupper
133 ; AVX512-NEXT:    retq
135 ; AVX512-FCP-LABEL: store_i64_stride5_vf2:
136 ; AVX512-FCP:       # %bb.0:
137 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0
138 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1
139 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2
140 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
141 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
142 ; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
143 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
144 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
145 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
146 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
147 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, (%r9)
148 ; AVX512-FCP-NEXT:    vmovdqa %xmm1, 64(%r9)
149 ; AVX512-FCP-NEXT:    vzeroupper
150 ; AVX512-FCP-NEXT:    retq
152 ; AVX512DQ-LABEL: store_i64_stride5_vf2:
153 ; AVX512DQ:       # %bb.0:
154 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0
155 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1
156 ; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2
157 ; AVX512DQ-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
158 ; AVX512DQ-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
159 ; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
160 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
161 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
162 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
163 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
164 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, (%r9)
165 ; AVX512DQ-NEXT:    vmovdqa %xmm1, 64(%r9)
166 ; AVX512DQ-NEXT:    vzeroupper
167 ; AVX512DQ-NEXT:    retq
169 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf2:
170 ; AVX512DQ-FCP:       # %bb.0:
171 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0
172 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1
173 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2
174 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
175 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
176 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
177 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
178 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
179 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
180 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
181 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, (%r9)
182 ; AVX512DQ-FCP-NEXT:    vmovdqa %xmm1, 64(%r9)
183 ; AVX512DQ-FCP-NEXT:    vzeroupper
184 ; AVX512DQ-FCP-NEXT:    retq
186 ; AVX512BW-LABEL: store_i64_stride5_vf2:
187 ; AVX512BW:       # %bb.0:
188 ; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0
189 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1
190 ; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2
191 ; AVX512BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
192 ; AVX512BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
193 ; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
194 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
195 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
196 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
197 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
198 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, (%r9)
199 ; AVX512BW-NEXT:    vmovdqa %xmm1, 64(%r9)
200 ; AVX512BW-NEXT:    vzeroupper
201 ; AVX512BW-NEXT:    retq
203 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf2:
204 ; AVX512BW-FCP:       # %bb.0:
205 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
206 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
207 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
208 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
209 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
210 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
211 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
212 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
213 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
214 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
215 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, (%r9)
216 ; AVX512BW-FCP-NEXT:    vmovdqa %xmm1, 64(%r9)
217 ; AVX512BW-FCP-NEXT:    vzeroupper
218 ; AVX512BW-FCP-NEXT:    retq
220 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf2:
221 ; AVX512DQ-BW:       # %bb.0:
222 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0
223 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1
224 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2
225 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
226 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
227 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
228 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
229 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
230 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
231 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
232 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, (%r9)
233 ; AVX512DQ-BW-NEXT:    vmovdqa %xmm1, 64(%r9)
234 ; AVX512DQ-BW-NEXT:    vzeroupper
235 ; AVX512DQ-BW-NEXT:    retq
237 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf2:
238 ; AVX512DQ-BW-FCP:       # %bb.0:
239 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
242 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
243 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
244 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
245 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} xmm1 = [7,9]
246 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
247 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,2,4,6,8,1,3,5]
248 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, (%r9)
250 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %xmm1, 64(%r9)
251 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
252 ; AVX512DQ-BW-FCP-NEXT:    retq
253   %in.vec0 = load <2 x i64>, ptr %in.vecptr0, align 64
254   %in.vec1 = load <2 x i64>, ptr %in.vecptr1, align 64
255   %in.vec2 = load <2 x i64>, ptr %in.vecptr2, align 64
256   %in.vec3 = load <2 x i64>, ptr %in.vecptr3, align 64
257   %in.vec4 = load <2 x i64>, ptr %in.vecptr4, align 64
258   %1 = shufflevector <2 x i64> %in.vec0, <2 x i64> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
259   %2 = shufflevector <2 x i64> %in.vec2, <2 x i64> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
260   %3 = shufflevector <4 x i64> %1, <4 x i64> %2, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
261   %4 = shufflevector <2 x i64> %in.vec4, <2 x i64> poison, <8 x i32> <i32 0, i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
262   %5 = shufflevector <8 x i64> %3, <8 x i64> %4, <10 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9>
263   %interleaved.vec = shufflevector <10 x i64> %5, <10 x i64> poison, <10 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 1, i32 3, i32 5, i32 7, i32 9>
264   store <10 x i64> %interleaved.vec, ptr %out.vec, align 64
265   ret void
268 define void @store_i64_stride5_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
269 ; SSE-LABEL: store_i64_stride5_vf4:
270 ; SSE:       # %bb.0:
271 ; SSE-NEXT:    movaps (%rdi), %xmm2
272 ; SSE-NEXT:    movaps 16(%rdi), %xmm0
273 ; SSE-NEXT:    movaps (%rsi), %xmm4
274 ; SSE-NEXT:    movaps 16(%rsi), %xmm6
275 ; SSE-NEXT:    movaps (%rdx), %xmm5
276 ; SSE-NEXT:    movaps 16(%rdx), %xmm1
277 ; SSE-NEXT:    movaps (%rcx), %xmm7
278 ; SSE-NEXT:    movaps 16(%rcx), %xmm8
279 ; SSE-NEXT:    movaps (%r8), %xmm9
280 ; SSE-NEXT:    movaps 16(%r8), %xmm3
281 ; SSE-NEXT:    movaps %xmm6, %xmm10
282 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm1[1]
283 ; SSE-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm8[0]
284 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm3[1]
285 ; SSE-NEXT:    shufps {{.*#+}} xmm3 = xmm3[0,1],xmm0[2,3]
286 ; SSE-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm6[0]
287 ; SSE-NEXT:    movaps %xmm4, %xmm6
288 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm5[1]
289 ; SSE-NEXT:    movlhps {{.*#+}} xmm5 = xmm5[0],xmm7[0]
290 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm9[1]
291 ; SSE-NEXT:    shufps {{.*#+}} xmm9 = xmm9[0,1],xmm2[2,3]
292 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm4[0]
293 ; SSE-NEXT:    movaps %xmm2, (%r9)
294 ; SSE-NEXT:    movaps %xmm5, 16(%r9)
295 ; SSE-NEXT:    movaps %xmm9, 32(%r9)
296 ; SSE-NEXT:    movaps %xmm6, 48(%r9)
297 ; SSE-NEXT:    movaps %xmm7, 64(%r9)
298 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
299 ; SSE-NEXT:    movaps %xmm1, 96(%r9)
300 ; SSE-NEXT:    movaps %xmm3, 112(%r9)
301 ; SSE-NEXT:    movaps %xmm10, 128(%r9)
302 ; SSE-NEXT:    movaps %xmm8, 144(%r9)
303 ; SSE-NEXT:    retq
305 ; AVX-LABEL: store_i64_stride5_vf4:
306 ; AVX:       # %bb.0:
307 ; AVX-NEXT:    vmovapd (%rdi), %ymm0
308 ; AVX-NEXT:    vmovapd (%r8), %ymm1
309 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
310 ; AVX-NEXT:    vmovapd 16(%rdx), %xmm3
311 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[3]
312 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm1[2],ymm2[3]
313 ; AVX-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
314 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm0[0],mem[0],ymm0[2],mem[2]
315 ; AVX-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
316 ; AVX-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0],ymm1[1],ymm4[2,3]
317 ; AVX-NEXT:    vmovlpd {{.*#+}} xmm3 = mem[0],xmm3[1]
318 ; AVX-NEXT:    vbroadcastsd 24(%rcx), %ymm5
319 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2,3]
320 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm1[3]
321 ; AVX-NEXT:    vmovaps (%rdx), %xmm5
322 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm0
323 ; AVX-NEXT:    vbroadcastsd 8(%rsi), %ymm6
324 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm6[2],ymm0[3]
325 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0],ymm0[1,2,3]
326 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm5[0],mem[0]
327 ; AVX-NEXT:    vmovaps (%rdi), %xmm5
328 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
329 ; AVX-NEXT:    vmovaps %xmm5, (%r9)
330 ; AVX-NEXT:    vmovaps %xmm1, 16(%r9)
331 ; AVX-NEXT:    vmovapd %ymm4, 64(%r9)
332 ; AVX-NEXT:    vmovapd %ymm0, 32(%r9)
333 ; AVX-NEXT:    vmovapd %ymm2, 96(%r9)
334 ; AVX-NEXT:    vmovapd %ymm3, 128(%r9)
335 ; AVX-NEXT:    vzeroupper
336 ; AVX-NEXT:    retq
338 ; AVX2-LABEL: store_i64_stride5_vf4:
339 ; AVX2:       # %bb.0:
340 ; AVX2-NEXT:    vmovaps (%rdi), %ymm0
341 ; AVX2-NEXT:    vmovaps (%rsi), %ymm1
342 ; AVX2-NEXT:    vmovaps (%rdx), %ymm2
343 ; AVX2-NEXT:    vmovaps (%r8), %ymm3
344 ; AVX2-NEXT:    vmovaps (%rdx), %xmm4
345 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm5
346 ; AVX2-NEXT:    vbroadcastsd 8(%rsi), %ymm6
347 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm6[4,5,6,7]
348 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
349 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm3[0,1],ymm5[2,3,4,5,6,7]
350 ; AVX2-NEXT:    vmovaps (%rsi), %xmm6
351 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm6, %ymm6
352 ; AVX2-NEXT:    vmovaps (%rdi), %xmm7
353 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm4
354 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
355 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
356 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
357 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
358 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6,7]
359 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
360 ; AVX2-NEXT:    vbroadcastsd 16(%rcx), %ymm7
361 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6,7]
362 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
363 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
364 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm2
365 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
366 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
367 ; AVX2-NEXT:    vmovaps %ymm6, 64(%r9)
368 ; AVX2-NEXT:    vmovaps %ymm1, 128(%r9)
369 ; AVX2-NEXT:    vmovaps %ymm4, (%r9)
370 ; AVX2-NEXT:    vmovaps %ymm5, 32(%r9)
371 ; AVX2-NEXT:    vmovaps %ymm0, 96(%r9)
372 ; AVX2-NEXT:    vzeroupper
373 ; AVX2-NEXT:    retq
375 ; AVX2-FP-LABEL: store_i64_stride5_vf4:
376 ; AVX2-FP:       # %bb.0:
377 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
378 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1
379 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2
380 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm3
381 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm4
382 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm5
383 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
384 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm6[4,5,6,7]
385 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
386 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm3[0,1],ymm5[2,3,4,5,6,7]
387 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm6
388 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm6, %ymm6
389 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm7
390 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm4
391 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
392 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
393 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
394 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
395 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6,7]
396 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
397 ; AVX2-FP-NEXT:    vbroadcastsd 16(%rcx), %ymm7
398 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6,7]
399 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
400 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
401 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm2
402 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
403 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
404 ; AVX2-FP-NEXT:    vmovaps %ymm6, 64(%r9)
405 ; AVX2-FP-NEXT:    vmovaps %ymm1, 128(%r9)
406 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%r9)
407 ; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%r9)
408 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%r9)
409 ; AVX2-FP-NEXT:    vzeroupper
410 ; AVX2-FP-NEXT:    retq
412 ; AVX2-FCP-LABEL: store_i64_stride5_vf4:
413 ; AVX2-FCP:       # %bb.0:
414 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
415 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1
416 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2
417 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm3
418 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm4
419 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm5
420 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
421 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm6[4,5,6,7]
422 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
423 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm3[0,1],ymm5[2,3,4,5,6,7]
424 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm6
425 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm6, %ymm6
426 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm7
427 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm4
428 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm6[0],ymm4[2],ymm6[2]
429 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
430 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
431 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
432 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm3[2,3],ymm6[4,5,6,7]
433 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm2[2,3],ymm0[2,3]
434 ; AVX2-FCP-NEXT:    vbroadcastsd 16(%rcx), %ymm7
435 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3],ymm0[4,5,6,7]
436 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5],ymm0[6,7]
437 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
438 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm2
439 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
440 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
441 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 64(%r9)
442 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 128(%r9)
443 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%r9)
444 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%r9)
445 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%r9)
446 ; AVX2-FCP-NEXT:    vzeroupper
447 ; AVX2-FCP-NEXT:    retq
449 ; AVX512-LABEL: store_i64_stride5_vf4:
450 ; AVX512:       # %bb.0:
451 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm0
452 ; AVX512-NEXT:    vmovdqa (%rdx), %ymm1
453 ; AVX512-NEXT:    vmovdqa (%r8), %ymm2
454 ; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
455 ; AVX512-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
456 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
457 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
458 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
459 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
460 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
461 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
462 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
463 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
464 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
465 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
466 ; AVX512-NEXT:    vmovdqa64 %zmm0, 64(%r9)
467 ; AVX512-NEXT:    vmovdqa64 %zmm5, (%r9)
468 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
469 ; AVX512-NEXT:    vmovdqa %ymm0, 128(%r9)
470 ; AVX512-NEXT:    vzeroupper
471 ; AVX512-NEXT:    retq
473 ; AVX512-FCP-LABEL: store_i64_stride5_vf4:
474 ; AVX512-FCP:       # %bb.0:
475 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm0
476 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm1
477 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm2
478 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
479 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
480 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
481 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
482 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
483 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
484 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
485 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
486 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
487 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
488 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
489 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 64(%r9)
491 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, (%r9)
492 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
493 ; AVX512-FCP-NEXT:    vmovdqa %ymm0, 128(%r9)
494 ; AVX512-FCP-NEXT:    vzeroupper
495 ; AVX512-FCP-NEXT:    retq
497 ; AVX512DQ-LABEL: store_i64_stride5_vf4:
498 ; AVX512DQ:       # %bb.0:
499 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm0
500 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm1
501 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm2
502 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
503 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
504 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
505 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
506 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
507 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
508 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
509 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
510 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
511 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
512 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
513 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
514 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 64(%r9)
515 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, (%r9)
516 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
517 ; AVX512DQ-NEXT:    vmovdqa %ymm0, 128(%r9)
518 ; AVX512DQ-NEXT:    vzeroupper
519 ; AVX512DQ-NEXT:    retq
521 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf4:
522 ; AVX512DQ-FCP:       # %bb.0:
523 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm0
524 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm1
525 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm2
526 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
527 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
528 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
529 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
530 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
531 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
532 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
533 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
534 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
535 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
536 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
537 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
538 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 64(%r9)
539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, (%r9)
540 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
541 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, 128(%r9)
542 ; AVX512DQ-FCP-NEXT:    vzeroupper
543 ; AVX512DQ-FCP-NEXT:    retq
545 ; AVX512BW-LABEL: store_i64_stride5_vf4:
546 ; AVX512BW:       # %bb.0:
547 ; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm0
548 ; AVX512BW-NEXT:    vmovdqa (%rdx), %ymm1
549 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm2
550 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
551 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
552 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
553 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
554 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
555 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
556 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
557 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
558 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
559 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
560 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
561 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
562 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 64(%r9)
563 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, (%r9)
564 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
565 ; AVX512BW-NEXT:    vmovdqa %ymm0, 128(%r9)
566 ; AVX512BW-NEXT:    vzeroupper
567 ; AVX512BW-NEXT:    retq
569 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf4:
570 ; AVX512BW-FCP:       # %bb.0:
571 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0
572 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1
573 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm2
574 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
575 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
576 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
577 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
578 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
579 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
580 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
581 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
582 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
583 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
584 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
585 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
586 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%r9)
587 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, (%r9)
588 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
589 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm0, 128(%r9)
590 ; AVX512BW-FCP-NEXT:    vzeroupper
591 ; AVX512BW-FCP-NEXT:    retq
593 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf4:
594 ; AVX512DQ-BW:       # %bb.0:
595 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm0
596 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %ymm1
597 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm2
598 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
599 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
600 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
601 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
602 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
603 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
604 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
605 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
606 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
607 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
608 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
609 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
610 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 64(%r9)
611 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, (%r9)
612 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
613 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, 128(%r9)
614 ; AVX512DQ-BW-NEXT:    vzeroupper
615 ; AVX512DQ-BW-NEXT:    retq
617 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf4:
618 ; AVX512DQ-BW-FCP:       # %bb.0:
619 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm0
620 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %ymm1
621 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm2
622 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm0, %zmm0
623 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm1, %zmm1
624 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm3 = [15,3,7,0]
625 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm3
626 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,4,8,12,0,1,5,9]
627 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
628 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,8,5,6,7]
629 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm5
630 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,6,10,14,0,3]
631 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm4
632 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,9,2,3,4,5,10,7]
633 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm0
634 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 64(%r9)
635 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, (%r9)
636 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm3[0,1,2,3,4,5],ymm2[6,7]
637 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm0, 128(%r9)
638 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
639 ; AVX512DQ-BW-FCP-NEXT:    retq
640   %in.vec0 = load <4 x i64>, ptr %in.vecptr0, align 64
641   %in.vec1 = load <4 x i64>, ptr %in.vecptr1, align 64
642   %in.vec2 = load <4 x i64>, ptr %in.vecptr2, align 64
643   %in.vec3 = load <4 x i64>, ptr %in.vecptr3, align 64
644   %in.vec4 = load <4 x i64>, ptr %in.vecptr4, align 64
645   %1 = shufflevector <4 x i64> %in.vec0, <4 x i64> %in.vec1, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
646   %2 = shufflevector <4 x i64> %in.vec2, <4 x i64> %in.vec3, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
647   %3 = shufflevector <8 x i64> %1, <8 x i64> %2, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
648   %4 = shufflevector <4 x i64> %in.vec4, <4 x i64> 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>
649   %5 = shufflevector <16 x i64> %3, <16 x i64> %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>
650   %interleaved.vec = shufflevector <20 x i64> %5, <20 x i64> 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>
651   store <20 x i64> %interleaved.vec, ptr %out.vec, align 64
652   ret void
655 define void @store_i64_stride5_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
656 ; SSE-LABEL: store_i64_stride5_vf8:
657 ; SSE:       # %bb.0:
658 ; SSE-NEXT:    movapd (%rdi), %xmm0
659 ; SSE-NEXT:    movapd 16(%rdi), %xmm2
660 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
661 ; SSE-NEXT:    movapd (%rsi), %xmm1
662 ; SSE-NEXT:    movapd 16(%rsi), %xmm9
663 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
664 ; SSE-NEXT:    movapd (%rdx), %xmm3
665 ; SSE-NEXT:    movapd 16(%rdx), %xmm6
666 ; SSE-NEXT:    movapd 32(%rdx), %xmm10
667 ; SSE-NEXT:    movapd (%rcx), %xmm7
668 ; SSE-NEXT:    movapd 16(%rcx), %xmm11
669 ; SSE-NEXT:    movapd 32(%rcx), %xmm12
670 ; SSE-NEXT:    movapd (%r8), %xmm13
671 ; SSE-NEXT:    movapd 16(%r8), %xmm14
672 ; SSE-NEXT:    movapd 32(%r8), %xmm15
673 ; SSE-NEXT:    movapd %xmm0, %xmm4
674 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm4 = xmm4[0],xmm1[0]
675 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
676 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm13[0],xmm0[1]
677 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
678 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
679 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
680 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm7[0]
681 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
682 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm13[1]
683 ; SSE-NEXT:    movapd %xmm2, %xmm13
684 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm13 = xmm13[0],xmm9[0]
685 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm14[0],xmm2[1]
686 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
687 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm6[1]
688 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm11[0]
689 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm14[1]
690 ; SSE-NEXT:    movapd %xmm5, %xmm14
691 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm8[0]
692 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm15[0],xmm5[1]
693 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm10[1]
694 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm12[0]
695 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm15[1]
696 ; SSE-NEXT:    movapd 48(%rdi), %xmm15
697 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
698 ; SSE-NEXT:    movapd %xmm15, %xmm3
699 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
700 ; SSE-NEXT:    movapd 48(%r8), %xmm4
701 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm4[0],xmm15[1]
702 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
703 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
704 ; SSE-NEXT:    movapd 48(%rcx), %xmm0
705 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
706 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
707 ; SSE-NEXT:    movapd %xmm0, 304(%r9)
708 ; SSE-NEXT:    movapd %xmm2, 288(%r9)
709 ; SSE-NEXT:    movapd %xmm15, 272(%r9)
710 ; SSE-NEXT:    movapd %xmm1, 256(%r9)
711 ; SSE-NEXT:    movapd %xmm3, 240(%r9)
712 ; SSE-NEXT:    movapd %xmm12, 224(%r9)
713 ; SSE-NEXT:    movapd %xmm8, 208(%r9)
714 ; SSE-NEXT:    movapd %xmm5, 192(%r9)
715 ; SSE-NEXT:    movapd %xmm10, 176(%r9)
716 ; SSE-NEXT:    movapd %xmm14, 160(%r9)
717 ; SSE-NEXT:    movapd %xmm11, 144(%r9)
718 ; SSE-NEXT:    movapd %xmm9, 128(%r9)
719 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
720 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
721 ; SSE-NEXT:    movapd %xmm6, 96(%r9)
722 ; SSE-NEXT:    movapd %xmm13, 80(%r9)
723 ; SSE-NEXT:    movapd %xmm7, 64(%r9)
724 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
725 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
726 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
727 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
728 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
729 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
730 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
731 ; SSE-NEXT:    movaps %xmm0, (%r9)
732 ; SSE-NEXT:    retq
734 ; AVX-LABEL: store_i64_stride5_vf8:
735 ; AVX:       # %bb.0:
736 ; AVX-NEXT:    vmovapd 32(%rdi), %ymm9
737 ; AVX-NEXT:    vmovaps (%rdi), %ymm1
738 ; AVX-NEXT:    vmovaps (%rcx), %ymm0
739 ; AVX-NEXT:    vmovaps (%r8), %ymm3
740 ; AVX-NEXT:    vmovapd 32(%r8), %ymm5
741 ; AVX-NEXT:    vpermilps {{.*#+}} xmm2 = mem[2,3,2,3]
742 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm7
743 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm7[1],ymm0[3],ymm7[3]
744 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
745 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
746 ; AVX-NEXT:    vmovaps (%rdx), %xmm4
747 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
748 ; AVX-NEXT:    vbroadcastsd 8(%rsi), %ymm6
749 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm1[0,1,2,3],ymm6[4,5,6,7]
750 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
751 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
752 ; AVX-NEXT:    vpermilps {{.*#+}} xmm6 = mem[2,3,2,3]
753 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm9[0],mem[0],ymm9[2],mem[2]
754 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3]
755 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0],ymm5[1],ymm6[2,3]
756 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm8 = mem[2,3],ymm9[2,3]
757 ; AVX-NEXT:    vmovapd 48(%rdx), %xmm10
758 ; AVX-NEXT:    vshufpd {{.*#+}} ymm8 = ymm10[0],ymm8[0],ymm10[2],ymm8[3]
759 ; AVX-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm5[2],ymm8[3]
760 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm11
761 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm12
762 ; AVX-NEXT:    vbroadcastsd 40(%rsi), %ymm13
763 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm13[2,3]
764 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1,2],ymm12[3]
765 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm5[0],ymm9[1,2,3]
766 ; AVX-NEXT:    vpermilps {{.*#+}} xmm12 = mem[2,3,2,3]
767 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm13 = ymm1[0],mem[0],ymm1[2],mem[2]
768 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
769 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm3[2,3],ymm12[4,5,6,7]
770 ; AVX-NEXT:    vmovapd 48(%rsi), %xmm13
771 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm13[1],xmm10[1]
772 ; AVX-NEXT:    vbroadcastsd 56(%rcx), %ymm13
773 ; AVX-NEXT:    vblendpd {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3]
774 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm10[0,1,2],ymm5[3]
775 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
776 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm7[0,1,2,3],ymm1[4,5,6,7]
777 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
778 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm11[0],mem[0]
779 ; AVX-NEXT:    vmovaps (%rdi), %xmm7
780 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm10
781 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
782 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
783 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
784 ; AVX-NEXT:    vmovaps %xmm7, (%r9)
785 ; AVX-NEXT:    vmovaps %xmm4, 16(%r9)
786 ; AVX-NEXT:    vmovaps %xmm10, 160(%r9)
787 ; AVX-NEXT:    vmovaps %xmm3, 176(%r9)
788 ; AVX-NEXT:    vmovaps %ymm12, 64(%r9)
789 ; AVX-NEXT:    vmovapd %ymm9, 192(%r9)
790 ; AVX-NEXT:    vmovapd %ymm8, 256(%r9)
791 ; AVX-NEXT:    vmovapd %ymm6, 224(%r9)
792 ; AVX-NEXT:    vmovaps %ymm2, 32(%r9)
793 ; AVX-NEXT:    vmovaps %ymm1, 96(%r9)
794 ; AVX-NEXT:    vmovaps %ymm0, 128(%r9)
795 ; AVX-NEXT:    vmovapd %ymm5, 288(%r9)
796 ; AVX-NEXT:    vzeroupper
797 ; AVX-NEXT:    retq
799 ; AVX2-LABEL: store_i64_stride5_vf8:
800 ; AVX2:       # %bb.0:
801 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm5
802 ; AVX2-NEXT:    vmovaps (%rdi), %ymm0
803 ; AVX2-NEXT:    vmovaps (%rdx), %ymm1
804 ; AVX2-NEXT:    vmovaps (%rcx), %ymm4
805 ; AVX2-NEXT:    vmovaps (%r8), %ymm2
806 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm6
807 ; AVX2-NEXT:    vmovaps (%rdx), %xmm7
808 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm10
809 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm3
810 ; AVX2-NEXT:    vbroadcastsd 8(%rsi), %ymm8
811 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]
812 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm3[6,7]
813 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3,4,5,6,7]
814 ; AVX2-NEXT:    vmovaps (%rsi), %xmm8
815 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm11
816 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm8, %ymm8
817 ; AVX2-NEXT:    vmovaps (%rdi), %xmm9
818 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm12
819 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm9, %ymm7
820 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
821 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
822 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm5[0],mem[0],ymm5[2],mem[2]
823 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
824 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
825 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm9
826 ; AVX2-NEXT:    vbroadcastsd 40(%rsi), %ymm13
827 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
828 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3,4,5],ymm9[6,7]
829 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm6[0,1],ymm9[2,3,4,5,6,7]
830 ; AVX2-NEXT:    vinsertf128 $1, 32(%rcx), %ymm11, %ymm11
831 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm10
832 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
833 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
834 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],mem[0],ymm0[2],mem[2]
835 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
836 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm2[2,3],ymm11[4,5,6,7]
837 ; AVX2-NEXT:    vbroadcastsd 56(%rsi), %ymm12
838 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
839 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm13
840 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
841 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm6[6,7]
842 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
843 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,2,3,3]
844 ; AVX2-NEXT:    vbroadcastsd 24(%rsi), %ymm14
845 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5,6,7]
846 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm2[6,7]
847 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
848 ; AVX2-NEXT:    vbroadcastsd 48(%rcx), %ymm14
849 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm14[2,3],ymm5[4,5,6,7]
850 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
851 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
852 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
853 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]
854 ; AVX2-NEXT:    vmovaps %ymm11, 64(%r9)
855 ; AVX2-NEXT:    vmovaps %ymm10, 160(%r9)
856 ; AVX2-NEXT:    vmovaps %ymm0, 96(%r9)
857 ; AVX2-NEXT:    vmovaps %ymm9, 192(%r9)
858 ; AVX2-NEXT:    vmovaps %ymm5, 256(%r9)
859 ; AVX2-NEXT:    vmovaps %ymm8, 224(%r9)
860 ; AVX2-NEXT:    vmovaps %ymm7, (%r9)
861 ; AVX2-NEXT:    vmovaps %ymm3, 32(%r9)
862 ; AVX2-NEXT:    vmovaps %ymm13, 128(%r9)
863 ; AVX2-NEXT:    vmovaps %ymm12, 288(%r9)
864 ; AVX2-NEXT:    vzeroupper
865 ; AVX2-NEXT:    retq
867 ; AVX2-FP-LABEL: store_i64_stride5_vf8:
868 ; AVX2-FP:       # %bb.0:
869 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm5
870 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
871 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm1
872 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm4
873 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm2
874 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm6
875 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm7
876 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm10
877 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm3
878 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rsi), %ymm8
879 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]
880 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm3[6,7]
881 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3,4,5,6,7]
882 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm8
883 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm11
884 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm8, %ymm8
885 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm9
886 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm12
887 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm9, %ymm7
888 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
889 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
890 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm5[0],mem[0],ymm5[2],mem[2]
891 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
892 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
893 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm9
894 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rsi), %ymm13
895 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
896 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3,4,5],ymm9[6,7]
897 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm6[0,1],ymm9[2,3,4,5,6,7]
898 ; AVX2-FP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm11, %ymm11
899 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm10
900 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
901 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
902 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],mem[0],ymm0[2],mem[2]
903 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
904 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm2[2,3],ymm11[4,5,6,7]
905 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rsi), %ymm12
906 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
907 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm13
908 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
909 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm6[6,7]
910 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
911 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,2,3,3]
912 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rsi), %ymm14
913 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5,6,7]
914 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm2[6,7]
915 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
916 ; AVX2-FP-NEXT:    vbroadcastsd 48(%rcx), %ymm14
917 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm14[2,3],ymm5[4,5,6,7]
918 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
919 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
920 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
921 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]
922 ; AVX2-FP-NEXT:    vmovaps %ymm11, 64(%r9)
923 ; AVX2-FP-NEXT:    vmovaps %ymm10, 160(%r9)
924 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%r9)
925 ; AVX2-FP-NEXT:    vmovaps %ymm9, 192(%r9)
926 ; AVX2-FP-NEXT:    vmovaps %ymm5, 256(%r9)
927 ; AVX2-FP-NEXT:    vmovaps %ymm8, 224(%r9)
928 ; AVX2-FP-NEXT:    vmovaps %ymm7, (%r9)
929 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%r9)
930 ; AVX2-FP-NEXT:    vmovaps %ymm13, 128(%r9)
931 ; AVX2-FP-NEXT:    vmovaps %ymm12, 288(%r9)
932 ; AVX2-FP-NEXT:    vzeroupper
933 ; AVX2-FP-NEXT:    retq
935 ; AVX2-FCP-LABEL: store_i64_stride5_vf8:
936 ; AVX2-FCP:       # %bb.0:
937 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm5
938 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
939 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm1
940 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm4
941 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm2
942 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm6
943 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm7
944 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm10
945 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm3
946 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rsi), %ymm8
947 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm0[0,1,2,3],ymm8[4,5,6,7]
948 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm8[0,1,2,3,4,5],ymm3[6,7]
949 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3,4,5,6,7]
950 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm8
951 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm11
952 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm8, %ymm8
953 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm9
954 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm12
955 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm9, %ymm7
956 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm7 = ymm7[0],ymm8[0],ymm7[2],ymm8[2]
957 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
958 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm5[0],mem[0],ymm5[2],mem[2]
959 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm9[4,5,6,7]
960 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3],ymm8[4,5,6,7]
961 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm9
962 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rsi), %ymm13
963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
964 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm13[0,1,2,3,4,5],ymm9[6,7]
965 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm6[0,1],ymm9[2,3,4,5,6,7]
966 ; AVX2-FCP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm11, %ymm11
967 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm12, %ymm10
968 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm10[0],ymm11[0],ymm10[2],ymm11[2]
969 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
970 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm0[0],mem[0],ymm0[2],mem[2]
971 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
972 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm2[2,3],ymm11[4,5,6,7]
973 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rsi), %ymm12
974 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
975 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm13
976 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
977 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm6[6,7]
978 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm13 = ymm1[1],ymm4[1],ymm1[3],ymm4[3]
979 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm13 = ymm13[0,2,3,3]
980 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rsi), %ymm14
981 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm14[0,1],ymm13[2,3,4,5,6,7]
982 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],ymm2[6,7]
983 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
984 ; AVX2-FCP-NEXT:    vbroadcastsd 48(%rcx), %ymm14
985 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm14[2,3],ymm5[4,5,6,7]
986 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
987 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
988 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm1[2,3],ymm0[2,3]
989 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5],ymm0[6,7]
990 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 64(%r9)
991 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 160(%r9)
992 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%r9)
993 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 192(%r9)
994 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 256(%r9)
995 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 224(%r9)
996 ; AVX2-FCP-NEXT:    vmovaps %ymm7, (%r9)
997 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%r9)
998 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 128(%r9)
999 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 288(%r9)
1000 ; AVX2-FCP-NEXT:    vzeroupper
1001 ; AVX2-FCP-NEXT:    retq
1003 ; AVX512-LABEL: store_i64_stride5_vf8:
1004 ; AVX512:       # %bb.0:
1005 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm2
1006 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm3
1007 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm4
1008 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm5
1009 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm0
1010 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1011 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1012 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1013 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1014 ; AVX512-NEXT:    movb $49, %al
1015 ; AVX512-NEXT:    kmovw %eax, %k1
1016 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1017 ; AVX512-NEXT:    movb $8, %al
1018 ; AVX512-NEXT:    kmovw %eax, %k2
1019 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1020 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1021 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1022 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1023 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1024 ; AVX512-NEXT:    movb $-116, %al
1025 ; AVX512-NEXT:    kmovw %eax, %k2
1026 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1027 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1028 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1029 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1030 ; AVX512-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1031 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1032 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1033 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1034 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1035 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1036 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1037 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1038 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1039 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1040 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1041 ; AVX512-NEXT:    movb $24, %al
1042 ; AVX512-NEXT:    kmovw %eax, %k1
1043 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1044 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1045 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1046 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1047 ; AVX512-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1048 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1049 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1050 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1051 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1052 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1053 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1054 ; AVX512-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1055 ; AVX512-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1056 ; AVX512-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1057 ; AVX512-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1058 ; AVX512-NEXT:    vmovdqa64 %zmm6, (%r9)
1059 ; AVX512-NEXT:    vzeroupper
1060 ; AVX512-NEXT:    retq
1062 ; AVX512-FCP-LABEL: store_i64_stride5_vf8:
1063 ; AVX512-FCP:       # %bb.0:
1064 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm2
1065 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm3
1066 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
1067 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
1068 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
1069 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1070 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1071 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1072 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1073 ; AVX512-FCP-NEXT:    movb $49, %al
1074 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
1075 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1076 ; AVX512-FCP-NEXT:    movb $8, %al
1077 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
1078 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1079 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1080 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1081 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1082 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1083 ; AVX512-FCP-NEXT:    movb $-116, %al
1084 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
1085 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1086 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1087 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1088 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1089 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1090 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1091 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1092 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1093 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1094 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1095 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1096 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1097 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1098 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1099 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1100 ; AVX512-FCP-NEXT:    movb $24, %al
1101 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
1102 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1103 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1104 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1105 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1106 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1107 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1108 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1109 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1110 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1111 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1112 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1113 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1114 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1115 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1116 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1117 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, (%r9)
1118 ; AVX512-FCP-NEXT:    vzeroupper
1119 ; AVX512-FCP-NEXT:    retq
1121 ; AVX512DQ-LABEL: store_i64_stride5_vf8:
1122 ; AVX512DQ:       # %bb.0:
1123 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm2
1124 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm3
1125 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm4
1126 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm5
1127 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm0
1128 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1129 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1130 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1131 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1132 ; AVX512DQ-NEXT:    movb $49, %al
1133 ; AVX512DQ-NEXT:    kmovw %eax, %k1
1134 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1135 ; AVX512DQ-NEXT:    movb $8, %al
1136 ; AVX512DQ-NEXT:    kmovw %eax, %k2
1137 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1138 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1139 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1140 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1141 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1142 ; AVX512DQ-NEXT:    movb $-116, %al
1143 ; AVX512DQ-NEXT:    kmovw %eax, %k2
1144 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1145 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1146 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1147 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1148 ; AVX512DQ-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1149 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1150 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1151 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1152 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1153 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1154 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1155 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1156 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1157 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1158 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1159 ; AVX512DQ-NEXT:    movb $24, %al
1160 ; AVX512DQ-NEXT:    kmovw %eax, %k1
1161 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1162 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1163 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1164 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1165 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1166 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1167 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1168 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1169 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1170 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1171 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1172 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1173 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1174 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1176 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, (%r9)
1177 ; AVX512DQ-NEXT:    vzeroupper
1178 ; AVX512DQ-NEXT:    retq
1180 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf8:
1181 ; AVX512DQ-FCP:       # %bb.0:
1182 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm2
1183 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm3
1184 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
1185 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
1186 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
1187 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1188 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1189 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1190 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1191 ; AVX512DQ-FCP-NEXT:    movb $49, %al
1192 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
1193 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1194 ; AVX512DQ-FCP-NEXT:    movb $8, %al
1195 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
1196 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1197 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1198 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1199 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1200 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1201 ; AVX512DQ-FCP-NEXT:    movb $-116, %al
1202 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
1203 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1204 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1205 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1206 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1207 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1208 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1209 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1210 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1211 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1212 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1213 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1214 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1215 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1216 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1217 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1218 ; AVX512DQ-FCP-NEXT:    movb $24, %al
1219 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
1220 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1221 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1222 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1223 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1224 ; AVX512DQ-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1225 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1226 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1227 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1228 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1229 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1230 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1231 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1232 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1233 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1234 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1235 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, (%r9)
1236 ; AVX512DQ-FCP-NEXT:    vzeroupper
1237 ; AVX512DQ-FCP-NEXT:    retq
1239 ; AVX512BW-LABEL: store_i64_stride5_vf8:
1240 ; AVX512BW:       # %bb.0:
1241 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm2
1242 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm3
1243 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm4
1244 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm5
1245 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
1246 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1247 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1248 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1249 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1250 ; AVX512BW-NEXT:    movb $49, %al
1251 ; AVX512BW-NEXT:    kmovd %eax, %k1
1252 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1253 ; AVX512BW-NEXT:    movb $8, %al
1254 ; AVX512BW-NEXT:    kmovd %eax, %k2
1255 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1256 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1257 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1258 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1259 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1260 ; AVX512BW-NEXT:    movb $-116, %al
1261 ; AVX512BW-NEXT:    kmovd %eax, %k2
1262 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1263 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1264 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1265 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1266 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1267 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1268 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1269 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1270 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1271 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1272 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1273 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1274 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1275 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1276 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1277 ; AVX512BW-NEXT:    movb $24, %al
1278 ; AVX512BW-NEXT:    kmovd %eax, %k1
1279 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1280 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1281 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1282 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1283 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1284 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1285 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1286 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1287 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1288 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1289 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1290 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1291 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1292 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1293 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1294 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%r9)
1295 ; AVX512BW-NEXT:    vzeroupper
1296 ; AVX512BW-NEXT:    retq
1298 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf8:
1299 ; AVX512BW-FCP:       # %bb.0:
1300 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm2
1301 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm3
1302 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
1303 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
1304 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
1305 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1306 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1307 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1308 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1309 ; AVX512BW-FCP-NEXT:    movb $49, %al
1310 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
1311 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1312 ; AVX512BW-FCP-NEXT:    movb $8, %al
1313 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
1314 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1315 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1316 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1317 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1318 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1319 ; AVX512BW-FCP-NEXT:    movb $-116, %al
1320 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
1321 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1322 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1323 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1324 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1325 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1326 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1327 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1328 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1329 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1330 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1331 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1332 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1333 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1334 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1335 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1336 ; AVX512BW-FCP-NEXT:    movb $24, %al
1337 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
1338 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1339 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1340 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1341 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1342 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1343 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1344 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1345 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1346 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1347 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1348 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1349 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1350 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1351 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1352 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1353 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, (%r9)
1354 ; AVX512BW-FCP-NEXT:    vzeroupper
1355 ; AVX512BW-FCP-NEXT:    retq
1357 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf8:
1358 ; AVX512DQ-BW:       # %bb.0:
1359 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm2
1360 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm3
1361 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm4
1362 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm5
1363 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm0
1364 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1365 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1366 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1367 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1368 ; AVX512DQ-BW-NEXT:    movb $49, %al
1369 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
1370 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1371 ; AVX512DQ-BW-NEXT:    movb $8, %al
1372 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
1373 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1374 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1375 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1376 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1377 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1378 ; AVX512DQ-BW-NEXT:    movb $-116, %al
1379 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
1380 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1381 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1382 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1383 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1384 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1385 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1386 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1387 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1388 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1389 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1390 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1391 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1392 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1393 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1394 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1395 ; AVX512DQ-BW-NEXT:    movb $24, %al
1396 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
1397 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1398 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1399 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1400 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1401 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1402 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1403 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1404 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1405 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1406 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1407 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1408 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1409 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1410 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1411 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1412 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, (%r9)
1413 ; AVX512DQ-BW-NEXT:    vzeroupper
1414 ; AVX512DQ-BW-NEXT:    retq
1416 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf8:
1417 ; AVX512DQ-BW-FCP:       # %bb.0:
1418 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm2
1419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm3
1420 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
1421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
1422 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
1423 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [3,0,0,0,12,4,0,0]
1424 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm6
1425 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,3,11,0,0,0,4,12]
1426 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm1
1427 ; AVX512DQ-BW-FCP-NEXT:    movb $49, %al
1428 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
1429 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1 {%k1}
1430 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
1431 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
1432 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
1433 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,0,0,8,0,0,0,1]
1434 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1435 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,8,0,0,0,1,9,0]
1436 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm7
1437 ; AVX512DQ-BW-FCP-NEXT:    movb $-116, %al
1438 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
1439 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm7 {%k2}
1440 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,8,5,6,7]
1441 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm7, %zmm6
1442 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [1,0,0,0,10,2,0,0]
1443 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm7
1444 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,0,2,10,0,0,0,3]
1445 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
1446 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm8 {%k1}
1447 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,9,2,3,4,5,10,7]
1448 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm7
1449 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [13,5,13,5,13,5,13,5]
1450 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1451 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1452 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,5,13,0,0,0,6,14]
1453 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1454 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %al
1455 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
1456 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1457 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,1,2,3,4,13,6,7]
1458 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
1459 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
1460 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1461 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1462 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [6,14,0,0,0,7,15,0]
1463 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm2
1464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
1465 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,14,3,4,5,6,15]
1466 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
1467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 256(%r9)
1468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 192(%r9)
1469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 128(%r9)
1470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%r9)
1471 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, (%r9)
1472 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
1473 ; AVX512DQ-BW-FCP-NEXT:    retq
1474   %in.vec0 = load <8 x i64>, ptr %in.vecptr0, align 64
1475   %in.vec1 = load <8 x i64>, ptr %in.vecptr1, align 64
1476   %in.vec2 = load <8 x i64>, ptr %in.vecptr2, align 64
1477   %in.vec3 = load <8 x i64>, ptr %in.vecptr3, align 64
1478   %in.vec4 = load <8 x i64>, ptr %in.vecptr4, align 64
1479   %1 = shufflevector <8 x i64> %in.vec0, <8 x i64> %in.vec1, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1480   %2 = shufflevector <8 x i64> %in.vec2, <8 x i64> %in.vec3, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
1481   %3 = shufflevector <16 x i64> %1, <16 x i64> %2, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
1482   %4 = shufflevector <8 x i64> %in.vec4, <8 x i64> 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>
1483   %5 = shufflevector <32 x i64> %3, <32 x i64> %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>
1484   %interleaved.vec = shufflevector <40 x i64> %5, <40 x i64> 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>
1485   store <40 x i64> %interleaved.vec, ptr %out.vec, align 64
1486   ret void
1489 define void @store_i64_stride5_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
1490 ; SSE-LABEL: store_i64_stride5_vf16:
1491 ; SSE:       # %bb.0:
1492 ; SSE-NEXT:    subq $280, %rsp # imm = 0x118
1493 ; SSE-NEXT:    movapd (%rdi), %xmm3
1494 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
1495 ; SSE-NEXT:    movapd 32(%rdi), %xmm6
1496 ; SSE-NEXT:    movapd (%rsi), %xmm5
1497 ; SSE-NEXT:    movapd 16(%rsi), %xmm8
1498 ; SSE-NEXT:    movapd 32(%rsi), %xmm10
1499 ; SSE-NEXT:    movapd (%rdx), %xmm7
1500 ; SSE-NEXT:    movapd 16(%rdx), %xmm9
1501 ; SSE-NEXT:    movapd 32(%rdx), %xmm12
1502 ; SSE-NEXT:    movapd (%rcx), %xmm11
1503 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
1504 ; SSE-NEXT:    movapd 32(%rcx), %xmm15
1505 ; SSE-NEXT:    movapd (%r8), %xmm0
1506 ; SSE-NEXT:    movapd 16(%r8), %xmm1
1507 ; SSE-NEXT:    movapd 32(%r8), %xmm2
1508 ; SSE-NEXT:    movapd %xmm3, %xmm14
1509 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm5[0]
1510 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1511 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
1512 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1513 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
1514 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1515 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm11[0]
1516 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1517 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm0[1]
1518 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1519 ; SSE-NEXT:    movapd %xmm4, %xmm0
1520 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm8[0]
1521 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1522 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
1523 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1524 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
1525 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1526 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm13[0]
1527 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1528 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
1529 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1530 ; SSE-NEXT:    movapd %xmm6, %xmm0
1531 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm10[0]
1532 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1533 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm2[0],xmm6[1]
1534 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1535 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]
1536 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1537 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm15[0]
1538 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1539 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm2[1]
1540 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1541 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
1542 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
1543 ; SSE-NEXT:    movapd %xmm1, %xmm0
1544 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1545 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1546 ; SSE-NEXT:    movapd 48(%r8), %xmm0
1547 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1548 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
1549 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
1550 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1551 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1552 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
1553 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
1554 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1555 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
1556 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1557 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
1558 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
1559 ; SSE-NEXT:    movapd %xmm1, %xmm0
1560 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
1561 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1562 ; SSE-NEXT:    movapd 64(%r8), %xmm0
1563 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
1564 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1565 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
1566 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1567 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1568 ; SSE-NEXT:    movapd 64(%rcx), %xmm15
1569 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
1570 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1571 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
1572 ; SSE-NEXT:    movapd 80(%rdi), %xmm14
1573 ; SSE-NEXT:    movapd 80(%rsi), %xmm13
1574 ; SSE-NEXT:    movapd %xmm14, %xmm0
1575 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
1576 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1577 ; SSE-NEXT:    movapd 80(%r8), %xmm0
1578 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
1579 ; SSE-NEXT:    movapd 80(%rdx), %xmm10
1580 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
1581 ; SSE-NEXT:    movapd 80(%rcx), %xmm9
1582 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
1583 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
1584 ; SSE-NEXT:    movapd 96(%rdi), %xmm11
1585 ; SSE-NEXT:    movapd 96(%rsi), %xmm8
1586 ; SSE-NEXT:    movapd %xmm11, %xmm12
1587 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
1588 ; SSE-NEXT:    movapd 96(%r8), %xmm2
1589 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
1590 ; SSE-NEXT:    movapd 96(%rdx), %xmm6
1591 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
1592 ; SSE-NEXT:    movapd 96(%rcx), %xmm3
1593 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
1594 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
1595 ; SSE-NEXT:    movapd 112(%rdi), %xmm4
1596 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
1597 ; SSE-NEXT:    movapd %xmm4, %xmm5
1598 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
1599 ; SSE-NEXT:    movapd 112(%r8), %xmm7
1600 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
1601 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
1602 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1603 ; SSE-NEXT:    movapd 112(%rcx), %xmm0
1604 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1605 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
1606 ; SSE-NEXT:    movapd %xmm0, 624(%r9)
1607 ; SSE-NEXT:    movapd %xmm2, 608(%r9)
1608 ; SSE-NEXT:    movapd %xmm4, 592(%r9)
1609 ; SSE-NEXT:    movapd %xmm1, 576(%r9)
1610 ; SSE-NEXT:    movapd %xmm5, 560(%r9)
1611 ; SSE-NEXT:    movapd %xmm3, 544(%r9)
1612 ; SSE-NEXT:    movapd %xmm8, 528(%r9)
1613 ; SSE-NEXT:    movapd %xmm11, 512(%r9)
1614 ; SSE-NEXT:    movapd %xmm6, 496(%r9)
1615 ; SSE-NEXT:    movapd %xmm12, 480(%r9)
1616 ; SSE-NEXT:    movapd %xmm9, 464(%r9)
1617 ; SSE-NEXT:    movapd %xmm13, 448(%r9)
1618 ; SSE-NEXT:    movapd %xmm14, 432(%r9)
1619 ; SSE-NEXT:    movapd %xmm10, 416(%r9)
1620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1621 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
1622 ; SSE-NEXT:    movapd %xmm15, 384(%r9)
1623 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1624 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
1625 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1626 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
1627 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1628 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
1629 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1630 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
1631 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1632 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
1633 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1634 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
1635 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1636 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
1637 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1638 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
1639 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1640 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
1641 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1642 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
1643 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1644 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
1645 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1646 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
1647 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1648 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
1649 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1650 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
1651 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1652 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
1653 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1654 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
1655 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1656 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
1657 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1658 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
1659 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1660 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
1661 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1662 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
1663 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1664 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
1665 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1666 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
1667 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1668 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
1669 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1670 ; SSE-NEXT:    movaps %xmm0, (%r9)
1671 ; SSE-NEXT:    addq $280, %rsp # imm = 0x118
1672 ; SSE-NEXT:    retq
1674 ; AVX-LABEL: store_i64_stride5_vf16:
1675 ; AVX:       # %bb.0:
1676 ; AVX-NEXT:    subq $216, %rsp
1677 ; AVX-NEXT:    vmovapd 32(%rdi), %ymm5
1678 ; AVX-NEXT:    vmovaps (%rdi), %ymm8
1679 ; AVX-NEXT:    vmovapd 96(%rdi), %ymm2
1680 ; AVX-NEXT:    vmovaps (%rcx), %ymm0
1681 ; AVX-NEXT:    vmovaps 64(%rcx), %ymm1
1682 ; AVX-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
1683 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm11
1684 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
1685 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
1686 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1687 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1688 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm7
1689 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm7[1],ymm1[3],ymm7[3]
1690 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1691 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1692 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm2[0],mem[0],ymm2[2],mem[2]
1693 ; AVX-NEXT:    vmovapd 96(%rcx), %xmm1
1694 ; AVX-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1695 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
1696 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
1697 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1698 ; AVX-NEXT:    vmovaps (%rdx), %xmm0
1699 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1700 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1701 ; AVX-NEXT:    vbroadcastsd 8(%rsi), %ymm1
1702 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm8[0,1,2,3],ymm1[4,5,6,7]
1703 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1704 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1705 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
1706 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1707 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm0
1708 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1709 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
1710 ; AVX-NEXT:    vbroadcastsd 40(%rsi), %ymm1
1711 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0,1],ymm1[2,3]
1712 ; AVX-NEXT:    vblendpd {{.*#+}} ymm13 = ymm1[0,1,2],ymm0[3]
1713 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
1714 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
1715 ; AVX-NEXT:    vblendpd {{.*#+}} ymm15 = ymm0[0,1],ymm1[2,3]
1716 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm0
1717 ; AVX-NEXT:    vbroadcastsd 72(%rsi), %ymm1
1718 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1719 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm10
1720 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm3
1721 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm1[0,1,2,3,4,5],ymm3[6,7]
1722 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
1723 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],mem[0],ymm0[2],mem[2]
1724 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
1725 ; AVX-NEXT:    vbroadcastsd 104(%rsi), %ymm3
1726 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm2[0,1],ymm3[2,3]
1727 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm14
1728 ; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm9
1729 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm9[3]
1730 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm11[0],mem[0]
1731 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1,2,3],ymm8[4,5,6,7]
1732 ; AVX-NEXT:    vmovaps (%r8), %ymm9
1733 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm11 # 32-byte Folded Reload
1734 ; AVX-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm9[6,7]
1735 ; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1736 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1],ymm12[2,3,4,5,6,7]
1737 ; AVX-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1738 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm9[2,3],ymm6[4,5,6,7]
1739 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1740 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm8[0,1,2,3],ymm9[4,5],ymm8[6,7]
1741 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1742 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
1743 ; AVX-NEXT:    vmovapd 48(%rdx), %xmm6
1744 ; AVX-NEXT:    vshufpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[3]
1745 ; AVX-NEXT:    vmovapd 48(%rsi), %xmm8
1746 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm8[1],xmm6[1]
1747 ; AVX-NEXT:    vbroadcastsd 56(%rcx), %ymm8
1748 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2,3]
1749 ; AVX-NEXT:    vmovapd 32(%r8), %ymm8
1750 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm8[0],ymm13[1,2,3]
1751 ; AVX-NEXT:    vmovupd %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1752 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm15[0],ymm8[1],ymm15[2,3]
1753 ; AVX-NEXT:    vmovupd %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1754 ; AVX-NEXT:    vblendpd {{.*#+}} ymm11 = ymm5[0,1],ymm8[2],ymm5[3]
1755 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm8[3]
1756 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1757 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm7[0],mem[0]
1758 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
1759 ; AVX-NEXT:    vmovaps 64(%r8), %ymm9
1760 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm5 # 32-byte Folded Reload
1761 ; AVX-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm9[6,7]
1762 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1763 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm9[0,1],ymm4[2,3,4,5,6,7]
1764 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm9[2,3],ymm1[4,5,6,7]
1765 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]
1766 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = mem[2,3],ymm2[2,3]
1767 ; AVX-NEXT:    vmovapd 112(%rdx), %xmm2
1768 ; AVX-NEXT:    vshufpd {{.*#+}} ymm9 = ymm2[0],ymm1[0],ymm2[2],ymm1[3]
1769 ; AVX-NEXT:    vmovapd 112(%rsi), %xmm1
1770 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
1771 ; AVX-NEXT:    vbroadcastsd 120(%rcx), %ymm2
1772 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm1[0,1],ymm2[2,3]
1773 ; AVX-NEXT:    vmovapd 96(%r8), %ymm0
1774 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
1775 ; AVX-NEXT:    # ymm4 = mem[0],ymm0[1],mem[2,3]
1776 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm0[0],ymm3[1,2,3]
1777 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],ymm0[2],ymm9[3]
1778 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1,2],ymm0[3]
1779 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm14, %xmm1 # 16-byte Folded Reload
1780 ; AVX-NEXT:    # xmm1 = xmm14[0],mem[0]
1781 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm14
1782 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
1783 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
1784 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm12
1785 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
1786 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1787 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
1788 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm13
1789 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
1790 ; AVX-NEXT:    vmovaps (%rdi), %xmm15
1791 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
1792 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
1793 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
1794 ; AVX-NEXT:    vmovaps %xmm8, 16(%r9)
1795 ; AVX-NEXT:    vmovaps %xmm15, (%r9)
1796 ; AVX-NEXT:    vmovaps %xmm1, 496(%r9)
1797 ; AVX-NEXT:    vmovaps %xmm13, 480(%r9)
1798 ; AVX-NEXT:    vmovaps %xmm0, 176(%r9)
1799 ; AVX-NEXT:    vmovaps %xmm12, 160(%r9)
1800 ; AVX-NEXT:    vmovaps %xmm10, 336(%r9)
1801 ; AVX-NEXT:    vmovaps %xmm14, 320(%r9)
1802 ; AVX-NEXT:    vmovapd %ymm9, 576(%r9)
1803 ; AVX-NEXT:    vmovapd %ymm3, 512(%r9)
1804 ; AVX-NEXT:    vmovaps %ymm5, 384(%r9)
1805 ; AVX-NEXT:    vmovaps %ymm7, 352(%r9)
1806 ; AVX-NEXT:    vmovapd %ymm11, 256(%r9)
1807 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1808 ; AVX-NEXT:    vmovaps %ymm0, 224(%r9)
1809 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1810 ; AVX-NEXT:    vmovaps %ymm0, 192(%r9)
1811 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1812 ; AVX-NEXT:    vmovaps %ymm0, 64(%r9)
1813 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1814 ; AVX-NEXT:    vmovaps %ymm0, 32(%r9)
1815 ; AVX-NEXT:    vmovapd %ymm2, 608(%r9)
1816 ; AVX-NEXT:    vmovapd %ymm4, 544(%r9)
1817 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1818 ; AVX-NEXT:    vmovaps %ymm0, 448(%r9)
1819 ; AVX-NEXT:    vmovaps %ymm6, 416(%r9)
1820 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1821 ; AVX-NEXT:    vmovaps %ymm0, 288(%r9)
1822 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1823 ; AVX-NEXT:    vmovaps %ymm0, 128(%r9)
1824 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1825 ; AVX-NEXT:    vmovaps %ymm0, 96(%r9)
1826 ; AVX-NEXT:    addq $216, %rsp
1827 ; AVX-NEXT:    vzeroupper
1828 ; AVX-NEXT:    retq
1830 ; AVX2-LABEL: store_i64_stride5_vf16:
1831 ; AVX2:       # %bb.0:
1832 ; AVX2-NEXT:    subq $264, %rsp # imm = 0x108
1833 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm15
1834 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm14
1835 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm11
1836 ; AVX2-NEXT:    vmovaps (%rdi), %ymm6
1837 ; AVX2-NEXT:    vmovaps (%rsi), %xmm1
1838 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm9
1839 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm0
1840 ; AVX2-NEXT:    vmovaps 96(%rsi), %xmm3
1841 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm7
1842 ; AVX2-NEXT:    vmovaps (%rdi), %xmm8
1843 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm10
1844 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm1
1845 ; AVX2-NEXT:    vmovaps (%rdx), %xmm12
1846 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm13
1847 ; AVX2-NEXT:    vmovaps 64(%rdx), %xmm2
1848 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm8
1849 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
1850 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1851 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
1852 ; AVX2-NEXT:    vbroadcastsd 8(%rsi), %ymm8
1853 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1,2,3],ymm8[4,5,6,7]
1854 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm7[6,7]
1855 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
1856 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm6[0],mem[0],ymm6[2],mem[2]
1857 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm12[4,5,6,7]
1858 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1859 ; AVX2-NEXT:    vinsertf128 $1, 32(%rcx), %ymm9, %ymm9
1860 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm10, %ymm10
1861 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
1862 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1863 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm9
1864 ; AVX2-NEXT:    vbroadcastsd 40(%rsi), %ymm10
1865 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
1866 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3,4,5],ymm9[6,7]
1867 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1868 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1869 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm11[0],mem[0],ymm11[2],mem[2]
1870 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm12[4,5,6,7]
1871 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1872 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
1873 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
1874 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1875 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1876 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1877 ; AVX2-NEXT:    vbroadcastsd 72(%rsi), %ymm1
1878 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
1879 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1880 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1881 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
1882 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
1883 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1884 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
1885 ; AVX2-NEXT:    vinsertf128 $1, 96(%rcx), %ymm3, %ymm0
1886 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm1
1887 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm2
1888 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
1889 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1890 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1891 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
1892 ; AVX2-NEXT:    vbroadcastsd 104(%rsi), %ymm1
1893 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
1894 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
1895 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1896 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
1897 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],mem[0],ymm15[2],mem[2]
1898 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1899 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1900 ; AVX2-NEXT:    vbroadcastsd 56(%rsi), %ymm0
1901 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
1902 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm1
1903 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm1[4,5,6,7]
1904 ; AVX2-NEXT:    vbroadcastsd 120(%rsi), %ymm1
1905 ; AVX2-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
1906 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm2
1907 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
1908 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1909 ; AVX2-NEXT:    vmovaps (%rdx), %ymm1
1910 ; AVX2-NEXT:    vmovaps (%rcx), %ymm0
1911 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
1912 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
1913 ; AVX2-NEXT:    vbroadcastsd 24(%rsi), %ymm8
1914 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm7[2,3,4,5,6,7]
1915 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm3
1916 ; AVX2-NEXT:    vmovaps 64(%rcx), %ymm2
1917 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
1918 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
1919 ; AVX2-NEXT:    vbroadcastsd 88(%rsi), %ymm8
1920 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5,6,7]
1921 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
1922 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm6[2,3]
1923 ; AVX2-NEXT:    vmovaps (%r8), %ymm1
1924 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1],ymm5[2,3,4,5,6,7]
1925 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
1926 ; AVX2-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
1927 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm1[6,7]
1928 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1929 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
1930 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm11[2,3]
1931 ; AVX2-NEXT:    vbroadcastsd 48(%rcx), %ymm11
1932 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1],ymm11[2,3],ymm0[4,5,6,7]
1933 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm0
1934 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
1935 ; AVX2-NEXT:    # ymm8 = ymm0[0,1],mem[2,3,4,5,6,7]
1936 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
1937 ; AVX2-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
1938 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
1939 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
1940 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
1941 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm14[2,3]
1942 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm3
1943 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm11 # 32-byte Folded Reload
1944 ; AVX2-NEXT:    # ymm11 = ymm3[0,1],mem[2,3,4,5,6,7]
1945 ; AVX2-NEXT:    vblendps $243, (%rsp), %ymm3, %ymm14 # 32-byte Folded Reload
1946 ; AVX2-NEXT:    # ymm14 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
1947 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm3[6,7]
1948 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
1949 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm15[2,3]
1950 ; AVX2-NEXT:    vbroadcastsd 112(%rcx), %ymm15
1951 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm15[2,3],ymm3[4,5,6,7]
1952 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm15
1953 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
1954 ; AVX2-NEXT:    # ymm1 = ymm15[0,1],mem[2,3,4,5,6,7]
1955 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
1956 ; AVX2-NEXT:    # ymm0 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
1957 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload
1958 ; AVX2-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm15[6,7]
1959 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm15[4,5],ymm3[6,7]
1960 ; AVX2-NEXT:    vmovaps %ymm3, 576(%r9)
1961 ; AVX2-NEXT:    vmovaps %ymm0, 544(%r9)
1962 ; AVX2-NEXT:    vmovaps %ymm1, 512(%r9)
1963 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1964 ; AVX2-NEXT:    vmovaps %ymm0, 480(%r9)
1965 ; AVX2-NEXT:    vmovaps %ymm2, 416(%r9)
1966 ; AVX2-NEXT:    vmovaps %ymm14, 384(%r9)
1967 ; AVX2-NEXT:    vmovaps %ymm11, 352(%r9)
1968 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1969 ; AVX2-NEXT:    vmovaps %ymm0, 320(%r9)
1970 ; AVX2-NEXT:    vmovaps %ymm5, 256(%r9)
1971 ; AVX2-NEXT:    vmovaps %ymm6, 224(%r9)
1972 ; AVX2-NEXT:    vmovaps %ymm8, 192(%r9)
1973 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1974 ; AVX2-NEXT:    vmovaps %ymm0, 160(%r9)
1975 ; AVX2-NEXT:    vmovaps %ymm10, 96(%r9)
1976 ; AVX2-NEXT:    vmovaps %ymm12, 64(%r9)
1977 ; AVX2-NEXT:    vmovaps %ymm13, 32(%r9)
1978 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1979 ; AVX2-NEXT:    vmovaps %ymm0, (%r9)
1980 ; AVX2-NEXT:    vmovaps %ymm7, 448(%r9)
1981 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1982 ; AVX2-NEXT:    vmovaps %ymm0, 128(%r9)
1983 ; AVX2-NEXT:    vmovaps %ymm4, 608(%r9)
1984 ; AVX2-NEXT:    vmovaps %ymm9, 288(%r9)
1985 ; AVX2-NEXT:    addq $264, %rsp # imm = 0x108
1986 ; AVX2-NEXT:    vzeroupper
1987 ; AVX2-NEXT:    retq
1989 ; AVX2-FP-LABEL: store_i64_stride5_vf16:
1990 ; AVX2-FP:       # %bb.0:
1991 ; AVX2-FP-NEXT:    subq $264, %rsp # imm = 0x108
1992 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm15
1993 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm14
1994 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm11
1995 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm6
1996 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm1
1997 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm9
1998 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm0
1999 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %xmm3
2000 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm7
2001 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm8
2002 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm10
2003 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm1
2004 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm12
2005 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm13
2006 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %xmm2
2007 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm8
2008 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
2009 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2010 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
2011 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rsi), %ymm8
2012 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1,2,3],ymm8[4,5,6,7]
2013 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm7[6,7]
2014 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
2015 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm6[0],mem[0],ymm6[2],mem[2]
2016 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm12[4,5,6,7]
2017 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2018 ; AVX2-FP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm9, %ymm9
2019 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm10, %ymm10
2020 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
2021 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2022 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm9
2023 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rsi), %ymm10
2024 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
2025 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3,4,5],ymm9[6,7]
2026 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2027 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
2028 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm11[0],mem[0],ymm11[2],mem[2]
2029 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm12[4,5,6,7]
2030 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2031 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
2032 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2033 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2034 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2035 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2036 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rsi), %ymm1
2037 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
2038 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2039 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2040 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2041 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
2042 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2043 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2044 ; AVX2-FP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm3, %ymm0
2045 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm1
2046 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm2
2047 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2048 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2049 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2050 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2051 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
2052 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
2053 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2054 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2055 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2056 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],mem[0],ymm15[2],mem[2]
2057 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2058 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2059 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
2060 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2061 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
2062 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2063 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rsi), %ymm1
2064 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
2065 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm2
2066 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2067 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2068 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm1
2069 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm0
2070 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
2071 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
2072 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rsi), %ymm8
2073 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm7[2,3,4,5,6,7]
2074 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm3
2075 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %ymm2
2076 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
2077 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
2078 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rsi), %ymm8
2079 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5,6,7]
2080 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2081 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm6[2,3]
2082 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm1
2083 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1],ymm5[2,3,4,5,6,7]
2084 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
2085 ; AVX2-FP-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2086 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm1[6,7]
2087 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2088 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2089 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm11[2,3]
2090 ; AVX2-FP-NEXT:    vbroadcastsd 48(%rcx), %ymm11
2091 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1],ymm11[2,3],ymm0[4,5,6,7]
2092 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm0
2093 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
2094 ; AVX2-FP-NEXT:    # ymm8 = ymm0[0,1],mem[2,3,4,5,6,7]
2095 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
2096 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
2097 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
2098 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
2099 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
2100 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm14[2,3]
2101 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm3
2102 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm11 # 32-byte Folded Reload
2103 ; AVX2-FP-NEXT:    # ymm11 = ymm3[0,1],mem[2,3,4,5,6,7]
2104 ; AVX2-FP-NEXT:    vblendps $243, (%rsp), %ymm3, %ymm14 # 32-byte Folded Reload
2105 ; AVX2-FP-NEXT:    # ymm14 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
2106 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm3[6,7]
2107 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
2108 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm15[2,3]
2109 ; AVX2-FP-NEXT:    vbroadcastsd 112(%rcx), %ymm15
2110 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm15[2,3],ymm3[4,5,6,7]
2111 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm15
2112 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
2113 ; AVX2-FP-NEXT:    # ymm1 = ymm15[0,1],mem[2,3,4,5,6,7]
2114 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
2115 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
2116 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload
2117 ; AVX2-FP-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm15[6,7]
2118 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm15[4,5],ymm3[6,7]
2119 ; AVX2-FP-NEXT:    vmovaps %ymm3, 576(%r9)
2120 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%r9)
2121 ; AVX2-FP-NEXT:    vmovaps %ymm1, 512(%r9)
2122 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2123 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%r9)
2124 ; AVX2-FP-NEXT:    vmovaps %ymm2, 416(%r9)
2125 ; AVX2-FP-NEXT:    vmovaps %ymm14, 384(%r9)
2126 ; AVX2-FP-NEXT:    vmovaps %ymm11, 352(%r9)
2127 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2128 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%r9)
2129 ; AVX2-FP-NEXT:    vmovaps %ymm5, 256(%r9)
2130 ; AVX2-FP-NEXT:    vmovaps %ymm6, 224(%r9)
2131 ; AVX2-FP-NEXT:    vmovaps %ymm8, 192(%r9)
2132 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2133 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%r9)
2134 ; AVX2-FP-NEXT:    vmovaps %ymm10, 96(%r9)
2135 ; AVX2-FP-NEXT:    vmovaps %ymm12, 64(%r9)
2136 ; AVX2-FP-NEXT:    vmovaps %ymm13, 32(%r9)
2137 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2138 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%r9)
2139 ; AVX2-FP-NEXT:    vmovaps %ymm7, 448(%r9)
2140 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2141 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%r9)
2142 ; AVX2-FP-NEXT:    vmovaps %ymm4, 608(%r9)
2143 ; AVX2-FP-NEXT:    vmovaps %ymm9, 288(%r9)
2144 ; AVX2-FP-NEXT:    addq $264, %rsp # imm = 0x108
2145 ; AVX2-FP-NEXT:    vzeroupper
2146 ; AVX2-FP-NEXT:    retq
2148 ; AVX2-FCP-LABEL: store_i64_stride5_vf16:
2149 ; AVX2-FCP:       # %bb.0:
2150 ; AVX2-FCP-NEXT:    subq $264, %rsp # imm = 0x108
2151 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm15
2152 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm14
2153 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm11
2154 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm6
2155 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm1
2156 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm9
2157 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm0
2158 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %xmm3
2159 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm7
2160 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm8
2161 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm10
2162 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm1
2163 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm12
2164 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm13
2165 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %xmm2
2166 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm8
2167 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm8[0],ymm7[0],ymm8[2],ymm7[2]
2168 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2169 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm7
2170 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rsi), %ymm8
2171 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1,2,3],ymm8[4,5,6,7]
2172 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm8[0,1,2,3,4,5],ymm7[6,7]
2173 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
2174 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm6[0],mem[0],ymm6[2],mem[2]
2175 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1,2,3],ymm12[4,5,6,7]
2176 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2177 ; AVX2-FCP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm9, %ymm9
2178 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm10, %ymm10
2179 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
2180 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2181 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm9
2182 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rsi), %ymm10
2183 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm11[0,1,2,3],ymm10[4,5,6,7]
2184 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3,4,5],ymm9[6,7]
2185 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2186 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
2187 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm11[0],mem[0],ymm11[2],mem[2]
2188 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm10[0,1,2,3],ymm12[4,5,6,7]
2189 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2190 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
2191 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2192 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2193 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2194 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2195 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rsi), %ymm1
2196 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
2197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2198 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2199 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2200 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
2201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2202 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
2203 ; AVX2-FCP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm3, %ymm0
2204 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm1
2205 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm2
2206 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
2207 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2208 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2209 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
2210 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
2211 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm15[0,1,2,3],ymm1[4,5,6,7]
2212 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2213 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2214 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
2215 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],mem[0],ymm15[2],mem[2]
2216 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2217 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2218 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
2219 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
2220 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
2221 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2222 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rsi), %ymm1
2223 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm1 = xmm1[0,1],mem[2,3]
2224 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm2
2225 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2226 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2227 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm1
2228 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm0
2229 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
2230 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
2231 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rsi), %ymm8
2232 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm8[0,1],ymm7[2,3,4,5,6,7]
2233 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm3
2234 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %ymm2
2235 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
2236 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
2237 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rsi), %ymm8
2238 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1],ymm7[2,3,4,5,6,7]
2239 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
2240 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm6[2,3]
2241 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm1
2242 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm1[0,1],ymm5[2,3,4,5,6,7]
2243 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
2244 ; AVX2-FCP-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
2245 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm1[6,7]
2246 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2247 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
2248 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm11[2,3]
2249 ; AVX2-FCP-NEXT:    vbroadcastsd 48(%rcx), %ymm11
2250 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm0[0,1],ymm11[2,3],ymm0[4,5,6,7]
2251 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm0
2252 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
2253 ; AVX2-FCP-NEXT:    # ymm8 = ymm0[0,1],mem[2,3,4,5,6,7]
2254 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm6 # 32-byte Folded Reload
2255 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
2256 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm0[6,7]
2257 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
2258 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
2259 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm14[2,3]
2260 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm3
2261 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm11 # 32-byte Folded Reload
2262 ; AVX2-FCP-NEXT:    # ymm11 = ymm3[0,1],mem[2,3,4,5,6,7]
2263 ; AVX2-FCP-NEXT:    vblendps $243, (%rsp), %ymm3, %ymm14 # 32-byte Folded Reload
2264 ; AVX2-FCP-NEXT:    # ymm14 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
2265 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm3[6,7]
2266 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
2267 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm15[2,3]
2268 ; AVX2-FCP-NEXT:    vbroadcastsd 112(%rcx), %ymm15
2269 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm15[2,3],ymm3[4,5,6,7]
2270 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm15
2271 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm1 # 32-byte Folded Reload
2272 ; AVX2-FCP-NEXT:    # ymm1 = ymm15[0,1],mem[2,3,4,5,6,7]
2273 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
2274 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
2275 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm4 # 32-byte Folded Reload
2276 ; AVX2-FCP-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm15[6,7]
2277 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm15[4,5],ymm3[6,7]
2278 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 576(%r9)
2279 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%r9)
2280 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 512(%r9)
2281 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2282 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%r9)
2283 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 416(%r9)
2284 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 384(%r9)
2285 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 352(%r9)
2286 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2287 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%r9)
2288 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 256(%r9)
2289 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 224(%r9)
2290 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 192(%r9)
2291 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2292 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%r9)
2293 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 96(%r9)
2294 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 64(%r9)
2295 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 32(%r9)
2296 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2297 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%r9)
2298 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 448(%r9)
2299 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
2300 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%r9)
2301 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 608(%r9)
2302 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 288(%r9)
2303 ; AVX2-FCP-NEXT:    addq $264, %rsp # imm = 0x108
2304 ; AVX2-FCP-NEXT:    vzeroupper
2305 ; AVX2-FCP-NEXT:    retq
2307 ; AVX512-LABEL: store_i64_stride5_vf16:
2308 ; AVX512:       # %bb.0:
2309 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm1
2310 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm0
2311 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm2
2312 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm9
2313 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm6
2314 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm10
2315 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm5
2316 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm12
2317 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm4
2318 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm11
2319 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2320 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm13
2321 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2322 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2323 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm3
2324 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2325 ; AVX512-NEXT:    movb $49, %al
2326 ; AVX512-NEXT:    kmovw %eax, %k1
2327 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2328 ; AVX512-NEXT:    movb $8, %al
2329 ; AVX512-NEXT:    kmovw %eax, %k2
2330 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2331 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2332 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2333 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2334 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2335 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2336 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm13
2337 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2338 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2339 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm8
2340 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2341 ; AVX512-NEXT:    movb $-116, %al
2342 ; AVX512-NEXT:    kmovw %eax, %k3
2343 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2344 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2345 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2346 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2347 ; AVX512-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2348 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19
2349 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2350 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2351 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm13
2352 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2353 ; AVX512-NEXT:    movb $24, %al
2354 ; AVX512-NEXT:    kmovw %eax, %k2
2355 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2356 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2357 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2358 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2359 ; AVX512-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2360 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm21
2361 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2362 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2363 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23
2364 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2365 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2366 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2367 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2368 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2369 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm25
2370 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2371 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2372 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27
2373 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2374 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2375 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2376 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2377 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2378 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2379 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2380 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2381 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2382 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2383 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2384 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2385 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2386 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2387 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2388 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2389 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2390 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2391 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2392 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2393 ; AVX512-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2394 ; AVX512-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2395 ; AVX512-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2396 ; AVX512-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2397 ; AVX512-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2398 ; AVX512-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2399 ; AVX512-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2400 ; AVX512-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2401 ; AVX512-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2402 ; AVX512-NEXT:    vmovdqa64 %zmm8, (%r9)
2403 ; AVX512-NEXT:    vzeroupper
2404 ; AVX512-NEXT:    retq
2406 ; AVX512-FCP-LABEL: store_i64_stride5_vf16:
2407 ; AVX512-FCP:       # %bb.0:
2408 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
2409 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
2410 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
2411 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm9
2412 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm6
2413 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm10
2414 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
2415 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm12
2416 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
2417 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm11
2418 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2419 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm13
2420 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2421 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2422 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
2423 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2424 ; AVX512-FCP-NEXT:    movb $49, %al
2425 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
2426 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2427 ; AVX512-FCP-NEXT:    movb $8, %al
2428 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
2429 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2430 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2431 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2432 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2433 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2434 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2435 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
2436 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2437 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2438 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
2439 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2440 ; AVX512-FCP-NEXT:    movb $-116, %al
2441 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
2442 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2443 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2444 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2445 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2446 ; AVX512-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2447 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19
2448 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2449 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2450 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13
2451 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2452 ; AVX512-FCP-NEXT:    movb $24, %al
2453 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
2454 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2455 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2456 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2457 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2458 ; AVX512-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2459 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm21
2460 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2461 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2462 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
2463 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2464 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2465 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2466 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2467 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2468 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm25
2469 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2470 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2471 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
2472 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2473 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2474 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2475 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2476 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2477 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2478 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2479 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2480 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2481 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2482 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2483 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2484 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2485 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2486 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2487 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2488 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2489 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2491 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2492 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2493 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2494 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2495 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2496 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2497 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2498 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2499 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2500 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2501 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%r9)
2502 ; AVX512-FCP-NEXT:    vzeroupper
2503 ; AVX512-FCP-NEXT:    retq
2505 ; AVX512DQ-LABEL: store_i64_stride5_vf16:
2506 ; AVX512DQ:       # %bb.0:
2507 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm1
2508 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm0
2509 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm2
2510 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm9
2511 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm6
2512 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm10
2513 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm5
2514 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm12
2515 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm4
2516 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm11
2517 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2518 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm13
2519 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2520 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2521 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm3
2522 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2523 ; AVX512DQ-NEXT:    movb $49, %al
2524 ; AVX512DQ-NEXT:    kmovw %eax, %k1
2525 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2526 ; AVX512DQ-NEXT:    movb $8, %al
2527 ; AVX512DQ-NEXT:    kmovw %eax, %k2
2528 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2529 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2530 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2531 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2532 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2533 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2534 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm13
2535 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2536 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2537 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm8
2538 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2539 ; AVX512DQ-NEXT:    movb $-116, %al
2540 ; AVX512DQ-NEXT:    kmovw %eax, %k3
2541 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2542 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2543 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2544 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2545 ; AVX512DQ-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2546 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19
2547 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2548 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2549 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm13
2550 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2551 ; AVX512DQ-NEXT:    movb $24, %al
2552 ; AVX512DQ-NEXT:    kmovw %eax, %k2
2553 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2554 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2555 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2556 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2557 ; AVX512DQ-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2558 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm21
2559 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2560 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2561 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23
2562 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2563 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2564 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2565 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2566 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2567 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm25
2568 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2569 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2570 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm27
2571 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2572 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2573 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2574 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2575 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2576 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2577 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2578 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2579 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2580 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2581 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2582 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2583 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2584 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2585 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2586 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2587 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2588 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2589 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2590 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2591 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2592 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2593 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2594 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2595 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2596 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2597 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2598 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2599 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2600 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, (%r9)
2601 ; AVX512DQ-NEXT:    vzeroupper
2602 ; AVX512DQ-NEXT:    retq
2604 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf16:
2605 ; AVX512DQ-FCP:       # %bb.0:
2606 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
2607 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
2608 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
2609 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm9
2610 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm6
2611 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm10
2612 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
2613 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm12
2614 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
2615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm11
2616 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2617 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm13
2618 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2619 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2620 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
2621 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2622 ; AVX512DQ-FCP-NEXT:    movb $49, %al
2623 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
2624 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2625 ; AVX512DQ-FCP-NEXT:    movb $8, %al
2626 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
2627 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2628 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2629 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2630 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2631 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2632 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2633 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
2634 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2635 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2636 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
2637 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2638 ; AVX512DQ-FCP-NEXT:    movb $-116, %al
2639 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
2640 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2641 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2642 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2643 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2644 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2645 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19
2646 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2647 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2648 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13
2649 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2650 ; AVX512DQ-FCP-NEXT:    movb $24, %al
2651 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
2652 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2653 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2654 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2655 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2656 ; AVX512DQ-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2657 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm21
2658 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2659 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2660 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
2661 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2662 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2663 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2664 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2665 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2666 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm25
2667 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2668 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2669 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
2670 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2671 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2672 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2673 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2674 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2675 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2676 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2677 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2678 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2679 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2680 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2681 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2682 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2683 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2684 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2685 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2686 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2687 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2688 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2689 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2690 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2691 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2692 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2693 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2694 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2695 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2696 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2697 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2698 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2699 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%r9)
2700 ; AVX512DQ-FCP-NEXT:    vzeroupper
2701 ; AVX512DQ-FCP-NEXT:    retq
2703 ; AVX512BW-LABEL: store_i64_stride5_vf16:
2704 ; AVX512BW:       # %bb.0:
2705 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm1
2706 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
2707 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm2
2708 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm9
2709 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm6
2710 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm10
2711 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm5
2712 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm12
2713 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm4
2714 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm11
2715 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2716 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm13
2717 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2718 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2719 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm3
2720 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2721 ; AVX512BW-NEXT:    movb $49, %al
2722 ; AVX512BW-NEXT:    kmovd %eax, %k1
2723 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2724 ; AVX512BW-NEXT:    movb $8, %al
2725 ; AVX512BW-NEXT:    kmovd %eax, %k2
2726 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2727 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2728 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2729 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2730 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2731 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2732 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13
2733 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2734 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2735 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm8
2736 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2737 ; AVX512BW-NEXT:    movb $-116, %al
2738 ; AVX512BW-NEXT:    kmovd %eax, %k3
2739 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2740 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2741 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2742 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2743 ; AVX512BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2744 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19
2745 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2746 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2747 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm13
2748 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2749 ; AVX512BW-NEXT:    movb $24, %al
2750 ; AVX512BW-NEXT:    kmovd %eax, %k2
2751 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2752 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2753 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2754 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2755 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2756 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm21
2757 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2758 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2759 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23
2760 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2761 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2762 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2763 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2764 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2765 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm25
2766 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2767 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2768 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27
2769 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2770 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2771 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2772 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2773 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2774 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2775 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2776 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2777 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2778 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2779 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2780 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2781 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2782 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2783 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2784 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2785 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2786 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2787 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2788 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2789 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2790 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2791 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2792 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2793 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2794 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2795 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2796 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2797 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2798 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%r9)
2799 ; AVX512BW-NEXT:    vzeroupper
2800 ; AVX512BW-NEXT:    retq
2802 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf16:
2803 ; AVX512BW-FCP:       # %bb.0:
2804 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
2805 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
2806 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
2807 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm9
2808 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm6
2809 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm10
2810 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
2811 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm12
2812 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
2813 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm11
2814 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2815 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm13
2816 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2817 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2818 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
2819 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2820 ; AVX512BW-FCP-NEXT:    movb $49, %al
2821 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
2822 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2823 ; AVX512BW-FCP-NEXT:    movb $8, %al
2824 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
2825 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2826 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2827 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2828 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2829 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2830 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2831 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
2832 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2833 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2834 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
2835 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2836 ; AVX512BW-FCP-NEXT:    movb $-116, %al
2837 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
2838 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2839 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2840 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2841 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2842 ; AVX512BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2843 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19
2844 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2845 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2846 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13
2847 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2848 ; AVX512BW-FCP-NEXT:    movb $24, %al
2849 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
2850 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2851 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2852 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2853 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2854 ; AVX512BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2855 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm21
2856 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2857 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2858 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
2859 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2860 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2861 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2862 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2863 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2864 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm25
2865 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2866 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2867 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
2868 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2869 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2870 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2871 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2872 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2873 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2874 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2875 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2876 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2877 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2878 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2879 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2880 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2881 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2882 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2883 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2884 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2885 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2886 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2887 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2888 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2889 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2890 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2891 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2892 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2893 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2894 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2895 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2896 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2897 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%r9)
2898 ; AVX512BW-FCP-NEXT:    vzeroupper
2899 ; AVX512BW-FCP-NEXT:    retq
2901 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf16:
2902 ; AVX512DQ-BW:       # %bb.0:
2903 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm1
2904 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm0
2905 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm2
2906 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm9
2907 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm6
2908 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm10
2909 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm5
2910 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm12
2911 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm4
2912 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm11
2913 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
2914 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm13
2915 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
2916 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
2917 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm3
2918 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
2919 ; AVX512DQ-BW-NEXT:    movb $49, %al
2920 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
2921 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
2922 ; AVX512DQ-BW-NEXT:    movb $8, %al
2923 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
2924 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
2925 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
2926 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2927 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
2928 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
2929 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
2930 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm13
2931 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
2932 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
2933 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm8
2934 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
2935 ; AVX512DQ-BW-NEXT:    movb $-116, %al
2936 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
2937 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
2938 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
2939 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
2940 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
2941 ; AVX512DQ-BW-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2942 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19
2943 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
2944 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
2945 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm13
2946 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
2947 ; AVX512DQ-BW-NEXT:    movb $24, %al
2948 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
2949 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
2950 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
2951 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
2952 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
2953 ; AVX512DQ-BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2954 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm21
2955 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
2956 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
2957 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23
2958 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
2959 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
2960 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
2961 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
2962 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
2963 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm25
2964 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
2965 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
2966 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm27
2967 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
2968 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
2969 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
2970 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
2971 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
2972 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
2973 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
2974 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
2975 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
2976 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
2977 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
2978 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
2979 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
2980 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
2981 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
2982 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
2983 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
2984 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
2985 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
2986 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
2987 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 64(%r9)
2988 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 128(%r9)
2989 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 192(%r9)
2990 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 256(%r9)
2991 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 320(%r9)
2992 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, 384(%r9)
2993 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 448(%r9)
2994 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 512(%r9)
2995 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 576(%r9)
2996 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, (%r9)
2997 ; AVX512DQ-BW-NEXT:    vzeroupper
2998 ; AVX512DQ-BW-NEXT:    retq
3000 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf16:
3001 ; AVX512DQ-BW-FCP:       # %bb.0:
3002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm1
3003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
3004 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
3005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm9
3006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm6
3007 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm10
3008 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm5
3009 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm12
3010 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
3011 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm11
3012 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [3,0,0,0,12,4,0,0]
3013 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm13
3014 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
3015 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,3,11,0,0,0,4,12]
3016 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm3
3017 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm7, %zmm3
3018 ; AVX512DQ-BW-FCP-NEXT:    movb $49, %al
3019 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
3020 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3 {%k1}
3021 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
3022 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
3023 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k2}
3024 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm8
3025 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
3026 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
3027 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm7 {%k2}
3028 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,0,0,8,0,0,0,1]
3029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm13
3030 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm13
3031 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,8,0,0,0,1,9,0]
3032 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
3033 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm8
3034 ; AVX512DQ-BW-FCP-NEXT:    movb $-116, %al
3035 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
3036 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm8 {%k3}
3037 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,1,2,3,8,5,6,7]
3038 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm17, %zmm8
3039 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [15,7,15,7,15,7,15,7]
3040 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3041 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19
3042 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm18, %zmm19
3043 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [6,14,0,0,0,7,15,0]
3044 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm13
3045 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm14, %zmm13
3046 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %al
3047 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
3048 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm13 {%k2}
3049 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,1,14,3,4,5,6,15]
3050 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm19, %zmm13
3051 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [13,5,13,5,13,5,13,5]
3052 ; AVX512DQ-BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3053 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm21
3054 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm20, %zmm21
3055 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [0,5,13,0,0,0,6,14]
3056 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
3057 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm22, %zmm23
3058 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm23 {%k2}
3059 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [12,1,2,3,4,13,6,7]
3060 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm21, %zmm23
3061 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [1,0,0,0,10,2,0,0]
3062 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm25
3063 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm24, %zmm25
3064 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm26 = [0,0,2,10,0,0,0,3]
3065 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
3066 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm26, %zmm27
3067 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm27 {%k1}
3068 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [0,9,2,3,4,5,10,7]
3069 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm27
3070 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm15, %zmm10
3071 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm16, %zmm0
3072 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0 {%k3}
3073 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
3074 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm18
3075 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm14
3076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm14 {%k2}
3077 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm19, %zmm14
3078 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm6, %zmm20
3079 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm22
3080 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm22 {%k2}
3081 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm22
3082 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm24, %zmm5
3083 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm26, %zmm1
3084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm1 {%k1}
3085 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm25, %zmm1
3086 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 64(%r9)
3087 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 128(%r9)
3088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 192(%r9)
3089 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 256(%r9)
3090 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 320(%r9)
3091 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 384(%r9)
3092 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 448(%r9)
3093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 512(%r9)
3094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 576(%r9)
3095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%r9)
3096 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
3097 ; AVX512DQ-BW-FCP-NEXT:    retq
3098   %in.vec0 = load <16 x i64>, ptr %in.vecptr0, align 64
3099   %in.vec1 = load <16 x i64>, ptr %in.vecptr1, align 64
3100   %in.vec2 = load <16 x i64>, ptr %in.vecptr2, align 64
3101   %in.vec3 = load <16 x i64>, ptr %in.vecptr3, align 64
3102   %in.vec4 = load <16 x i64>, ptr %in.vecptr4, align 64
3103   %1 = shufflevector <16 x i64> %in.vec0, <16 x i64> %in.vec1, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
3104   %2 = shufflevector <16 x i64> %in.vec2, <16 x i64> %in.vec3, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
3105   %3 = shufflevector <32 x i64> %1, <32 x i64> %2, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
3106   %4 = shufflevector <16 x i64> %in.vec4, <16 x i64> 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>
3107   %5 = shufflevector <64 x i64> %3, <64 x i64> %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>
3108   %interleaved.vec = shufflevector <80 x i64> %5, <80 x i64> 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>
3109   store <80 x i64> %interleaved.vec, ptr %out.vec, align 64
3110   ret void
3113 define void @store_i64_stride5_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
3114 ; SSE-LABEL: store_i64_stride5_vf32:
3115 ; SSE:       # %bb.0:
3116 ; SSE-NEXT:    subq $920, %rsp # imm = 0x398
3117 ; SSE-NEXT:    movapd (%rdi), %xmm3
3118 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
3119 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
3120 ; SSE-NEXT:    movapd (%rsi), %xmm6
3121 ; SSE-NEXT:    movapd 16(%rsi), %xmm7
3122 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
3123 ; SSE-NEXT:    movapd (%rdx), %xmm9
3124 ; SSE-NEXT:    movapd 16(%rdx), %xmm10
3125 ; SSE-NEXT:    movapd 32(%rdx), %xmm11
3126 ; SSE-NEXT:    movapd (%rcx), %xmm12
3127 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
3128 ; SSE-NEXT:    movapd 32(%rcx), %xmm14
3129 ; SSE-NEXT:    movapd (%r8), %xmm0
3130 ; SSE-NEXT:    movapd 16(%r8), %xmm1
3131 ; SSE-NEXT:    movapd 32(%r8), %xmm2
3132 ; SSE-NEXT:    movapd %xmm3, %xmm15
3133 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm6[0]
3134 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3135 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
3136 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3137 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
3138 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3139 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm12[0]
3140 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3141 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
3142 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3143 ; SSE-NEXT:    movapd %xmm4, %xmm0
3144 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm7[0]
3145 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3146 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
3147 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3148 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm10[1]
3149 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3150 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm13[0]
3151 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3152 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
3153 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3154 ; SSE-NEXT:    movapd %xmm5, %xmm0
3155 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm8[0]
3156 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3157 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm2[0],xmm5[1]
3158 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3159 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]
3160 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3161 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm14[0]
3162 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3163 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm2[1]
3164 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3165 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
3166 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
3167 ; SSE-NEXT:    movapd %xmm1, %xmm0
3168 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3169 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3170 ; SSE-NEXT:    movapd 48(%r8), %xmm0
3171 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3172 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3173 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
3174 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3175 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3176 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
3177 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3178 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3179 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3180 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3181 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
3182 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
3183 ; SSE-NEXT:    movapd %xmm1, %xmm0
3184 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3185 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3186 ; SSE-NEXT:    movapd 64(%r8), %xmm0
3187 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3188 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3189 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
3190 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3191 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3192 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
3193 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3194 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3195 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3196 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3197 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
3198 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
3199 ; SSE-NEXT:    movapd %xmm1, %xmm0
3200 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3201 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3202 ; SSE-NEXT:    movapd 80(%r8), %xmm0
3203 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3204 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3205 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
3206 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3207 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3208 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
3209 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3210 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3211 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3212 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3213 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
3214 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
3215 ; SSE-NEXT:    movapd %xmm1, %xmm0
3216 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3217 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3218 ; SSE-NEXT:    movapd 96(%r8), %xmm0
3219 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3220 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3221 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
3222 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3223 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3224 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
3225 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3226 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3227 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3228 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3229 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
3230 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
3231 ; SSE-NEXT:    movapd %xmm1, %xmm0
3232 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3233 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3234 ; SSE-NEXT:    movapd 112(%r8), %xmm0
3235 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3236 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3237 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
3238 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3239 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3240 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
3241 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3242 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3243 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3244 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3245 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
3246 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
3247 ; SSE-NEXT:    movapd %xmm1, %xmm0
3248 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3249 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3250 ; SSE-NEXT:    movapd 128(%r8), %xmm0
3251 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3252 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3253 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
3254 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3255 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3256 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
3257 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3258 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3259 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3260 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3261 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
3262 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
3263 ; SSE-NEXT:    movapd %xmm1, %xmm0
3264 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3265 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3266 ; SSE-NEXT:    movapd 144(%r8), %xmm0
3267 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3268 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3269 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
3270 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3271 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3272 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
3273 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3274 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3275 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3276 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3277 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
3278 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
3279 ; SSE-NEXT:    movapd %xmm1, %xmm0
3280 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3281 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3282 ; SSE-NEXT:    movapd 160(%r8), %xmm0
3283 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3284 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3285 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
3286 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3287 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3288 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
3289 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3290 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3291 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3292 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3293 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
3294 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
3295 ; SSE-NEXT:    movapd %xmm1, %xmm0
3296 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3297 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3298 ; SSE-NEXT:    movapd 176(%r8), %xmm0
3299 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3300 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
3301 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
3302 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3303 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3304 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
3305 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
3306 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3307 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
3308 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3309 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
3310 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
3311 ; SSE-NEXT:    movapd %xmm1, %xmm0
3312 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
3313 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3314 ; SSE-NEXT:    movapd 192(%r8), %xmm0
3315 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
3316 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3317 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
3318 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3319 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3320 ; SSE-NEXT:    movapd 192(%rcx), %xmm15
3321 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
3322 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3323 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
3324 ; SSE-NEXT:    movapd 208(%rdi), %xmm14
3325 ; SSE-NEXT:    movapd 208(%rsi), %xmm13
3326 ; SSE-NEXT:    movapd %xmm14, %xmm0
3327 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
3328 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3329 ; SSE-NEXT:    movapd 208(%r8), %xmm0
3330 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
3331 ; SSE-NEXT:    movapd 208(%rdx), %xmm10
3332 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
3333 ; SSE-NEXT:    movapd 208(%rcx), %xmm9
3334 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
3335 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
3336 ; SSE-NEXT:    movapd 224(%rdi), %xmm11
3337 ; SSE-NEXT:    movapd 224(%rsi), %xmm8
3338 ; SSE-NEXT:    movapd %xmm11, %xmm12
3339 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
3340 ; SSE-NEXT:    movapd 224(%r8), %xmm2
3341 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
3342 ; SSE-NEXT:    movapd 224(%rdx), %xmm6
3343 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
3344 ; SSE-NEXT:    movapd 224(%rcx), %xmm3
3345 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
3346 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
3347 ; SSE-NEXT:    movapd 240(%rdi), %xmm4
3348 ; SSE-NEXT:    movapd 240(%rsi), %xmm2
3349 ; SSE-NEXT:    movapd %xmm4, %xmm5
3350 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
3351 ; SSE-NEXT:    movapd 240(%r8), %xmm7
3352 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
3353 ; SSE-NEXT:    movapd 240(%rdx), %xmm1
3354 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
3355 ; SSE-NEXT:    movapd 240(%rcx), %xmm0
3356 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
3357 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
3358 ; SSE-NEXT:    movapd %xmm0, 1264(%r9)
3359 ; SSE-NEXT:    movapd %xmm2, 1248(%r9)
3360 ; SSE-NEXT:    movapd %xmm4, 1232(%r9)
3361 ; SSE-NEXT:    movapd %xmm1, 1216(%r9)
3362 ; SSE-NEXT:    movapd %xmm5, 1200(%r9)
3363 ; SSE-NEXT:    movapd %xmm3, 1184(%r9)
3364 ; SSE-NEXT:    movapd %xmm8, 1168(%r9)
3365 ; SSE-NEXT:    movapd %xmm11, 1152(%r9)
3366 ; SSE-NEXT:    movapd %xmm6, 1136(%r9)
3367 ; SSE-NEXT:    movapd %xmm12, 1120(%r9)
3368 ; SSE-NEXT:    movapd %xmm9, 1104(%r9)
3369 ; SSE-NEXT:    movapd %xmm13, 1088(%r9)
3370 ; SSE-NEXT:    movapd %xmm14, 1072(%r9)
3371 ; SSE-NEXT:    movapd %xmm10, 1056(%r9)
3372 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3373 ; SSE-NEXT:    movaps %xmm0, 1040(%r9)
3374 ; SSE-NEXT:    movapd %xmm15, 1024(%r9)
3375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3376 ; SSE-NEXT:    movaps %xmm0, 1008(%r9)
3377 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3378 ; SSE-NEXT:    movaps %xmm0, 992(%r9)
3379 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3380 ; SSE-NEXT:    movaps %xmm0, 976(%r9)
3381 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3382 ; SSE-NEXT:    movaps %xmm0, 960(%r9)
3383 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3384 ; SSE-NEXT:    movaps %xmm0, 944(%r9)
3385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3386 ; SSE-NEXT:    movaps %xmm0, 928(%r9)
3387 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
3388 ; SSE-NEXT:    movaps %xmm0, 912(%r9)
3389 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3390 ; SSE-NEXT:    movaps %xmm0, 896(%r9)
3391 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3392 ; SSE-NEXT:    movaps %xmm0, 880(%r9)
3393 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3394 ; SSE-NEXT:    movaps %xmm0, 864(%r9)
3395 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3396 ; SSE-NEXT:    movaps %xmm0, 848(%r9)
3397 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3398 ; SSE-NEXT:    movaps %xmm0, 832(%r9)
3399 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3400 ; SSE-NEXT:    movaps %xmm0, 816(%r9)
3401 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3402 ; SSE-NEXT:    movaps %xmm0, 800(%r9)
3403 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3404 ; SSE-NEXT:    movaps %xmm0, 784(%r9)
3405 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3406 ; SSE-NEXT:    movaps %xmm0, 768(%r9)
3407 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3408 ; SSE-NEXT:    movaps %xmm0, 752(%r9)
3409 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3410 ; SSE-NEXT:    movaps %xmm0, 736(%r9)
3411 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3412 ; SSE-NEXT:    movaps %xmm0, 720(%r9)
3413 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3414 ; SSE-NEXT:    movaps %xmm0, 704(%r9)
3415 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3416 ; SSE-NEXT:    movaps %xmm0, 688(%r9)
3417 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3418 ; SSE-NEXT:    movaps %xmm0, 672(%r9)
3419 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3420 ; SSE-NEXT:    movaps %xmm0, 656(%r9)
3421 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3422 ; SSE-NEXT:    movaps %xmm0, 640(%r9)
3423 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3424 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
3425 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3426 ; SSE-NEXT:    movaps %xmm0, 608(%r9)
3427 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3428 ; SSE-NEXT:    movaps %xmm0, 592(%r9)
3429 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3430 ; SSE-NEXT:    movaps %xmm0, 576(%r9)
3431 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3432 ; SSE-NEXT:    movaps %xmm0, 560(%r9)
3433 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3434 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
3435 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3436 ; SSE-NEXT:    movaps %xmm0, 528(%r9)
3437 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3438 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
3439 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3440 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
3441 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3442 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
3443 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3444 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
3445 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3446 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
3447 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3448 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
3449 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3450 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
3451 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3452 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
3453 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3454 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
3455 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3456 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
3457 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3458 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
3459 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3460 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
3461 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3462 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
3463 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3464 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
3465 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3466 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
3467 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3468 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
3469 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3470 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
3471 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3472 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
3473 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3474 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
3475 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3476 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
3477 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3478 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
3479 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3480 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
3481 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3482 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
3483 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3484 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
3485 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3486 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
3487 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3488 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
3489 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3490 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
3491 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3492 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
3493 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3494 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
3495 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3496 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
3497 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3498 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
3499 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3500 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
3501 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3502 ; SSE-NEXT:    movaps %xmm0, (%r9)
3503 ; SSE-NEXT:    addq $920, %rsp # imm = 0x398
3504 ; SSE-NEXT:    retq
3506 ; AVX-LABEL: store_i64_stride5_vf32:
3507 ; AVX:       # %bb.0:
3508 ; AVX-NEXT:    subq $1048, %rsp # imm = 0x418
3509 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm9
3510 ; AVX-NEXT:    vmovapd 160(%rdi), %ymm7
3511 ; AVX-NEXT:    vmovapd 96(%rdi), %ymm5
3512 ; AVX-NEXT:    vmovaps 128(%rcx), %ymm0
3513 ; AVX-NEXT:    vmovaps (%rcx), %ymm1
3514 ; AVX-NEXT:    vmovaps 64(%rcx), %ymm2
3515 ; AVX-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
3516 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm6
3517 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3518 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm6[1],ymm1[3],ymm6[3]
3519 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
3520 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3521 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3522 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm3
3523 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3524 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
3525 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3,4,5,6,7]
3526 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3527 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
3528 ; AVX-NEXT:    vmovapd 96(%rcx), %xmm2
3529 ; AVX-NEXT:    vmovapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3530 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
3531 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3]
3532 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3533 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3534 ; AVX-NEXT:    vmovaps 144(%rdx), %xmm2
3535 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3536 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
3537 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3538 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3539 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],mem[0],ymm7[2],mem[2]
3540 ; AVX-NEXT:    vmovapd 160(%rcx), %xmm1
3541 ; AVX-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3542 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3543 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
3544 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3545 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],mem[0],ymm9[2],mem[2]
3546 ; AVX-NEXT:    vmovaps 192(%rcx), %xmm1
3547 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3548 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
3549 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3550 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3551 ; AVX-NEXT:    vmovaps 192(%rcx), %ymm0
3552 ; AVX-NEXT:    vmovaps 208(%rdx), %xmm1
3553 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3554 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
3555 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
3556 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
3557 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3558 ; AVX-NEXT:    vmovaps (%rdi), %ymm8
3559 ; AVX-NEXT:    vbroadcastsd 8(%rsi), %ymm0
3560 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
3561 ; AVX-NEXT:    vmovaps (%rdx), %xmm1
3562 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3563 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3564 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3565 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3566 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3567 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
3568 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3569 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3570 ; AVX-NEXT:    vmovapd 32(%rdi), %ymm2
3571 ; AVX-NEXT:    vbroadcastsd 40(%rsi), %ymm0
3572 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
3573 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm1
3574 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3575 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3576 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3577 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3578 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3579 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
3580 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
3581 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3582 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm14
3583 ; AVX-NEXT:    vbroadcastsd 72(%rsi), %ymm0
3584 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3],ymm0[4,5,6,7]
3585 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm1
3586 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3587 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3588 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
3589 ; AVX-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
3590 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3591 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm14[0],mem[0],ymm14[2],mem[2]
3592 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3593 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3594 ; AVX-NEXT:    vbroadcastsd 104(%rsi), %ymm0
3595 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3]
3596 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm1
3597 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3598 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
3599 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
3600 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3601 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm1
3602 ; AVX-NEXT:    vbroadcastsd 136(%rsi), %ymm0
3603 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
3604 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm3
3605 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3606 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
3607 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3608 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3609 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
3610 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],mem[0],ymm1[2],mem[2]
3611 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm3[4,5,6,7]
3612 ; AVX-NEXT:    vbroadcastsd 168(%rsi), %ymm0
3613 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3]
3614 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm4
3615 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm3
3616 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm3[3]
3617 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3618 ; AVX-NEXT:    vbroadcastsd 200(%rsi), %ymm0
3619 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
3620 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm3
3621 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm6
3622 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm0[0,1,2,3,4,5],ymm6[6,7]
3623 ; AVX-NEXT:    vmovapd 224(%rdi), %ymm0
3624 ; AVX-NEXT:    vbroadcastsd 232(%rsi), %ymm6
3625 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm0[0,1],ymm6[2,3]
3626 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm11
3627 ; AVX-NEXT:    vmovaps %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3628 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm11
3629 ; AVX-NEXT:    vblendpd {{.*#+}} ymm11 = ymm6[0,1,2],ymm11[3]
3630 ; AVX-NEXT:    vpermilps {{.*#+}} xmm6 = mem[2,3,2,3]
3631 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm0[0],mem[0],ymm0[2],mem[2]
3632 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm15[2,3]
3633 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm13 # 32-byte Reload
3634 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
3635 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm15[0,1,2,3],ymm8[4,5,6,7]
3636 ; AVX-NEXT:    vmovaps (%r8), %ymm15
3637 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
3638 ; AVX-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm15[6,7]
3639 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3640 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
3641 ; AVX-NEXT:    # ymm13 = ymm15[0,1],mem[2,3,4,5,6,7]
3642 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3643 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
3644 ; AVX-NEXT:    # ymm13 = mem[0,1],ymm15[2,3],mem[4,5,6,7]
3645 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3646 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm15[4,5],ymm8[6,7]
3647 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3648 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm2[2,3]
3649 ; AVX-NEXT:    vmovapd 48(%rdx), %xmm8
3650 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm8[0],ymm2[0],ymm8[2],ymm2[3]
3651 ; AVX-NEXT:    vmovapd 48(%rsi), %xmm15
3652 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm15[1],xmm8[1]
3653 ; AVX-NEXT:    vbroadcastsd 56(%rcx), %ymm15
3654 ; AVX-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm15[2,3]
3655 ; AVX-NEXT:    vmovapd 32(%r8), %ymm15
3656 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
3657 ; AVX-NEXT:    # ymm13 = ymm15[0],mem[1,2,3]
3658 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3659 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm13 # 32-byte Folded Reload
3660 ; AVX-NEXT:    # ymm13 = mem[0],ymm15[1],mem[2,3]
3661 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3662 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm15[2],ymm2[3]
3663 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3664 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm8[0,1,2],ymm15[3]
3665 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3666 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3667 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
3668 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm14[4,5,6,7]
3669 ; AVX-NEXT:    vmovaps 64(%r8), %ymm8
3670 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
3671 ; AVX-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm8[6,7]
3672 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3673 ; AVX-NEXT:    vblendps $252, (%rsp), %ymm8, %ymm13 # 32-byte Folded Reload
3674 ; AVX-NEXT:    # ymm13 = ymm8[0,1],mem[2,3,4,5,6,7]
3675 ; AVX-NEXT:    vmovups %ymm13, (%rsp) # 32-byte Spill
3676 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
3677 ; AVX-NEXT:    # ymm13 = mem[0,1],ymm8[2,3],mem[4,5,6,7]
3678 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3679 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm8[4,5],ymm2[6,7]
3680 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3681 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm5[2,3]
3682 ; AVX-NEXT:    vmovapd 112(%rdx), %xmm5
3683 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm5[0],ymm2[0],ymm5[2],ymm2[3]
3684 ; AVX-NEXT:    vmovapd 112(%rsi), %xmm8
3685 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm5[1]
3686 ; AVX-NEXT:    vbroadcastsd 120(%rcx), %ymm8
3687 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm8[2,3]
3688 ; AVX-NEXT:    vmovapd 96(%r8), %ymm8
3689 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
3690 ; AVX-NEXT:    # ymm13 = mem[0],ymm8[1],mem[2,3]
3691 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3692 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm13 # 32-byte Folded Reload
3693 ; AVX-NEXT:    # ymm13 = ymm8[0],mem[1,2,3]
3694 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3695 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm8[2],ymm2[3]
3696 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3697 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0,1,2],ymm8[3]
3698 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3699 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
3700 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
3701 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3702 ; AVX-NEXT:    vmovaps 128(%r8), %ymm2
3703 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
3704 ; AVX-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm2[6,7]
3705 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3706 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
3707 ; AVX-NEXT:    # ymm5 = ymm2[0,1],mem[2,3,4,5,6,7]
3708 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3709 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm10[0,1],ymm2[2,3],ymm10[4,5,6,7]
3710 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3711 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
3712 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3713 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm1 = mem[2,3],ymm7[2,3]
3714 ; AVX-NEXT:    vmovapd 176(%rdx), %xmm2
3715 ; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[3]
3716 ; AVX-NEXT:    vmovapd 176(%rsi), %xmm5
3717 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm5[1],xmm2[1]
3718 ; AVX-NEXT:    vbroadcastsd 184(%rcx), %ymm5
3719 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm5[2,3]
3720 ; AVX-NEXT:    vmovapd 160(%r8), %ymm5
3721 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm7 # 32-byte Folded Reload
3722 ; AVX-NEXT:    # ymm7 = mem[0],ymm5[1],mem[2,3]
3723 ; AVX-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3724 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm7 # 32-byte Folded Reload
3725 ; AVX-NEXT:    # ymm7 = ymm5[0],mem[1,2,3]
3726 ; AVX-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3727 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm5[2],ymm1[3]
3728 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3729 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm2[0,1,2],ymm5[3]
3730 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3731 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3732 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
3733 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm9[4,5,6,7]
3734 ; AVX-NEXT:    vmovaps 192(%r8), %ymm2
3735 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
3736 ; AVX-NEXT:    # ymm5 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
3737 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3738 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm5 # 32-byte Folded Reload
3739 ; AVX-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm2[6,7]
3740 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3741 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm2[0,1],ymm12[2,3,4,5,6,7]
3742 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3743 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
3744 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3745 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
3746 ; AVX-NEXT:    vmovapd 240(%rdx), %xmm1
3747 ; AVX-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[3]
3748 ; AVX-NEXT:    vmovapd 240(%rsi), %xmm2
3749 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
3750 ; AVX-NEXT:    vbroadcastsd 248(%rcx), %ymm2
3751 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
3752 ; AVX-NEXT:    vmovapd 224(%r8), %ymm5
3753 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm5[0],ymm11[1,2,3]
3754 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3755 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm6[0],ymm5[1],ymm6[2,3]
3756 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3757 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm5[2],ymm0[3]
3758 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3759 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm5[3]
3760 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3761 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3762 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload
3763 ; AVX-NEXT:    # xmm7 = xmm0[0],mem[0]
3764 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm5 # 16-byte Folded Reload
3765 ; AVX-NEXT:    # xmm5 = xmm4[0],mem[0]
3766 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm3, %xmm2 # 16-byte Folded Reload
3767 ; AVX-NEXT:    # xmm2 = xmm3[0],mem[0]
3768 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm1
3769 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm1[0],mem[0]
3770 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3771 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm0[0],mem[0]
3772 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm14
3773 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
3774 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3775 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm0[0],mem[0]
3776 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm12
3777 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
3778 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3779 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
3780 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm15
3781 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
3782 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm13
3783 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
3784 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm9
3785 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
3786 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
3787 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
3788 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm11
3789 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
3790 ; AVX-NEXT:    vmovaps (%rdi), %xmm10
3791 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
3792 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3793 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
3794 ; AVX-NEXT:    vmovaps %xmm8, 16(%r9)
3795 ; AVX-NEXT:    vmovaps %xmm10, (%r9)
3796 ; AVX-NEXT:    vmovaps %xmm2, 976(%r9)
3797 ; AVX-NEXT:    vmovaps %xmm11, 960(%r9)
3798 ; AVX-NEXT:    vmovaps %xmm0, 1136(%r9)
3799 ; AVX-NEXT:    vmovaps %xmm9, 1120(%r9)
3800 ; AVX-NEXT:    vmovaps %xmm5, 816(%r9)
3801 ; AVX-NEXT:    vmovaps %xmm13, 800(%r9)
3802 ; AVX-NEXT:    vmovaps %xmm7, 496(%r9)
3803 ; AVX-NEXT:    vmovaps %xmm15, 480(%r9)
3804 ; AVX-NEXT:    vmovaps %xmm1, 176(%r9)
3805 ; AVX-NEXT:    vmovaps %xmm12, 160(%r9)
3806 ; AVX-NEXT:    vmovaps %xmm3, 336(%r9)
3807 ; AVX-NEXT:    vmovaps %xmm14, 320(%r9)
3808 ; AVX-NEXT:    vmovaps %xmm4, 656(%r9)
3809 ; AVX-NEXT:    vmovaps %xmm6, 640(%r9)
3810 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3811 ; AVX-NEXT:    vmovaps %ymm0, 1216(%r9)
3812 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3813 ; AVX-NEXT:    vmovaps %ymm0, 1184(%r9)
3814 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3815 ; AVX-NEXT:    vmovaps %ymm0, 1152(%r9)
3816 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3817 ; AVX-NEXT:    vmovaps %ymm0, 992(%r9)
3818 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3819 ; AVX-NEXT:    vmovaps %ymm0, 896(%r9)
3820 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3821 ; AVX-NEXT:    vmovaps %ymm0, 832(%r9)
3822 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3823 ; AVX-NEXT:    vmovaps %ymm0, 704(%r9)
3824 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3825 ; AVX-NEXT:    vmovaps %ymm0, 672(%r9)
3826 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3827 ; AVX-NEXT:    vmovaps %ymm0, 576(%r9)
3828 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3829 ; AVX-NEXT:    vmovaps %ymm0, 512(%r9)
3830 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3831 ; AVX-NEXT:    vmovaps %ymm0, 384(%r9)
3832 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3833 ; AVX-NEXT:    vmovaps %ymm0, 352(%r9)
3834 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3835 ; AVX-NEXT:    vmovaps %ymm0, 256(%r9)
3836 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3837 ; AVX-NEXT:    vmovaps %ymm0, 224(%r9)
3838 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3839 ; AVX-NEXT:    vmovaps %ymm0, 192(%r9)
3840 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3841 ; AVX-NEXT:    vmovaps %ymm0, 64(%r9)
3842 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3843 ; AVX-NEXT:    vmovaps %ymm0, 32(%r9)
3844 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3845 ; AVX-NEXT:    vmovaps %ymm0, 1248(%r9)
3846 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3847 ; AVX-NEXT:    vmovaps %ymm0, 1088(%r9)
3848 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3849 ; AVX-NEXT:    vmovaps %ymm0, 1056(%r9)
3850 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3851 ; AVX-NEXT:    vmovaps %ymm0, 1024(%r9)
3852 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3853 ; AVX-NEXT:    vmovaps %ymm0, 928(%r9)
3854 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3855 ; AVX-NEXT:    vmovaps %ymm0, 864(%r9)
3856 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3857 ; AVX-NEXT:    vmovaps %ymm0, 768(%r9)
3858 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3859 ; AVX-NEXT:    vmovaps %ymm0, 736(%r9)
3860 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3861 ; AVX-NEXT:    vmovaps %ymm0, 608(%r9)
3862 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3863 ; AVX-NEXT:    vmovaps %ymm0, 544(%r9)
3864 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3865 ; AVX-NEXT:    vmovaps %ymm0, 448(%r9)
3866 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3867 ; AVX-NEXT:    vmovaps %ymm0, 416(%r9)
3868 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3869 ; AVX-NEXT:    vmovaps %ymm0, 288(%r9)
3870 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3871 ; AVX-NEXT:    vmovaps %ymm0, 128(%r9)
3872 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3873 ; AVX-NEXT:    vmovaps %ymm0, 96(%r9)
3874 ; AVX-NEXT:    addq $1048, %rsp # imm = 0x418
3875 ; AVX-NEXT:    vzeroupper
3876 ; AVX-NEXT:    retq
3878 ; AVX2-LABEL: store_i64_stride5_vf32:
3879 ; AVX2:       # %bb.0:
3880 ; AVX2-NEXT:    subq $1128, %rsp # imm = 0x468
3881 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm13
3882 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm7
3883 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm9
3884 ; AVX2-NEXT:    vmovaps (%rdi), %ymm12
3885 ; AVX2-NEXT:    vmovaps (%rsi), %xmm2
3886 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm4
3887 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm1
3888 ; AVX2-NEXT:    vmovaps 96(%rsi), %xmm0
3889 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
3890 ; AVX2-NEXT:    vmovaps (%rdi), %xmm6
3891 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm8
3892 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm2
3893 ; AVX2-NEXT:    vmovaps (%rdx), %xmm10
3894 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm11
3895 ; AVX2-NEXT:    vmovaps 64(%rdx), %xmm3
3896 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm6, %ymm6
3897 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
3898 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3899 ; AVX2-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm5
3900 ; AVX2-NEXT:    vbroadcastsd 8(%rsi), %ymm6
3901 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3902 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3],ymm6[4,5,6,7]
3903 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3904 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3905 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
3906 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm12[0],mem[0],ymm12[2],mem[2]
3907 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
3908 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3909 ; AVX2-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
3910 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm8, %ymm5
3911 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
3912 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3913 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
3914 ; AVX2-NEXT:    vbroadcastsd 40(%rsi), %ymm5
3915 ; AVX2-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
3916 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
3917 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
3918 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3919 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
3920 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm9[0],mem[0],ymm9[2],mem[2]
3921 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
3922 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3923 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
3924 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
3925 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3926 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3927 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
3928 ; AVX2-NEXT:    vbroadcastsd 72(%rsi), %ymm2
3929 ; AVX2-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3930 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
3931 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
3932 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3933 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
3934 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],mem[0],ymm7[2],mem[2]
3935 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3936 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3937 ; AVX2-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
3938 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm1
3939 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm2
3940 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3941 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3942 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3943 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3944 ; AVX2-NEXT:    vbroadcastsd 104(%rsi), %ymm1
3945 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
3946 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3947 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3948 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3949 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],mem[0],ymm13[2],mem[2]
3950 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3951 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3952 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
3953 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
3954 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
3955 ; AVX2-NEXT:    vmovaps 128(%rdx), %xmm2
3956 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3957 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3958 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3959 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3960 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
3961 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3962 ; AVX2-NEXT:    vbroadcastsd 136(%rsi), %ymm1
3963 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3964 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3965 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3966 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3967 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
3968 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3969 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3970 ; AVX2-NEXT:    vmovaps 160(%rsi), %xmm0
3971 ; AVX2-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
3972 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm1
3973 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm2
3974 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3975 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3976 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3977 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3978 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm2
3979 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3980 ; AVX2-NEXT:    vbroadcastsd 168(%rsi), %ymm1
3981 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
3982 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
3983 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3984 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3985 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
3986 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3987 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3988 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
3989 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
3990 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm1
3991 ; AVX2-NEXT:    vmovaps 192(%rdx), %xmm2
3992 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
3993 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
3994 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3995 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
3996 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
3997 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3998 ; AVX2-NEXT:    vbroadcastsd 200(%rsi), %ymm1
3999 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4000 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4001 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4002 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4003 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4004 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4005 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4006 ; AVX2-NEXT:    vmovaps 224(%rsi), %xmm0
4007 ; AVX2-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
4008 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm1
4009 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm2
4010 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4011 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4012 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4013 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4014 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm9
4015 ; AVX2-NEXT:    vbroadcastsd 232(%rsi), %ymm1
4016 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
4017 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4018 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4019 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4020 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],mem[0],ymm9[2],mem[2]
4021 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4022 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4023 ; AVX2-NEXT:    vbroadcastsd 56(%rsi), %ymm0
4024 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4025 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm1
4026 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4027 ; AVX2-NEXT:    vbroadcastsd 120(%rsi), %ymm0
4028 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4029 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm1
4030 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4031 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4032 ; AVX2-NEXT:    vbroadcastsd 184(%rsi), %ymm0
4033 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4034 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm1
4035 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4036 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4037 ; AVX2-NEXT:    vbroadcastsd 248(%rsi), %ymm0
4038 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4039 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm1
4040 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4041 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4042 ; AVX2-NEXT:    vmovaps (%rdx), %ymm1
4043 ; AVX2-NEXT:    vmovaps (%rcx), %ymm0
4044 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
4045 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4046 ; AVX2-NEXT:    vbroadcastsd 24(%rsi), %ymm3
4047 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4048 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm14
4049 ; AVX2-NEXT:    vmovaps 64(%rcx), %ymm15
4050 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
4051 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4052 ; AVX2-NEXT:    vbroadcastsd 88(%rsi), %ymm3
4053 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4054 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm3
4055 ; AVX2-NEXT:    vmovaps 128(%rcx), %ymm2
4056 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
4057 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
4058 ; AVX2-NEXT:    vbroadcastsd 152(%rsi), %ymm5
4059 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1],ymm4[2,3,4,5,6,7]
4060 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm5
4061 ; AVX2-NEXT:    vmovaps 192(%rcx), %ymm4
4062 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
4063 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,3,3]
4064 ; AVX2-NEXT:    vbroadcastsd 216(%rsi), %ymm11
4065 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm10[2,3,4,5,6,7]
4066 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4067 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4068 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4069 ; AVX2-NEXT:    vmovaps (%r8), %ymm1
4070 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4071 ; AVX2-NEXT:    # ymm10 = ymm1[0,1],mem[2,3,4,5,6,7]
4072 ; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4073 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4074 ; AVX2-NEXT:    # ymm10 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4075 ; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4076 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm1[6,7]
4077 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4078 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4079 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4080 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4081 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4082 ; AVX2-NEXT:    vbroadcastsd 48(%rcx), %ymm1
4083 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4084 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm1
4085 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4086 ; AVX2-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4087 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4088 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4089 ; AVX2-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4090 ; AVX2-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
4091 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm1[6,7]
4092 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4093 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4094 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4095 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
4096 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4097 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4098 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm1
4099 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4100 ; AVX2-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4101 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4102 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4103 ; AVX2-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4104 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4105 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3,4,5],ymm1[6,7]
4106 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4107 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4108 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4109 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm13[2,3]
4110 ; AVX2-NEXT:    vbroadcastsd 112(%rcx), %ymm1
4111 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4112 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm1
4113 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4114 ; AVX2-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4115 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4116 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4117 ; AVX2-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4118 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4119 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4120 ; AVX2-NEXT:    # ymm6 = mem[0,1,2,3,4,5],ymm1[6,7]
4121 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4122 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4123 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4124 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4125 ; AVX2-NEXT:    # ymm1 = ymm0[2,3],mem[2,3]
4126 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm2
4127 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload
4128 ; AVX2-NEXT:    # ymm13 = ymm2[0,1],mem[2,3,4,5,6,7]
4129 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
4130 ; AVX2-NEXT:    # ymm12 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
4131 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm2[6,7]
4132 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4133 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
4134 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4135 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
4136 ; AVX2-NEXT:    vbroadcastsd 176(%rcx), %ymm3
4137 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5,6,7]
4138 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm3
4139 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload
4140 ; AVX2-NEXT:    # ymm7 = ymm3[0,1],mem[2,3,4,5,6,7]
4141 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 32-byte Folded Reload
4142 ; AVX2-NEXT:    # ymm6 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
4143 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
4144 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm3[6,7]
4145 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4146 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
4147 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4148 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4149 ; AVX2-NEXT:    # ymm2 = ymm2[2,3],mem[2,3]
4150 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm4
4151 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4152 ; AVX2-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
4153 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm3 # 32-byte Folded Reload
4154 ; AVX2-NEXT:    # ymm3 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
4155 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm11[0,1,2,3,4,5],ymm4[6,7]
4156 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
4157 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm9[2,3]
4158 ; AVX2-NEXT:    vbroadcastsd 240(%rcx), %ymm9
4159 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm2[0,1],ymm9[2,3],ymm2[4,5,6,7]
4160 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm0
4161 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
4162 ; AVX2-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
4163 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4164 ; AVX2-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
4165 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4166 ; AVX2-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
4167 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5],ymm9[6,7]
4168 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%r9)
4169 ; AVX2-NEXT:    vmovaps %ymm1, 1184(%r9)
4170 ; AVX2-NEXT:    vmovaps %ymm2, 1152(%r9)
4171 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4172 ; AVX2-NEXT:    vmovaps %ymm0, 1120(%r9)
4173 ; AVX2-NEXT:    vmovaps %ymm4, 1056(%r9)
4174 ; AVX2-NEXT:    vmovaps %ymm3, 1024(%r9)
4175 ; AVX2-NEXT:    vmovaps %ymm5, 992(%r9)
4176 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4177 ; AVX2-NEXT:    vmovaps %ymm0, 960(%r9)
4178 ; AVX2-NEXT:    vmovaps %ymm8, 896(%r9)
4179 ; AVX2-NEXT:    vmovaps %ymm6, 864(%r9)
4180 ; AVX2-NEXT:    vmovaps %ymm7, 832(%r9)
4181 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4182 ; AVX2-NEXT:    vmovaps %ymm0, 800(%r9)
4183 ; AVX2-NEXT:    vmovaps %ymm10, 736(%r9)
4184 ; AVX2-NEXT:    vmovaps %ymm12, 704(%r9)
4185 ; AVX2-NEXT:    vmovaps %ymm13, 672(%r9)
4186 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4187 ; AVX2-NEXT:    vmovaps %ymm0, 640(%r9)
4188 ; AVX2-NEXT:    vmovaps %ymm15, 576(%r9)
4189 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4190 ; AVX2-NEXT:    vmovaps %ymm0, 544(%r9)
4191 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4192 ; AVX2-NEXT:    vmovaps %ymm0, 512(%r9)
4193 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4194 ; AVX2-NEXT:    vmovaps %ymm0, 480(%r9)
4195 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4196 ; AVX2-NEXT:    vmovaps %ymm0, 416(%r9)
4197 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4198 ; AVX2-NEXT:    vmovaps %ymm0, 384(%r9)
4199 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4200 ; AVX2-NEXT:    vmovaps %ymm0, 352(%r9)
4201 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4202 ; AVX2-NEXT:    vmovaps %ymm0, 320(%r9)
4203 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4204 ; AVX2-NEXT:    vmovaps %ymm0, 256(%r9)
4205 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4206 ; AVX2-NEXT:    vmovaps %ymm0, 224(%r9)
4207 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4208 ; AVX2-NEXT:    vmovaps %ymm0, 192(%r9)
4209 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4210 ; AVX2-NEXT:    vmovaps %ymm0, 160(%r9)
4211 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4212 ; AVX2-NEXT:    vmovaps %ymm0, 96(%r9)
4213 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4214 ; AVX2-NEXT:    vmovaps %ymm0, 64(%r9)
4215 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4216 ; AVX2-NEXT:    vmovaps %ymm0, 32(%r9)
4217 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4218 ; AVX2-NEXT:    vmovaps %ymm0, (%r9)
4219 ; AVX2-NEXT:    vmovaps %ymm14, 1088(%r9)
4220 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4221 ; AVX2-NEXT:    vmovaps %ymm0, 768(%r9)
4222 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4223 ; AVX2-NEXT:    vmovaps %ymm0, 448(%r9)
4224 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4225 ; AVX2-NEXT:    vmovaps %ymm0, 128(%r9)
4226 ; AVX2-NEXT:    vmovaps %ymm11, 1248(%r9)
4227 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4228 ; AVX2-NEXT:    vmovaps %ymm0, 928(%r9)
4229 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4230 ; AVX2-NEXT:    vmovaps %ymm0, 608(%r9)
4231 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4232 ; AVX2-NEXT:    vmovaps %ymm0, 288(%r9)
4233 ; AVX2-NEXT:    addq $1128, %rsp # imm = 0x468
4234 ; AVX2-NEXT:    vzeroupper
4235 ; AVX2-NEXT:    retq
4237 ; AVX2-FP-LABEL: store_i64_stride5_vf32:
4238 ; AVX2-FP:       # %bb.0:
4239 ; AVX2-FP-NEXT:    subq $1128, %rsp # imm = 0x468
4240 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm13
4241 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm7
4242 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm9
4243 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm12
4244 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm2
4245 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm4
4246 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm1
4247 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %xmm0
4248 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
4249 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm6
4250 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm8
4251 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm2
4252 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm10
4253 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm11
4254 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %xmm3
4255 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm6, %ymm6
4256 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
4257 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4258 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm5
4259 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
4260 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4261 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3],ymm6[4,5,6,7]
4262 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
4263 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4264 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
4265 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm12[0],mem[0],ymm12[2],mem[2]
4266 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
4267 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4268 ; AVX2-FP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
4269 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm8, %ymm5
4270 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4271 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4272 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
4273 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rsi), %ymm5
4274 ; AVX2-FP-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
4275 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
4276 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
4277 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4278 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
4279 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm9[0],mem[0],ymm9[2],mem[2]
4280 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
4281 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4282 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
4283 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
4284 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
4285 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4286 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
4287 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rsi), %ymm2
4288 ; AVX2-FP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4289 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
4290 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
4291 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4292 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
4293 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],mem[0],ymm7[2],mem[2]
4294 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4295 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4296 ; AVX2-FP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
4297 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm1
4298 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm2
4299 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4300 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4301 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4302 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4303 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
4304 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
4305 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4306 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4307 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4308 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],mem[0],ymm13[2],mem[2]
4309 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4310 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4311 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
4312 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
4313 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
4314 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %xmm2
4315 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4316 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4317 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4318 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4319 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
4320 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4321 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rsi), %ymm1
4322 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4323 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4324 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4325 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4326 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4327 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4328 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4329 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %xmm0
4330 ; AVX2-FP-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
4331 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm1
4332 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm2
4333 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4334 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4335 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4336 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4337 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm2
4338 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4339 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rsi), %ymm1
4340 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4341 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4342 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4343 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4344 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4345 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4346 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4347 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
4348 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
4349 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm1
4350 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %xmm2
4351 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4352 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4353 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4354 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4355 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
4356 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4357 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rsi), %ymm1
4358 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4359 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4360 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4361 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4362 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4363 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4364 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4365 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %xmm0
4366 ; AVX2-FP-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
4367 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm1
4368 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm2
4369 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4370 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4371 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4372 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4373 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm9
4374 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rsi), %ymm1
4375 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
4376 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4377 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4378 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4379 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],mem[0],ymm9[2],mem[2]
4380 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4381 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4382 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
4383 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4384 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
4385 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4386 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rsi), %ymm0
4387 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4388 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
4389 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4390 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4391 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rsi), %ymm0
4392 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4393 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
4394 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4395 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4396 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rsi), %ymm0
4397 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4398 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
4399 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4400 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4401 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm1
4402 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm0
4403 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
4404 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4405 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rsi), %ymm3
4406 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4407 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm14
4408 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %ymm15
4409 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
4410 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4411 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rsi), %ymm3
4412 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4413 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm3
4414 ; AVX2-FP-NEXT:    vmovaps 128(%rcx), %ymm2
4415 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
4416 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
4417 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rsi), %ymm5
4418 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1],ymm4[2,3,4,5,6,7]
4419 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm5
4420 ; AVX2-FP-NEXT:    vmovaps 192(%rcx), %ymm4
4421 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
4422 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,3,3]
4423 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rsi), %ymm11
4424 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm10[2,3,4,5,6,7]
4425 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4426 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4427 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4428 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm1
4429 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4430 ; AVX2-FP-NEXT:    # ymm10 = ymm1[0,1],mem[2,3,4,5,6,7]
4431 ; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4432 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4433 ; AVX2-FP-NEXT:    # ymm10 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4434 ; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4435 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm1[6,7]
4436 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4437 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4438 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4439 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4440 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4441 ; AVX2-FP-NEXT:    vbroadcastsd 48(%rcx), %ymm1
4442 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4443 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm1
4444 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4445 ; AVX2-FP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4446 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4447 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4448 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4449 ; AVX2-FP-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
4450 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm1[6,7]
4451 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4452 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4453 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4454 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
4455 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4456 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4457 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm1
4458 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4459 ; AVX2-FP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4460 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4461 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4462 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4463 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4464 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3,4,5],ymm1[6,7]
4465 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4466 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4467 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4468 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm13[2,3]
4469 ; AVX2-FP-NEXT:    vbroadcastsd 112(%rcx), %ymm1
4470 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4471 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm1
4472 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4473 ; AVX2-FP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4474 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4475 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4476 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4477 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4478 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4479 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1,2,3,4,5],ymm1[6,7]
4480 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4481 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4482 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4483 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4484 ; AVX2-FP-NEXT:    # ymm1 = ymm0[2,3],mem[2,3]
4485 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm2
4486 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload
4487 ; AVX2-FP-NEXT:    # ymm13 = ymm2[0,1],mem[2,3,4,5,6,7]
4488 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
4489 ; AVX2-FP-NEXT:    # ymm12 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
4490 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm2[6,7]
4491 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4492 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
4493 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4494 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
4495 ; AVX2-FP-NEXT:    vbroadcastsd 176(%rcx), %ymm3
4496 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5,6,7]
4497 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm3
4498 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload
4499 ; AVX2-FP-NEXT:    # ymm7 = ymm3[0,1],mem[2,3,4,5,6,7]
4500 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 32-byte Folded Reload
4501 ; AVX2-FP-NEXT:    # ymm6 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
4502 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
4503 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm3[6,7]
4504 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4505 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
4506 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4507 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4508 ; AVX2-FP-NEXT:    # ymm2 = ymm2[2,3],mem[2,3]
4509 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm4
4510 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4511 ; AVX2-FP-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
4512 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm3 # 32-byte Folded Reload
4513 ; AVX2-FP-NEXT:    # ymm3 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
4514 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm11[0,1,2,3,4,5],ymm4[6,7]
4515 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
4516 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm9[2,3]
4517 ; AVX2-FP-NEXT:    vbroadcastsd 240(%rcx), %ymm9
4518 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm2[0,1],ymm9[2,3],ymm2[4,5,6,7]
4519 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm0
4520 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
4521 ; AVX2-FP-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
4522 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4523 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
4524 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4525 ; AVX2-FP-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
4526 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5],ymm9[6,7]
4527 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%r9)
4528 ; AVX2-FP-NEXT:    vmovaps %ymm1, 1184(%r9)
4529 ; AVX2-FP-NEXT:    vmovaps %ymm2, 1152(%r9)
4530 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4531 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1120(%r9)
4532 ; AVX2-FP-NEXT:    vmovaps %ymm4, 1056(%r9)
4533 ; AVX2-FP-NEXT:    vmovaps %ymm3, 1024(%r9)
4534 ; AVX2-FP-NEXT:    vmovaps %ymm5, 992(%r9)
4535 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4536 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%r9)
4537 ; AVX2-FP-NEXT:    vmovaps %ymm8, 896(%r9)
4538 ; AVX2-FP-NEXT:    vmovaps %ymm6, 864(%r9)
4539 ; AVX2-FP-NEXT:    vmovaps %ymm7, 832(%r9)
4540 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4541 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%r9)
4542 ; AVX2-FP-NEXT:    vmovaps %ymm10, 736(%r9)
4543 ; AVX2-FP-NEXT:    vmovaps %ymm12, 704(%r9)
4544 ; AVX2-FP-NEXT:    vmovaps %ymm13, 672(%r9)
4545 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4546 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%r9)
4547 ; AVX2-FP-NEXT:    vmovaps %ymm15, 576(%r9)
4548 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4549 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%r9)
4550 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4551 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%r9)
4552 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4553 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%r9)
4554 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4555 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%r9)
4556 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4557 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%r9)
4558 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4559 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%r9)
4560 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4561 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%r9)
4562 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4563 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%r9)
4564 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4565 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%r9)
4566 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4567 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%r9)
4568 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4569 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%r9)
4570 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4571 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%r9)
4572 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4573 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%r9)
4574 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4575 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%r9)
4576 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4577 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%r9)
4578 ; AVX2-FP-NEXT:    vmovaps %ymm14, 1088(%r9)
4579 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4580 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%r9)
4581 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4582 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%r9)
4583 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4584 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%r9)
4585 ; AVX2-FP-NEXT:    vmovaps %ymm11, 1248(%r9)
4586 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4587 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%r9)
4588 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4589 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%r9)
4590 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4591 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%r9)
4592 ; AVX2-FP-NEXT:    addq $1128, %rsp # imm = 0x468
4593 ; AVX2-FP-NEXT:    vzeroupper
4594 ; AVX2-FP-NEXT:    retq
4596 ; AVX2-FCP-LABEL: store_i64_stride5_vf32:
4597 ; AVX2-FCP:       # %bb.0:
4598 ; AVX2-FCP-NEXT:    subq $1128, %rsp # imm = 0x468
4599 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm13
4600 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm7
4601 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm9
4602 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm12
4603 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm2
4604 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm4
4605 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm1
4606 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %xmm0
4607 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
4608 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm6
4609 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm8
4610 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm2
4611 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm10
4612 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm11
4613 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %xmm3
4614 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm6, %ymm6
4615 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
4616 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4617 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm5
4618 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
4619 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4620 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3],ymm6[4,5,6,7]
4621 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
4622 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4623 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
4624 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm12[0],mem[0],ymm12[2],mem[2]
4625 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
4626 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4627 ; AVX2-FCP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
4628 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm8, %ymm5
4629 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4630 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4631 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm0, %ymm4
4632 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rsi), %ymm5
4633 ; AVX2-FCP-NEXT:    vmovups %ymm9, (%rsp) # 32-byte Spill
4634 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1,2,3],ymm5[4,5,6,7]
4635 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
4636 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4637 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
4638 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm9[0],mem[0],ymm9[2],mem[2]
4639 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
4640 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4641 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
4642 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
4643 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
4644 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4645 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
4646 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rsi), %ymm2
4647 ; AVX2-FCP-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4648 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm7[0,1,2,3],ymm2[4,5,6,7]
4649 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
4650 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4651 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
4652 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm7[0],mem[0],ymm7[2],mem[2]
4653 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
4654 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4655 ; AVX2-FCP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
4656 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm1
4657 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm2
4658 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4659 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4660 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4661 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4662 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
4663 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3],ymm1[4,5,6,7]
4664 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4665 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4666 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4667 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],mem[0],ymm13[2],mem[2]
4668 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4669 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4670 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
4671 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
4672 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
4673 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %xmm2
4674 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4675 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4676 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4677 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4678 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
4679 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4680 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rsi), %ymm1
4681 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4682 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4683 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4684 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4685 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4686 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4687 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4688 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %xmm0
4689 ; AVX2-FCP-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
4690 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm1
4691 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm2
4692 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4693 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4694 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4695 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4696 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm2
4697 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4698 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rsi), %ymm1
4699 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4700 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4701 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4702 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4703 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4704 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4705 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4706 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
4707 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
4708 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm1
4709 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %xmm2
4710 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4711 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4712 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4713 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4714 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
4715 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4716 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rsi), %ymm1
4717 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
4718 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4719 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4720 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4721 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
4722 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4723 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4724 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %xmm0
4725 ; AVX2-FCP-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
4726 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm1
4727 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm2
4728 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
4729 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4730 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4731 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
4732 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm9
4733 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rsi), %ymm1
4734 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm9[0,1,2,3],ymm1[4,5,6,7]
4735 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
4736 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4737 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
4738 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],mem[0],ymm9[2],mem[2]
4739 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4740 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4741 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
4742 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4743 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
4744 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4745 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rsi), %ymm0
4746 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4747 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
4748 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4749 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4750 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rsi), %ymm0
4751 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4752 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
4753 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4754 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4755 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rsi), %ymm0
4756 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
4757 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
4758 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
4759 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4760 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm1
4761 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm0
4762 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
4763 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4764 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rsi), %ymm3
4765 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4766 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm14
4767 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %ymm15
4768 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm14[1],ymm15[1],ymm14[3],ymm15[3]
4769 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
4770 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rsi), %ymm3
4771 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1],ymm2[2,3,4,5,6,7]
4772 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm3
4773 ; AVX2-FCP-NEXT:    vmovaps 128(%rcx), %ymm2
4774 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm2[1],ymm3[3],ymm2[3]
4775 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
4776 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rsi), %ymm5
4777 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm5[0,1],ymm4[2,3,4,5,6,7]
4778 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm5
4779 ; AVX2-FCP-NEXT:    vmovaps 192(%rcx), %ymm4
4780 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm10 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
4781 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm10 = ymm10[0,2,3,3]
4782 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rsi), %ymm11
4783 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm10[2,3,4,5,6,7]
4784 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
4785 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4786 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4787 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm1
4788 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4789 ; AVX2-FCP-NEXT:    # ymm10 = ymm1[0,1],mem[2,3,4,5,6,7]
4790 ; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4791 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm10 # 32-byte Folded Reload
4792 ; AVX2-FCP-NEXT:    # ymm10 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4793 ; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4794 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm1[6,7]
4795 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4796 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4797 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4798 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4799 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
4800 ; AVX2-FCP-NEXT:    vbroadcastsd 48(%rcx), %ymm1
4801 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4802 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm1
4803 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4804 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4805 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4806 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4807 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4808 ; AVX2-FCP-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
4809 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1,2,3,4,5],ymm1[6,7]
4810 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4811 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4812 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4813 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],ymm15[0],ymm14[2],ymm15[2]
4814 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
4815 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
4816 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm1
4817 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4818 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4819 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4820 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4821 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4822 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4823 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm12[0,1,2,3,4,5],ymm1[6,7]
4824 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4825 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4826 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4827 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm13[2,3]
4828 ; AVX2-FCP-NEXT:    vbroadcastsd 112(%rcx), %ymm1
4829 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
4830 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm1
4831 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4832 ; AVX2-FCP-NEXT:    # ymm6 = ymm1[0,1],mem[2,3,4,5,6,7]
4833 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4834 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4835 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
4836 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4837 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm6 # 32-byte Folded Reload
4838 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1,2,3,4,5],ymm1[6,7]
4839 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4840 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
4841 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm2[0],ymm3[2],ymm2[2]
4842 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4843 ; AVX2-FCP-NEXT:    # ymm1 = ymm0[2,3],mem[2,3]
4844 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm2
4845 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm13 # 32-byte Folded Reload
4846 ; AVX2-FCP-NEXT:    # ymm13 = ymm2[0,1],mem[2,3,4,5,6,7]
4847 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm12 # 32-byte Folded Reload
4848 ; AVX2-FCP-NEXT:    # ymm12 = mem[0,1],ymm2[2,3],mem[4,5,6,7]
4849 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3,4,5],ymm2[6,7]
4850 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4851 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
4852 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4853 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm0[2,3]
4854 ; AVX2-FCP-NEXT:    vbroadcastsd 176(%rcx), %ymm3
4855 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5,6,7]
4856 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm3
4857 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm7 # 32-byte Folded Reload
4858 ; AVX2-FCP-NEXT:    # ymm7 = ymm3[0,1],mem[2,3,4,5,6,7]
4859 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm6 # 32-byte Folded Reload
4860 ; AVX2-FCP-NEXT:    # ymm6 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
4861 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm0 # 32-byte Folded Reload
4862 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm3[6,7]
4863 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
4864 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
4865 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
4866 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
4867 ; AVX2-FCP-NEXT:    # ymm2 = ymm2[2,3],mem[2,3]
4868 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm4
4869 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
4870 ; AVX2-FCP-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
4871 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm3 # 32-byte Folded Reload
4872 ; AVX2-FCP-NEXT:    # ymm3 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
4873 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm11[0,1,2,3,4,5],ymm4[6,7]
4874 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5],ymm2[6,7]
4875 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm9[2,3]
4876 ; AVX2-FCP-NEXT:    vbroadcastsd 240(%rcx), %ymm9
4877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm2[0,1],ymm9[2,3],ymm2[4,5,6,7]
4878 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm0
4879 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
4880 ; AVX2-FCP-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
4881 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
4882 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
4883 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
4884 ; AVX2-FCP-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
4885 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5],ymm9[6,7]
4886 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%r9)
4887 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 1184(%r9)
4888 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 1152(%r9)
4889 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4890 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1120(%r9)
4891 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 1056(%r9)
4892 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 1024(%r9)
4893 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 992(%r9)
4894 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4895 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%r9)
4896 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 896(%r9)
4897 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 864(%r9)
4898 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 832(%r9)
4899 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4900 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%r9)
4901 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 736(%r9)
4902 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 704(%r9)
4903 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 672(%r9)
4904 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4905 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%r9)
4906 ; AVX2-FCP-NEXT:    vmovaps %ymm15, 576(%r9)
4907 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4908 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%r9)
4909 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4910 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%r9)
4911 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4912 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%r9)
4913 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4914 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%r9)
4915 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4916 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%r9)
4917 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4918 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%r9)
4919 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4920 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%r9)
4921 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4922 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%r9)
4923 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
4924 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%r9)
4925 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4926 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%r9)
4927 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4928 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%r9)
4929 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4930 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%r9)
4931 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4932 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%r9)
4933 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4934 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%r9)
4935 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4936 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%r9)
4937 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 1088(%r9)
4938 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4939 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%r9)
4940 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4941 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%r9)
4942 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4943 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%r9)
4944 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 1248(%r9)
4945 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4946 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%r9)
4947 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4948 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%r9)
4949 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
4950 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%r9)
4951 ; AVX2-FCP-NEXT:    addq $1128, %rsp # imm = 0x468
4952 ; AVX2-FCP-NEXT:    vzeroupper
4953 ; AVX2-FCP-NEXT:    retq
4955 ; AVX512-LABEL: store_i64_stride5_vf32:
4956 ; AVX512:       # %bb.0:
4957 ; AVX512-NEXT:    subq $648, %rsp # imm = 0x288
4958 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm15
4959 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm20
4960 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm16
4961 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm17
4962 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm24
4963 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm22
4964 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm27
4965 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm1
4966 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm23
4967 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm25
4968 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm18
4969 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
4970 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm0
4971 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
4972 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4973 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
4974 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm0
4975 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
4976 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4977 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm0
4978 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
4979 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4980 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm0
4981 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
4982 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4983 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
4984 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
4985 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm0
4986 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
4987 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4988 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
4989 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
4990 ; AVX512-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4991 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm0
4992 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
4993 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4994 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
4995 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm26
4996 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
4997 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
4998 ; AVX512-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4999 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm0
5000 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
5001 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5002 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
5003 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
5004 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
5005 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5006 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
5007 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm18
5008 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
5009 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm0
5010 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
5011 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5012 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm0
5013 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
5014 ; AVX512-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
5015 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
5016 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm25
5017 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm0
5018 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm30
5019 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
5020 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
5021 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
5022 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
5023 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
5024 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5025 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm23
5026 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
5027 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
5028 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
5029 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
5030 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5031 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
5032 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm17
5033 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
5034 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
5035 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm0
5036 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6
5037 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
5038 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm13
5039 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
5040 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm16
5041 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5042 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm8
5043 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
5044 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
5045 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm2
5046 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm0
5047 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
5048 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
5049 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm31
5050 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm1
5051 ; AVX512-NEXT:    vmovdqa64 %zmm31, %zmm7
5052 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
5053 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm9
5054 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm5
5055 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm4
5056 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
5057 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
5058 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
5059 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
5060 ; AVX512-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
5061 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
5062 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
5063 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
5064 ; AVX512-NEXT:    movb $49, %al
5065 ; AVX512-NEXT:    kmovw %eax, %k1
5066 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5067 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5068 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5069 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5070 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
5071 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5072 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
5073 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
5074 ; AVX512-NEXT:    movb $-116, %al
5075 ; AVX512-NEXT:    kmovw %eax, %k3
5076 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5077 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
5078 ; AVX512-NEXT:    movb $24, %al
5079 ; AVX512-NEXT:    kmovw %eax, %k2
5080 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5081 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5082 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
5083 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
5084 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
5085 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm0
5086 ; AVX512-NEXT:    movb $8, %al
5087 ; AVX512-NEXT:    kmovw %eax, %k3
5088 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
5089 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm22
5090 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5091 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
5092 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
5093 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
5094 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5095 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
5096 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
5097 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
5098 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
5099 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
5100 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
5101 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
5102 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
5103 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5104 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
5105 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5106 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
5107 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm0
5108 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
5109 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
5110 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
5111 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
5112 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
5113 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
5114 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5115 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
5116 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm0
5117 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
5118 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm9
5119 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
5120 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
5121 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
5122 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
5123 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
5124 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
5125 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
5126 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
5127 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
5128 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
5129 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5130 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
5131 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5132 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
5133 ; AVX512-NEXT:    vmovdqa64 %zmm31, 64(%r9)
5134 ; AVX512-NEXT:    vmovdqa64 %zmm19, 128(%r9)
5135 ; AVX512-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5136 ; AVX512-NEXT:    vmovdqa64 %zmm12, 256(%r9)
5137 ; AVX512-NEXT:    vmovdqa64 %zmm2, 320(%r9)
5138 ; AVX512-NEXT:    vmovdqa64 %zmm4, 384(%r9)
5139 ; AVX512-NEXT:    vmovdqa64 %zmm14, 448(%r9)
5140 ; AVX512-NEXT:    vmovdqa64 %zmm5, 512(%r9)
5141 ; AVX512-NEXT:    vmovdqa64 %zmm25, 576(%r9)
5142 ; AVX512-NEXT:    vmovdqa64 %zmm15, 640(%r9)
5143 ; AVX512-NEXT:    vmovdqa64 %zmm8, 704(%r9)
5144 ; AVX512-NEXT:    vmovdqa64 %zmm10, 768(%r9)
5145 ; AVX512-NEXT:    vmovdqa64 %zmm16, 832(%r9)
5146 ; AVX512-NEXT:    vmovdqa64 %zmm18, 896(%r9)
5147 ; AVX512-NEXT:    vmovdqa64 %zmm20, 960(%r9)
5148 ; AVX512-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
5149 ; AVX512-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
5150 ; AVX512-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
5151 ; AVX512-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
5152 ; AVX512-NEXT:    vmovdqa64 %zmm7, (%r9)
5153 ; AVX512-NEXT:    addq $648, %rsp # imm = 0x288
5154 ; AVX512-NEXT:    vzeroupper
5155 ; AVX512-NEXT:    retq
5157 ; AVX512-FCP-LABEL: store_i64_stride5_vf32:
5158 ; AVX512-FCP:       # %bb.0:
5159 ; AVX512-FCP-NEXT:    subq $648, %rsp # imm = 0x288
5160 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
5161 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm20
5162 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm16
5163 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm17
5164 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm24
5165 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm22
5166 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm27
5167 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm1
5168 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm23
5169 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm25
5170 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm18
5171 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
5172 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
5173 ; AVX512-FCP-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
5174 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5175 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
5176 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
5177 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
5178 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5179 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
5180 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
5181 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5182 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
5183 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
5184 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5185 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
5186 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
5187 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
5188 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
5189 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5190 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
5191 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
5192 ; AVX512-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5193 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
5194 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
5195 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5196 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
5197 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
5198 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
5199 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
5200 ; AVX512-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5201 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
5202 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
5203 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5204 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
5205 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
5206 ; AVX512-FCP-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
5207 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5208 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
5209 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm18
5210 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
5211 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
5212 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
5213 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5214 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm0
5215 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
5216 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
5217 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
5218 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm25
5219 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
5220 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm30
5221 ; AVX512-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
5222 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
5223 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
5224 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
5225 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
5226 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5227 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm23
5228 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
5229 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
5230 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
5231 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
5232 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5233 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
5234 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm17
5235 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
5236 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
5237 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
5238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
5239 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
5240 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm13
5241 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
5242 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
5243 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5244 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
5245 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
5246 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
5247 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
5248 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
5249 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
5250 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
5251 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm31
5252 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
5253 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
5254 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
5255 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
5256 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
5257 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
5258 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
5259 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
5260 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
5261 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
5262 ; AVX512-FCP-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
5263 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
5264 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
5265 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
5266 ; AVX512-FCP-NEXT:    movb $49, %al
5267 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
5268 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5269 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5270 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5271 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5272 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
5273 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5274 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
5275 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
5276 ; AVX512-FCP-NEXT:    movb $-116, %al
5277 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
5278 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5279 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
5280 ; AVX512-FCP-NEXT:    movb $24, %al
5281 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
5282 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5283 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5284 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
5285 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
5286 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
5287 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm0
5288 ; AVX512-FCP-NEXT:    movb $8, %al
5289 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
5290 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
5291 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm22
5292 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5293 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
5294 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
5295 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
5296 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5297 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
5298 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
5299 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
5300 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
5301 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
5302 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
5303 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
5304 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
5305 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5306 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
5307 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5308 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
5309 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
5310 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
5311 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
5312 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
5313 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
5314 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
5315 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
5316 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5317 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
5318 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
5319 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
5320 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm9
5321 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
5322 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
5323 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
5324 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
5325 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
5326 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
5327 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
5328 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
5329 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
5330 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
5331 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5332 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
5333 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5334 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
5335 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, 64(%r9)
5336 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 128(%r9)
5337 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5338 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, 256(%r9)
5339 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 320(%r9)
5340 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 384(%r9)
5341 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 448(%r9)
5342 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 512(%r9)
5343 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 576(%r9)
5344 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 640(%r9)
5345 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 704(%r9)
5346 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 768(%r9)
5347 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 832(%r9)
5348 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 896(%r9)
5349 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 960(%r9)
5350 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
5351 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
5352 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
5353 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
5354 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, (%r9)
5355 ; AVX512-FCP-NEXT:    addq $648, %rsp # imm = 0x288
5356 ; AVX512-FCP-NEXT:    vzeroupper
5357 ; AVX512-FCP-NEXT:    retq
5359 ; AVX512DQ-LABEL: store_i64_stride5_vf32:
5360 ; AVX512DQ:       # %bb.0:
5361 ; AVX512DQ-NEXT:    subq $648, %rsp # imm = 0x288
5362 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm15
5363 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm20
5364 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm16
5365 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm17
5366 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm24
5367 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm22
5368 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm27
5369 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm1
5370 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm23
5371 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm25
5372 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm18
5373 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
5374 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm0
5375 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
5376 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5377 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
5378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm0
5379 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
5380 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5381 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm0
5382 ; AVX512DQ-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
5383 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5384 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm0
5385 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
5386 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5387 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
5388 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
5389 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm0
5390 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
5391 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5392 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
5393 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
5394 ; AVX512DQ-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5395 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
5396 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
5397 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5398 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
5399 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm26
5400 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
5401 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
5402 ; AVX512DQ-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5403 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm0
5404 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
5405 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5406 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
5407 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm0
5408 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
5409 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5410 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
5411 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm18
5412 ; AVX512DQ-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
5413 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm0
5414 ; AVX512DQ-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
5415 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5416 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm0
5417 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
5418 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
5419 ; AVX512DQ-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
5420 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm25
5421 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm0
5422 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm30
5423 ; AVX512DQ-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
5424 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
5425 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
5426 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
5427 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
5428 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5429 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm23
5430 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
5431 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
5432 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
5433 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
5434 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5435 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
5436 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm17
5437 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
5438 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
5439 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm0
5440 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6
5441 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
5442 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm13
5443 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
5444 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm16
5445 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5446 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm8
5447 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
5448 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
5449 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm2
5450 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm0
5451 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3
5452 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
5453 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm31
5454 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm1
5455 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm7
5456 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
5457 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm9
5458 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm5
5459 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm4
5460 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
5461 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
5462 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
5463 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
5464 ; AVX512DQ-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
5465 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
5466 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
5467 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
5468 ; AVX512DQ-NEXT:    movb $49, %al
5469 ; AVX512DQ-NEXT:    kmovw %eax, %k1
5470 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5471 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5472 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5473 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5474 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
5475 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5476 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
5477 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
5478 ; AVX512DQ-NEXT:    movb $-116, %al
5479 ; AVX512DQ-NEXT:    kmovw %eax, %k3
5480 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5481 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
5482 ; AVX512DQ-NEXT:    movb $24, %al
5483 ; AVX512DQ-NEXT:    kmovw %eax, %k2
5484 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5485 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5486 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
5487 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
5488 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
5489 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm0
5490 ; AVX512DQ-NEXT:    movb $8, %al
5491 ; AVX512DQ-NEXT:    kmovw %eax, %k3
5492 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
5493 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm22
5494 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5495 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
5496 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
5497 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
5498 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5499 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
5500 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
5501 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
5502 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
5503 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
5504 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
5505 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
5506 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
5507 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5508 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
5509 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5510 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
5511 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm0
5512 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
5513 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
5514 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
5515 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
5516 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
5517 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
5518 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5519 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
5520 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm0
5521 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
5522 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm9
5523 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
5524 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
5525 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
5526 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
5527 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
5528 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
5529 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
5530 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
5531 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
5532 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
5533 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5534 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
5535 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5536 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
5537 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 64(%r9)
5538 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 128(%r9)
5539 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5540 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 256(%r9)
5541 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 320(%r9)
5542 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 384(%r9)
5543 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 448(%r9)
5544 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 512(%r9)
5545 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 576(%r9)
5546 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 640(%r9)
5547 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 704(%r9)
5548 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 768(%r9)
5549 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 832(%r9)
5550 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 896(%r9)
5551 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 960(%r9)
5552 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
5553 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
5554 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
5555 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
5556 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, (%r9)
5557 ; AVX512DQ-NEXT:    addq $648, %rsp # imm = 0x288
5558 ; AVX512DQ-NEXT:    vzeroupper
5559 ; AVX512DQ-NEXT:    retq
5561 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf32:
5562 ; AVX512DQ-FCP:       # %bb.0:
5563 ; AVX512DQ-FCP-NEXT:    subq $648, %rsp # imm = 0x288
5564 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
5565 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm20
5566 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm16
5567 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm17
5568 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm24
5569 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm22
5570 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm27
5571 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm1
5572 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm23
5573 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm25
5574 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm18
5575 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
5576 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
5577 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
5578 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5579 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
5580 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
5581 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
5582 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5583 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
5584 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
5585 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5586 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
5587 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
5588 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5589 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
5590 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
5591 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
5592 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
5593 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5594 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
5595 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
5596 ; AVX512DQ-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5597 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
5598 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
5599 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5600 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
5601 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
5602 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
5603 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
5604 ; AVX512DQ-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5605 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
5606 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
5607 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5608 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
5609 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
5610 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
5611 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5612 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
5613 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm18
5614 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
5615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
5616 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
5617 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5618 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm0
5619 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
5620 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
5621 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
5622 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm25
5623 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
5624 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm30
5625 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
5626 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
5627 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
5628 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
5629 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
5630 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5631 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm23
5632 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
5633 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
5634 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
5635 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
5636 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5637 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
5638 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm17
5639 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
5640 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
5641 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
5642 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
5643 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
5644 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm13
5645 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
5646 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
5647 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5648 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
5649 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
5650 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
5651 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
5652 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
5653 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
5654 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
5655 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm31
5656 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
5657 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
5658 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
5659 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
5660 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
5661 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
5662 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
5663 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
5664 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
5665 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
5666 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
5667 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
5668 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
5669 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
5670 ; AVX512DQ-FCP-NEXT:    movb $49, %al
5671 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
5672 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5673 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5674 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5675 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5676 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
5677 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5678 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
5679 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
5680 ; AVX512DQ-FCP-NEXT:    movb $-116, %al
5681 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
5682 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5683 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
5684 ; AVX512DQ-FCP-NEXT:    movb $24, %al
5685 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
5686 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5687 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5688 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
5689 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
5690 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
5691 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm0
5692 ; AVX512DQ-FCP-NEXT:    movb $8, %al
5693 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
5694 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
5695 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm22
5696 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5697 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
5698 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
5699 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
5700 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5701 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
5702 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
5703 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
5704 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
5705 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
5706 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
5707 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
5708 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
5709 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5710 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
5711 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5712 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
5713 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
5714 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
5715 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
5716 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
5717 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
5718 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
5719 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
5720 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5721 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
5722 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
5723 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
5724 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm9
5725 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
5726 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
5727 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
5728 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
5729 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
5730 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
5731 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
5732 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
5733 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
5734 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
5735 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5736 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
5737 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5738 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
5739 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 64(%r9)
5740 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 128(%r9)
5741 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5742 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, 256(%r9)
5743 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 320(%r9)
5744 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 384(%r9)
5745 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 448(%r9)
5746 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 512(%r9)
5747 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 576(%r9)
5748 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 640(%r9)
5749 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 704(%r9)
5750 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 768(%r9)
5751 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 832(%r9)
5752 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 896(%r9)
5753 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 960(%r9)
5754 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
5755 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
5756 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
5757 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
5758 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, (%r9)
5759 ; AVX512DQ-FCP-NEXT:    addq $648, %rsp # imm = 0x288
5760 ; AVX512DQ-FCP-NEXT:    vzeroupper
5761 ; AVX512DQ-FCP-NEXT:    retq
5763 ; AVX512BW-LABEL: store_i64_stride5_vf32:
5764 ; AVX512BW:       # %bb.0:
5765 ; AVX512BW-NEXT:    subq $648, %rsp # imm = 0x288
5766 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
5767 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm20
5768 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm16
5769 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm17
5770 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm24
5771 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm22
5772 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm27
5773 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm1
5774 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm23
5775 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm25
5776 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm18
5777 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
5778 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm0
5779 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
5780 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5781 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
5782 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0
5783 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
5784 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5785 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm0
5786 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
5787 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5788 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm0
5789 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
5790 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5791 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
5792 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
5793 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm0
5794 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
5795 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5796 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
5797 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
5798 ; AVX512BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5799 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm0
5800 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
5801 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5802 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
5803 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm26
5804 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
5805 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
5806 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5807 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0
5808 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
5809 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5810 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
5811 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
5812 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
5813 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5814 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
5815 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm18
5816 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
5817 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm0
5818 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
5819 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5820 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm0
5821 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
5822 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
5823 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
5824 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm25
5825 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm0
5826 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm30
5827 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
5828 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
5829 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
5830 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
5831 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
5832 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5833 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm23
5834 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
5835 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
5836 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
5837 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
5838 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5839 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
5840 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm17
5841 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
5842 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
5843 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
5844 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6
5845 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
5846 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm13
5847 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
5848 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm16
5849 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
5850 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm8
5851 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
5852 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
5853 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
5854 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
5855 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
5856 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
5857 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm31
5858 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm1
5859 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, %zmm7
5860 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
5861 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm9
5862 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm5
5863 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4
5864 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
5865 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
5866 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
5867 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
5868 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
5869 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
5870 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
5871 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
5872 ; AVX512BW-NEXT:    movb $49, %al
5873 ; AVX512BW-NEXT:    kmovd %eax, %k1
5874 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5875 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5876 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
5877 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
5878 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
5879 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
5880 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
5881 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
5882 ; AVX512BW-NEXT:    movb $-116, %al
5883 ; AVX512BW-NEXT:    kmovd %eax, %k3
5884 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5885 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
5886 ; AVX512BW-NEXT:    movb $24, %al
5887 ; AVX512BW-NEXT:    kmovd %eax, %k2
5888 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5889 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
5890 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
5891 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
5892 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
5893 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm0
5894 ; AVX512BW-NEXT:    movb $8, %al
5895 ; AVX512BW-NEXT:    kmovd %eax, %k3
5896 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
5897 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm22
5898 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5899 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
5900 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
5901 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
5902 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
5903 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
5904 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
5905 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
5906 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
5907 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
5908 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
5909 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
5910 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
5911 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5912 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
5913 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
5914 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
5915 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm0
5916 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
5917 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
5918 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
5919 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
5920 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
5921 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
5922 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5923 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
5924 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
5925 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
5926 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm9
5927 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
5928 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
5929 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
5930 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
5931 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
5932 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
5933 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
5934 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
5935 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
5936 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
5937 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
5938 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
5939 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
5940 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
5941 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 64(%r9)
5942 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 128(%r9)
5943 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 192(%r9)
5944 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 256(%r9)
5945 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 320(%r9)
5946 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 384(%r9)
5947 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 448(%r9)
5948 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 512(%r9)
5949 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 576(%r9)
5950 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 640(%r9)
5951 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 704(%r9)
5952 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 768(%r9)
5953 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 832(%r9)
5954 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 896(%r9)
5955 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 960(%r9)
5956 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
5957 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
5958 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
5959 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
5960 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, (%r9)
5961 ; AVX512BW-NEXT:    addq $648, %rsp # imm = 0x288
5962 ; AVX512BW-NEXT:    vzeroupper
5963 ; AVX512BW-NEXT:    retq
5965 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf32:
5966 ; AVX512BW-FCP:       # %bb.0:
5967 ; AVX512BW-FCP-NEXT:    subq $648, %rsp # imm = 0x288
5968 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
5969 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm20
5970 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm16
5971 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm17
5972 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm24
5973 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm22
5974 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm27
5975 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm1
5976 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm23
5977 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm25
5978 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm18
5979 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
5980 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
5981 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
5982 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5983 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
5984 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
5985 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
5986 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5987 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
5988 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
5989 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5990 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
5991 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
5992 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5993 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
5994 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
5995 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
5996 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
5997 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5998 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
5999 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
6000 ; AVX512BW-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6001 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
6002 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
6003 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6004 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
6005 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
6006 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
6007 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
6008 ; AVX512BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6009 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
6010 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
6011 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6012 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
6013 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
6014 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
6015 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6016 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
6017 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm18
6018 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
6019 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
6020 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
6021 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6022 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm0
6023 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
6024 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
6025 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
6026 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm25
6027 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
6028 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm30
6029 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
6030 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
6031 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
6032 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
6033 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
6034 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6035 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm23
6036 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
6037 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
6038 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
6039 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
6040 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6041 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
6042 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm17
6043 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
6044 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
6045 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
6046 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
6047 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
6048 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm13
6049 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
6050 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
6051 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
6052 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
6053 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
6054 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
6055 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
6056 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
6057 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
6058 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
6059 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm31
6060 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
6061 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
6062 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
6063 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
6064 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
6065 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
6066 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
6067 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
6068 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
6069 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
6070 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
6071 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
6072 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
6073 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
6074 ; AVX512BW-FCP-NEXT:    movb $49, %al
6075 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
6076 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6077 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6078 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
6079 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
6080 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
6081 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
6082 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
6083 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
6084 ; AVX512BW-FCP-NEXT:    movb $-116, %al
6085 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
6086 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6087 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
6088 ; AVX512BW-FCP-NEXT:    movb $24, %al
6089 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
6090 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6091 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
6092 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
6093 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
6094 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
6095 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm0
6096 ; AVX512BW-FCP-NEXT:    movb $8, %al
6097 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
6098 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
6099 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm22
6100 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6101 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
6102 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
6103 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
6104 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6105 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
6106 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
6107 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
6108 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
6109 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
6110 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
6111 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
6112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
6113 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6114 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
6115 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
6116 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
6117 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
6118 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
6119 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
6120 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
6121 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
6122 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
6123 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
6124 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6125 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
6126 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
6127 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
6128 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm9
6129 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
6130 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
6131 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
6132 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
6133 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
6134 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
6135 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
6136 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
6137 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
6138 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
6139 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6140 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
6141 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
6142 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
6143 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, 64(%r9)
6144 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 128(%r9)
6145 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 192(%r9)
6146 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, 256(%r9)
6147 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 320(%r9)
6148 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 384(%r9)
6149 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 448(%r9)
6150 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 512(%r9)
6151 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 576(%r9)
6152 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 640(%r9)
6153 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 704(%r9)
6154 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 768(%r9)
6155 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 832(%r9)
6156 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 896(%r9)
6157 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 960(%r9)
6158 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
6159 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
6160 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
6161 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
6162 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, (%r9)
6163 ; AVX512BW-FCP-NEXT:    addq $648, %rsp # imm = 0x288
6164 ; AVX512BW-FCP-NEXT:    vzeroupper
6165 ; AVX512BW-FCP-NEXT:    retq
6167 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf32:
6168 ; AVX512DQ-BW:       # %bb.0:
6169 ; AVX512DQ-BW-NEXT:    subq $648, %rsp # imm = 0x288
6170 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm15
6171 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm20
6172 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm16
6173 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm17
6174 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm24
6175 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm22
6176 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm27
6177 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm1
6178 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm23
6179 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm25
6180 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm18
6181 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
6182 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm0
6183 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
6184 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6185 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
6186 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm0
6187 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
6188 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6189 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm0
6190 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
6191 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6192 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm0
6193 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
6194 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6195 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
6196 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
6197 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm0
6198 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
6199 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6200 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
6201 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
6202 ; AVX512DQ-BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6203 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
6204 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
6205 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6206 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
6207 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm26
6208 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
6209 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
6210 ; AVX512DQ-BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6211 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm0
6212 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
6213 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6214 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
6215 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm0
6216 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
6217 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6218 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
6219 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm18
6220 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
6221 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm0
6222 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
6223 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6224 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm0
6225 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
6226 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
6227 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
6228 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm25
6229 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm0
6230 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm30
6231 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
6232 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
6233 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
6234 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
6235 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
6236 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6237 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm23
6238 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
6239 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
6240 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
6241 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
6242 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6243 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
6244 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm17
6245 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
6246 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
6247 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
6248 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6
6249 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
6250 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm13
6251 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
6252 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm16
6253 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
6254 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm8
6255 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
6256 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
6257 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm2
6258 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm0
6259 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3
6260 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
6261 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm31
6262 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm1
6263 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm7
6264 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
6265 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm9
6266 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm5
6267 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm4
6268 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
6269 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
6270 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
6271 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
6272 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
6273 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
6274 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
6275 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
6276 ; AVX512DQ-BW-NEXT:    movb $49, %al
6277 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
6278 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6279 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6280 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
6281 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
6282 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
6283 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
6284 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
6285 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
6286 ; AVX512DQ-BW-NEXT:    movb $-116, %al
6287 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
6288 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6289 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
6290 ; AVX512DQ-BW-NEXT:    movb $24, %al
6291 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
6292 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6293 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
6294 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
6295 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
6296 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
6297 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm0
6298 ; AVX512DQ-BW-NEXT:    movb $8, %al
6299 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
6300 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
6301 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm22
6302 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6303 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
6304 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
6305 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
6306 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6307 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
6308 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
6309 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
6310 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
6311 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
6312 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
6313 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
6314 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
6315 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6316 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
6317 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
6318 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
6319 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm0
6320 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
6321 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
6322 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
6323 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
6324 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
6325 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
6326 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6327 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
6328 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm0
6329 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
6330 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm9
6331 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
6332 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
6333 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
6334 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
6335 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
6336 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
6337 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
6338 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
6339 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
6340 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
6341 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6342 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
6343 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
6344 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
6345 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 64(%r9)
6346 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 128(%r9)
6347 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 192(%r9)
6348 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 256(%r9)
6349 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 320(%r9)
6350 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 384(%r9)
6351 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 448(%r9)
6352 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 512(%r9)
6353 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 576(%r9)
6354 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 640(%r9)
6355 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 704(%r9)
6356 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 768(%r9)
6357 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 832(%r9)
6358 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 896(%r9)
6359 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 960(%r9)
6360 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
6361 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
6362 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
6363 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
6364 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, (%r9)
6365 ; AVX512DQ-BW-NEXT:    addq $648, %rsp # imm = 0x288
6366 ; AVX512DQ-BW-NEXT:    vzeroupper
6367 ; AVX512DQ-BW-NEXT:    retq
6369 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf32:
6370 ; AVX512DQ-BW-FCP:       # %bb.0:
6371 ; AVX512DQ-BW-FCP-NEXT:    subq $648, %rsp # imm = 0x288
6372 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm15
6373 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm20
6374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm16
6375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm17
6376 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm24
6377 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm22
6378 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm27
6379 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm1
6380 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm23
6381 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm25
6382 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm18
6383 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [3,0,0,0,12,4,0,0]
6384 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
6385 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm11, %zmm0
6386 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6387 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,3,11,0,0,0,4,12]
6388 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
6389 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm18, %zmm19, %zmm0
6390 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6391 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
6392 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm25, %zmm19, %zmm0
6393 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6394 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
6395 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm0
6396 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6397 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm19
6398 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,0,0,8,0,0,0,1]
6399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
6400 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm28, %zmm0
6401 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6402 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,8,0,0,0,1,9,0]
6403 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [15,7,15,7,15,7,15,7]
6404 ; AVX512DQ-BW-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6405 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
6406 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm29, %zmm0
6407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6408 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [6,14,0,0,0,7,15,0]
6409 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm26
6410 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm26
6411 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [13,5,13,5,13,5,13,5]
6412 ; AVX512DQ-BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
6413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
6414 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
6415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6416 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [1,0,0,0,10,2,0,0]
6417 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
6418 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm31, %zmm0
6419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6420 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm18, %zmm28, %zmm27
6421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm18
6422 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm18
6423 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm0
6424 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm25, %zmm21, %zmm0
6425 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6426 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm0
6427 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm31, %zmm0
6428 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, (%rsp) # 64-byte Spill
6429 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm25, %zmm28, %zmm22
6430 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm25
6431 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
6432 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm30
6433 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm30
6434 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm28, %zmm24
6435 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm28 = [0,5,13,0,0,0,6,14]
6436 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm12, %zmm25
6437 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm21, %zmm0
6438 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6439 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm23
6440 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm28, %zmm23
6441 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm12
6442 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm17, %zmm21
6443 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm17, %zmm31, %zmm1
6444 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
6445 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,0,2,10,0,0,0,3]
6446 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm17
6447 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm10, %zmm17
6448 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm14, %zmm20
6449 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm0
6450 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
6451 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm6
6452 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm13
6453 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm13
6454 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
6455 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm16
6456 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm8
6457 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm8
6458 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm15
6459 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm2
6460 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm0
6461 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
6462 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm3
6463 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm31
6464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm1
6465 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
6466 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm7
6467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
6468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
6469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4
6470 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm14, %zmm2
6471 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm29, %zmm9
6472 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm28, %zmm5
6473 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm4
6474 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm31, %zmm1, %zmm11
6475 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm29
6476 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm31, %zmm28
6477 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm10, %zmm31
6478 ; AVX512DQ-BW-FCP-NEXT:    movb $49, %al
6479 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
6480 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6481 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6482 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
6483 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
6484 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm10 {%k1}
6485 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
6486 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
6487 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm19 {%k1}
6488 ; AVX512DQ-BW-FCP-NEXT:    movb $-116, %al
6489 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
6490 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6491 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
6492 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %al
6493 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
6494 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6495 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
6496 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm20 {%k3}
6497 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm15 {%k3}
6498 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm2 {%k3}
6499 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm0
6500 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
6501 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
6502 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
6503 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm22
6504 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6505 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k2}
6506 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,14,3,4,5,6,15]
6507 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
6508 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
6509 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm17 {%k1}
6510 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [12,1,2,3,4,13,6,7]
6511 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm23
6512 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,9,2,3,4,5,10,7]
6513 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm17
6514 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,8,5,6,7]
6515 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm20
6516 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm18 {%k2}
6517 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6518 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
6519 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
6520 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
6521 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
6522 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
6523 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm18
6524 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm16
6525 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm8
6526 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm15
6527 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm25 {%k2}
6528 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
6529 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
6530 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
6531 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm4 {%k1}
6532 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm9
6533 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm11, %zmm7
6534 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm11, %zmm2
6535 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k3}
6536 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm25
6537 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm3, %zmm5
6538 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm6, %zmm4
6539 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm12 {%k2}
6540 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm12
6541 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm28 {%k2}
6542 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm28
6543 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
6544 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm31 {%k1}
6545 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
6546 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm19 {%k3}
6547 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 64(%r9)
6548 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 128(%r9)
6549 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 192(%r9)
6550 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, 256(%r9)
6551 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 320(%r9)
6552 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 384(%r9)
6553 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 448(%r9)
6554 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 512(%r9)
6555 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 576(%r9)
6556 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 640(%r9)
6557 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 704(%r9)
6558 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 768(%r9)
6559 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 832(%r9)
6560 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 896(%r9)
6561 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 960(%r9)
6562 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 1024(%r9)
6563 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 1088(%r9)
6564 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 1152(%r9)
6565 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 1216(%r9)
6566 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, (%r9)
6567 ; AVX512DQ-BW-FCP-NEXT:    addq $648, %rsp # imm = 0x288
6568 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
6569 ; AVX512DQ-BW-FCP-NEXT:    retq
6570   %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 64
6571   %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 64
6572   %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 64
6573   %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 64
6574   %in.vec4 = load <32 x i64>, ptr %in.vecptr4, align 64
6575   %1 = shufflevector <32 x i64> %in.vec0, <32 x i64> %in.vec1, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
6576   %2 = shufflevector <32 x i64> %in.vec2, <32 x i64> %in.vec3, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
6577   %3 = shufflevector <64 x i64> %1, <64 x i64> %2, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
6578   %4 = shufflevector <32 x i64> %in.vec4, <32 x i64> 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>
6579   %5 = shufflevector <128 x i64> %3, <128 x i64> %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>
6580   %interleaved.vec = shufflevector <160 x i64> %5, <160 x i64> 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>
6581   store <160 x i64> %interleaved.vec, ptr %out.vec, align 64
6582   ret void
6585 define void @store_i64_stride5_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %out.vec) nounwind {
6586 ; SSE-LABEL: store_i64_stride5_vf64:
6587 ; SSE:       # %bb.0:
6588 ; SSE-NEXT:    subq $2200, %rsp # imm = 0x898
6589 ; SSE-NEXT:    movapd (%rdi), %xmm3
6590 ; SSE-NEXT:    movapd 16(%rdi), %xmm4
6591 ; SSE-NEXT:    movapd 32(%rdi), %xmm5
6592 ; SSE-NEXT:    movapd (%rsi), %xmm6
6593 ; SSE-NEXT:    movapd 16(%rsi), %xmm7
6594 ; SSE-NEXT:    movapd 32(%rsi), %xmm8
6595 ; SSE-NEXT:    movapd (%rdx), %xmm9
6596 ; SSE-NEXT:    movapd 16(%rdx), %xmm10
6597 ; SSE-NEXT:    movapd 32(%rdx), %xmm11
6598 ; SSE-NEXT:    movapd (%rcx), %xmm12
6599 ; SSE-NEXT:    movapd 16(%rcx), %xmm13
6600 ; SSE-NEXT:    movapd 32(%rcx), %xmm14
6601 ; SSE-NEXT:    movapd 16(%r8), %xmm1
6602 ; SSE-NEXT:    movapd 32(%r8), %xmm0
6603 ; SSE-NEXT:    movapd (%r8), %xmm2
6604 ; SSE-NEXT:    movapd %xmm3, %xmm15
6605 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm6[0]
6606 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6607 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm2[0],xmm3[1]
6608 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6609 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
6610 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6611 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm12[0]
6612 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6613 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm2[1]
6614 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6615 ; SSE-NEXT:    movapd %xmm4, %xmm2
6616 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm7[0]
6617 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6618 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm1[0],xmm4[1]
6619 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6620 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm10[1]
6621 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6622 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm13[0]
6623 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6624 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
6625 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6626 ; SSE-NEXT:    movapd %xmm5, %xmm1
6627 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm8[0]
6628 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6629 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm0[0],xmm5[1]
6630 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6631 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm11[1]
6632 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6633 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm14[0]
6634 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6635 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
6636 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6637 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
6638 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
6639 ; SSE-NEXT:    movapd %xmm1, %xmm0
6640 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6641 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6642 ; SSE-NEXT:    movapd 48(%r8), %xmm0
6643 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6644 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6645 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
6646 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6647 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6648 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
6649 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6650 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6651 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6652 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6653 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
6654 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
6655 ; SSE-NEXT:    movapd %xmm1, %xmm0
6656 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6657 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6658 ; SSE-NEXT:    movapd 64(%r8), %xmm0
6659 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6660 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6661 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
6662 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6663 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6664 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
6665 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6666 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6667 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6668 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6669 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
6670 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
6671 ; SSE-NEXT:    movapd %xmm1, %xmm0
6672 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6673 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6674 ; SSE-NEXT:    movapd 80(%r8), %xmm0
6675 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6676 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6677 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
6678 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6679 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6680 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
6681 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6682 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6683 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6684 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6685 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
6686 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
6687 ; SSE-NEXT:    movapd %xmm1, %xmm0
6688 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6689 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6690 ; SSE-NEXT:    movapd 96(%r8), %xmm0
6691 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6692 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6693 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
6694 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6695 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6696 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
6697 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6698 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6699 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6700 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6701 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
6702 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
6703 ; SSE-NEXT:    movapd %xmm1, %xmm0
6704 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6705 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6706 ; SSE-NEXT:    movapd 112(%r8), %xmm0
6707 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6708 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6709 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
6710 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6711 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6712 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
6713 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6714 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6715 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6716 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6717 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
6718 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
6719 ; SSE-NEXT:    movapd %xmm1, %xmm0
6720 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6721 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6722 ; SSE-NEXT:    movapd 128(%r8), %xmm0
6723 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6724 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6725 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
6726 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6727 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6728 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
6729 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6730 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6731 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6732 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6733 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
6734 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
6735 ; SSE-NEXT:    movapd %xmm1, %xmm0
6736 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6737 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6738 ; SSE-NEXT:    movapd 144(%r8), %xmm0
6739 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6740 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6741 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
6742 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6743 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6744 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
6745 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6746 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6747 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6748 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6749 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
6750 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
6751 ; SSE-NEXT:    movapd %xmm1, %xmm0
6752 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6753 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6754 ; SSE-NEXT:    movapd 160(%r8), %xmm0
6755 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6756 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6757 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
6758 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6759 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6760 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
6761 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6762 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6763 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6764 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6765 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
6766 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
6767 ; SSE-NEXT:    movapd %xmm1, %xmm0
6768 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6769 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6770 ; SSE-NEXT:    movapd 176(%r8), %xmm0
6771 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6772 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6773 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
6774 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6775 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6776 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
6777 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6778 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6779 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6780 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6781 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
6782 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
6783 ; SSE-NEXT:    movapd %xmm1, %xmm0
6784 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6785 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6786 ; SSE-NEXT:    movapd 192(%r8), %xmm0
6787 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6788 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6789 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
6790 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6791 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6792 ; SSE-NEXT:    movapd 192(%rcx), %xmm2
6793 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6794 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6795 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6796 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6797 ; SSE-NEXT:    movapd 208(%rdi), %xmm1
6798 ; SSE-NEXT:    movapd 208(%rsi), %xmm2
6799 ; SSE-NEXT:    movapd %xmm1, %xmm0
6800 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6801 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6802 ; SSE-NEXT:    movapd 208(%r8), %xmm0
6803 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6804 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6805 ; SSE-NEXT:    movapd 208(%rdx), %xmm1
6806 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6807 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6808 ; SSE-NEXT:    movapd 208(%rcx), %xmm2
6809 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6810 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6811 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6812 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6813 ; SSE-NEXT:    movapd 224(%rdi), %xmm1
6814 ; SSE-NEXT:    movapd 224(%rsi), %xmm2
6815 ; SSE-NEXT:    movapd %xmm1, %xmm0
6816 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6817 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6818 ; SSE-NEXT:    movapd 224(%r8), %xmm0
6819 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6820 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6821 ; SSE-NEXT:    movapd 224(%rdx), %xmm1
6822 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6823 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6824 ; SSE-NEXT:    movapd 224(%rcx), %xmm2
6825 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6826 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6827 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6828 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6829 ; SSE-NEXT:    movapd 240(%rdi), %xmm1
6830 ; SSE-NEXT:    movapd 240(%rsi), %xmm2
6831 ; SSE-NEXT:    movapd %xmm1, %xmm0
6832 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6833 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6834 ; SSE-NEXT:    movapd 240(%r8), %xmm0
6835 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6836 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6837 ; SSE-NEXT:    movapd 240(%rdx), %xmm1
6838 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6839 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6840 ; SSE-NEXT:    movapd 240(%rcx), %xmm2
6841 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6842 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6843 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6844 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6845 ; SSE-NEXT:    movapd 256(%rdi), %xmm1
6846 ; SSE-NEXT:    movapd 256(%rsi), %xmm2
6847 ; SSE-NEXT:    movapd %xmm1, %xmm0
6848 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6849 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6850 ; SSE-NEXT:    movapd 256(%r8), %xmm0
6851 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6852 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6853 ; SSE-NEXT:    movapd 256(%rdx), %xmm1
6854 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6855 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6856 ; SSE-NEXT:    movapd 256(%rcx), %xmm2
6857 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6858 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6859 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6860 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6861 ; SSE-NEXT:    movapd 272(%rdi), %xmm1
6862 ; SSE-NEXT:    movapd 272(%rsi), %xmm2
6863 ; SSE-NEXT:    movapd %xmm1, %xmm0
6864 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6865 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6866 ; SSE-NEXT:    movapd 272(%r8), %xmm0
6867 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6868 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6869 ; SSE-NEXT:    movapd 272(%rdx), %xmm1
6870 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6871 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6872 ; SSE-NEXT:    movapd 272(%rcx), %xmm2
6873 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6874 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6875 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6876 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6877 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
6878 ; SSE-NEXT:    movapd 288(%rsi), %xmm2
6879 ; SSE-NEXT:    movapd %xmm1, %xmm0
6880 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6881 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6882 ; SSE-NEXT:    movapd 288(%r8), %xmm0
6883 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6884 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6885 ; SSE-NEXT:    movapd 288(%rdx), %xmm1
6886 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6887 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6888 ; SSE-NEXT:    movapd 288(%rcx), %xmm2
6889 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6890 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6891 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6892 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6893 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
6894 ; SSE-NEXT:    movapd 304(%rsi), %xmm2
6895 ; SSE-NEXT:    movapd %xmm1, %xmm0
6896 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6897 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6898 ; SSE-NEXT:    movapd 304(%r8), %xmm0
6899 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6900 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6901 ; SSE-NEXT:    movapd 304(%rdx), %xmm1
6902 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6903 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6904 ; SSE-NEXT:    movapd 304(%rcx), %xmm2
6905 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6906 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6907 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6908 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6909 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
6910 ; SSE-NEXT:    movapd 320(%rsi), %xmm2
6911 ; SSE-NEXT:    movapd %xmm1, %xmm0
6912 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6913 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6914 ; SSE-NEXT:    movapd 320(%r8), %xmm0
6915 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6916 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6917 ; SSE-NEXT:    movapd 320(%rdx), %xmm1
6918 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6919 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6920 ; SSE-NEXT:    movapd 320(%rcx), %xmm2
6921 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6922 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6923 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6924 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6925 ; SSE-NEXT:    movapd 336(%rdi), %xmm1
6926 ; SSE-NEXT:    movapd 336(%rsi), %xmm2
6927 ; SSE-NEXT:    movapd %xmm1, %xmm0
6928 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6929 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6930 ; SSE-NEXT:    movapd 336(%r8), %xmm0
6931 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6932 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6933 ; SSE-NEXT:    movapd 336(%rdx), %xmm1
6934 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6935 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6936 ; SSE-NEXT:    movapd 336(%rcx), %xmm2
6937 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6938 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6939 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6940 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6941 ; SSE-NEXT:    movapd 352(%rdi), %xmm1
6942 ; SSE-NEXT:    movapd 352(%rsi), %xmm2
6943 ; SSE-NEXT:    movapd %xmm1, %xmm0
6944 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6945 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6946 ; SSE-NEXT:    movapd 352(%r8), %xmm0
6947 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6948 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6949 ; SSE-NEXT:    movapd 352(%rdx), %xmm1
6950 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6951 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6952 ; SSE-NEXT:    movapd 352(%rcx), %xmm2
6953 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6954 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6955 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6956 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6957 ; SSE-NEXT:    movapd 368(%rdi), %xmm1
6958 ; SSE-NEXT:    movapd 368(%rsi), %xmm2
6959 ; SSE-NEXT:    movapd %xmm1, %xmm0
6960 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6961 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6962 ; SSE-NEXT:    movapd 368(%r8), %xmm0
6963 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6964 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6965 ; SSE-NEXT:    movapd 368(%rdx), %xmm1
6966 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6967 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6968 ; SSE-NEXT:    movapd 368(%rcx), %xmm2
6969 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6970 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6971 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6972 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6973 ; SSE-NEXT:    movapd 384(%rdi), %xmm1
6974 ; SSE-NEXT:    movapd 384(%rsi), %xmm2
6975 ; SSE-NEXT:    movapd %xmm1, %xmm0
6976 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6977 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6978 ; SSE-NEXT:    movapd 384(%r8), %xmm0
6979 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6980 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6981 ; SSE-NEXT:    movapd 384(%rdx), %xmm1
6982 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6983 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6984 ; SSE-NEXT:    movapd 384(%rcx), %xmm2
6985 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
6986 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6987 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
6988 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6989 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
6990 ; SSE-NEXT:    movapd 400(%rsi), %xmm2
6991 ; SSE-NEXT:    movapd %xmm1, %xmm0
6992 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
6993 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6994 ; SSE-NEXT:    movapd 400(%r8), %xmm0
6995 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
6996 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6997 ; SSE-NEXT:    movapd 400(%rdx), %xmm1
6998 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
6999 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7000 ; SSE-NEXT:    movapd 400(%rcx), %xmm2
7001 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7002 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7003 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
7004 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7005 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
7006 ; SSE-NEXT:    movapd 416(%rsi), %xmm2
7007 ; SSE-NEXT:    movapd %xmm1, %xmm0
7008 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
7009 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7010 ; SSE-NEXT:    movapd 416(%r8), %xmm0
7011 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7012 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7013 ; SSE-NEXT:    movapd 416(%rdx), %xmm1
7014 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
7015 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7016 ; SSE-NEXT:    movapd 416(%rcx), %xmm2
7017 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7018 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7019 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
7020 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7021 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
7022 ; SSE-NEXT:    movapd 432(%rsi), %xmm2
7023 ; SSE-NEXT:    movapd %xmm1, %xmm0
7024 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
7025 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7026 ; SSE-NEXT:    movapd 432(%r8), %xmm0
7027 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7028 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
7029 ; SSE-NEXT:    movapd 432(%rdx), %xmm1
7030 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
7031 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7032 ; SSE-NEXT:    movapd 432(%rcx), %xmm2
7033 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
7034 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7035 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
7036 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7037 ; SSE-NEXT:    movapd 448(%rdi), %xmm1
7038 ; SSE-NEXT:    movapd 448(%rsi), %xmm2
7039 ; SSE-NEXT:    movapd %xmm1, %xmm0
7040 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
7041 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7042 ; SSE-NEXT:    movapd 448(%r8), %xmm0
7043 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
7044 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7045 ; SSE-NEXT:    movapd 448(%rdx), %xmm1
7046 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
7047 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7048 ; SSE-NEXT:    movapd 448(%rcx), %xmm15
7049 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm15[0]
7050 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7051 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm0[1]
7052 ; SSE-NEXT:    movapd 464(%rdi), %xmm14
7053 ; SSE-NEXT:    movapd 464(%rsi), %xmm13
7054 ; SSE-NEXT:    movapd %xmm14, %xmm0
7055 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm13[0]
7056 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7057 ; SSE-NEXT:    movapd 464(%r8), %xmm0
7058 ; SSE-NEXT:    movsd {{.*#+}} xmm14 = xmm0[0],xmm14[1]
7059 ; SSE-NEXT:    movapd 464(%rdx), %xmm10
7060 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm10[1]
7061 ; SSE-NEXT:    movapd 464(%rcx), %xmm9
7062 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
7063 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm0[1]
7064 ; SSE-NEXT:    movapd 480(%rdi), %xmm11
7065 ; SSE-NEXT:    movapd 480(%rsi), %xmm8
7066 ; SSE-NEXT:    movapd %xmm11, %xmm12
7067 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm8[0]
7068 ; SSE-NEXT:    movapd 480(%r8), %xmm2
7069 ; SSE-NEXT:    movsd {{.*#+}} xmm11 = xmm2[0],xmm11[1]
7070 ; SSE-NEXT:    movapd 480(%rdx), %xmm6
7071 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm6[1]
7072 ; SSE-NEXT:    movapd 480(%rcx), %xmm3
7073 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm6 = xmm6[0],xmm3[0]
7074 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm2[1]
7075 ; SSE-NEXT:    movapd 496(%rdi), %xmm4
7076 ; SSE-NEXT:    movapd 496(%rsi), %xmm2
7077 ; SSE-NEXT:    movapd %xmm4, %xmm5
7078 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm2[0]
7079 ; SSE-NEXT:    movapd 496(%r8), %xmm7
7080 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm7[0],xmm4[1]
7081 ; SSE-NEXT:    movapd 496(%rdx), %xmm1
7082 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
7083 ; SSE-NEXT:    movapd 496(%rcx), %xmm0
7084 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
7085 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm7[1]
7086 ; SSE-NEXT:    movapd %xmm0, 2544(%r9)
7087 ; SSE-NEXT:    movapd %xmm2, 2528(%r9)
7088 ; SSE-NEXT:    movapd %xmm4, 2512(%r9)
7089 ; SSE-NEXT:    movapd %xmm1, 2496(%r9)
7090 ; SSE-NEXT:    movapd %xmm5, 2480(%r9)
7091 ; SSE-NEXT:    movapd %xmm3, 2464(%r9)
7092 ; SSE-NEXT:    movapd %xmm8, 2448(%r9)
7093 ; SSE-NEXT:    movapd %xmm11, 2432(%r9)
7094 ; SSE-NEXT:    movapd %xmm6, 2416(%r9)
7095 ; SSE-NEXT:    movapd %xmm12, 2400(%r9)
7096 ; SSE-NEXT:    movapd %xmm9, 2384(%r9)
7097 ; SSE-NEXT:    movapd %xmm13, 2368(%r9)
7098 ; SSE-NEXT:    movapd %xmm14, 2352(%r9)
7099 ; SSE-NEXT:    movapd %xmm10, 2336(%r9)
7100 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7101 ; SSE-NEXT:    movaps %xmm0, 2320(%r9)
7102 ; SSE-NEXT:    movapd %xmm15, 2304(%r9)
7103 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7104 ; SSE-NEXT:    movaps %xmm0, 2288(%r9)
7105 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7106 ; SSE-NEXT:    movaps %xmm0, 2272(%r9)
7107 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7108 ; SSE-NEXT:    movaps %xmm0, 2256(%r9)
7109 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7110 ; SSE-NEXT:    movaps %xmm0, 2240(%r9)
7111 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7112 ; SSE-NEXT:    movaps %xmm0, 2224(%r9)
7113 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7114 ; SSE-NEXT:    movaps %xmm0, 2208(%r9)
7115 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
7116 ; SSE-NEXT:    movaps %xmm0, 2192(%r9)
7117 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7118 ; SSE-NEXT:    movaps %xmm0, 2176(%r9)
7119 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7120 ; SSE-NEXT:    movaps %xmm0, 2160(%r9)
7121 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7122 ; SSE-NEXT:    movaps %xmm0, 2144(%r9)
7123 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7124 ; SSE-NEXT:    movaps %xmm0, 2128(%r9)
7125 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7126 ; SSE-NEXT:    movaps %xmm0, 2112(%r9)
7127 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7128 ; SSE-NEXT:    movaps %xmm0, 2096(%r9)
7129 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7130 ; SSE-NEXT:    movaps %xmm0, 2080(%r9)
7131 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7132 ; SSE-NEXT:    movaps %xmm0, 2064(%r9)
7133 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7134 ; SSE-NEXT:    movaps %xmm0, 2048(%r9)
7135 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7136 ; SSE-NEXT:    movaps %xmm0, 2032(%r9)
7137 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7138 ; SSE-NEXT:    movaps %xmm0, 2016(%r9)
7139 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7140 ; SSE-NEXT:    movaps %xmm0, 2000(%r9)
7141 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7142 ; SSE-NEXT:    movaps %xmm0, 1984(%r9)
7143 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7144 ; SSE-NEXT:    movaps %xmm0, 1968(%r9)
7145 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7146 ; SSE-NEXT:    movaps %xmm0, 1952(%r9)
7147 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7148 ; SSE-NEXT:    movaps %xmm0, 1936(%r9)
7149 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7150 ; SSE-NEXT:    movaps %xmm0, 1920(%r9)
7151 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7152 ; SSE-NEXT:    movaps %xmm0, 1904(%r9)
7153 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7154 ; SSE-NEXT:    movaps %xmm0, 1888(%r9)
7155 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7156 ; SSE-NEXT:    movaps %xmm0, 1872(%r9)
7157 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7158 ; SSE-NEXT:    movaps %xmm0, 1856(%r9)
7159 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7160 ; SSE-NEXT:    movaps %xmm0, 1840(%r9)
7161 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7162 ; SSE-NEXT:    movaps %xmm0, 1824(%r9)
7163 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7164 ; SSE-NEXT:    movaps %xmm0, 1808(%r9)
7165 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7166 ; SSE-NEXT:    movaps %xmm0, 1792(%r9)
7167 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7168 ; SSE-NEXT:    movaps %xmm0, 1776(%r9)
7169 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7170 ; SSE-NEXT:    movaps %xmm0, 1760(%r9)
7171 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7172 ; SSE-NEXT:    movaps %xmm0, 1744(%r9)
7173 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7174 ; SSE-NEXT:    movaps %xmm0, 1728(%r9)
7175 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7176 ; SSE-NEXT:    movaps %xmm0, 1712(%r9)
7177 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7178 ; SSE-NEXT:    movaps %xmm0, 1696(%r9)
7179 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7180 ; SSE-NEXT:    movaps %xmm0, 1680(%r9)
7181 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7182 ; SSE-NEXT:    movaps %xmm0, 1664(%r9)
7183 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7184 ; SSE-NEXT:    movaps %xmm0, 1648(%r9)
7185 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7186 ; SSE-NEXT:    movaps %xmm0, 1632(%r9)
7187 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7188 ; SSE-NEXT:    movaps %xmm0, 1616(%r9)
7189 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7190 ; SSE-NEXT:    movaps %xmm0, 1600(%r9)
7191 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7192 ; SSE-NEXT:    movaps %xmm0, 1584(%r9)
7193 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7194 ; SSE-NEXT:    movaps %xmm0, 1568(%r9)
7195 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7196 ; SSE-NEXT:    movaps %xmm0, 1552(%r9)
7197 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7198 ; SSE-NEXT:    movaps %xmm0, 1536(%r9)
7199 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7200 ; SSE-NEXT:    movaps %xmm0, 1520(%r9)
7201 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7202 ; SSE-NEXT:    movaps %xmm0, 1504(%r9)
7203 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7204 ; SSE-NEXT:    movaps %xmm0, 1488(%r9)
7205 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7206 ; SSE-NEXT:    movaps %xmm0, 1472(%r9)
7207 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7208 ; SSE-NEXT:    movaps %xmm0, 1456(%r9)
7209 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7210 ; SSE-NEXT:    movaps %xmm0, 1440(%r9)
7211 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7212 ; SSE-NEXT:    movaps %xmm0, 1424(%r9)
7213 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7214 ; SSE-NEXT:    movaps %xmm0, 1408(%r9)
7215 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7216 ; SSE-NEXT:    movaps %xmm0, 1392(%r9)
7217 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7218 ; SSE-NEXT:    movaps %xmm0, 1376(%r9)
7219 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7220 ; SSE-NEXT:    movaps %xmm0, 1360(%r9)
7221 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7222 ; SSE-NEXT:    movaps %xmm0, 1344(%r9)
7223 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7224 ; SSE-NEXT:    movaps %xmm0, 1328(%r9)
7225 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7226 ; SSE-NEXT:    movaps %xmm0, 1312(%r9)
7227 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7228 ; SSE-NEXT:    movaps %xmm0, 1296(%r9)
7229 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7230 ; SSE-NEXT:    movaps %xmm0, 1280(%r9)
7231 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7232 ; SSE-NEXT:    movaps %xmm0, 1264(%r9)
7233 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7234 ; SSE-NEXT:    movaps %xmm0, 1248(%r9)
7235 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7236 ; SSE-NEXT:    movaps %xmm0, 1232(%r9)
7237 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7238 ; SSE-NEXT:    movaps %xmm0, 1216(%r9)
7239 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7240 ; SSE-NEXT:    movaps %xmm0, 1200(%r9)
7241 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7242 ; SSE-NEXT:    movaps %xmm0, 1184(%r9)
7243 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7244 ; SSE-NEXT:    movaps %xmm0, 1168(%r9)
7245 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7246 ; SSE-NEXT:    movaps %xmm0, 1152(%r9)
7247 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7248 ; SSE-NEXT:    movaps %xmm0, 1136(%r9)
7249 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7250 ; SSE-NEXT:    movaps %xmm0, 1120(%r9)
7251 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7252 ; SSE-NEXT:    movaps %xmm0, 1104(%r9)
7253 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7254 ; SSE-NEXT:    movaps %xmm0, 1088(%r9)
7255 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7256 ; SSE-NEXT:    movaps %xmm0, 1072(%r9)
7257 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7258 ; SSE-NEXT:    movaps %xmm0, 1056(%r9)
7259 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7260 ; SSE-NEXT:    movaps %xmm0, 1040(%r9)
7261 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7262 ; SSE-NEXT:    movaps %xmm0, 1024(%r9)
7263 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7264 ; SSE-NEXT:    movaps %xmm0, 1008(%r9)
7265 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7266 ; SSE-NEXT:    movaps %xmm0, 992(%r9)
7267 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7268 ; SSE-NEXT:    movaps %xmm0, 976(%r9)
7269 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7270 ; SSE-NEXT:    movaps %xmm0, 960(%r9)
7271 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7272 ; SSE-NEXT:    movaps %xmm0, 944(%r9)
7273 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7274 ; SSE-NEXT:    movaps %xmm0, 928(%r9)
7275 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7276 ; SSE-NEXT:    movaps %xmm0, 912(%r9)
7277 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7278 ; SSE-NEXT:    movaps %xmm0, 896(%r9)
7279 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7280 ; SSE-NEXT:    movaps %xmm0, 880(%r9)
7281 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7282 ; SSE-NEXT:    movaps %xmm0, 864(%r9)
7283 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7284 ; SSE-NEXT:    movaps %xmm0, 848(%r9)
7285 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7286 ; SSE-NEXT:    movaps %xmm0, 832(%r9)
7287 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7288 ; SSE-NEXT:    movaps %xmm0, 816(%r9)
7289 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7290 ; SSE-NEXT:    movaps %xmm0, 800(%r9)
7291 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7292 ; SSE-NEXT:    movaps %xmm0, 784(%r9)
7293 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7294 ; SSE-NEXT:    movaps %xmm0, 768(%r9)
7295 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7296 ; SSE-NEXT:    movaps %xmm0, 752(%r9)
7297 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7298 ; SSE-NEXT:    movaps %xmm0, 736(%r9)
7299 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7300 ; SSE-NEXT:    movaps %xmm0, 720(%r9)
7301 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7302 ; SSE-NEXT:    movaps %xmm0, 704(%r9)
7303 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7304 ; SSE-NEXT:    movaps %xmm0, 688(%r9)
7305 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7306 ; SSE-NEXT:    movaps %xmm0, 672(%r9)
7307 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7308 ; SSE-NEXT:    movaps %xmm0, 656(%r9)
7309 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7310 ; SSE-NEXT:    movaps %xmm0, 640(%r9)
7311 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7312 ; SSE-NEXT:    movaps %xmm0, 624(%r9)
7313 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7314 ; SSE-NEXT:    movaps %xmm0, 608(%r9)
7315 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7316 ; SSE-NEXT:    movaps %xmm0, 592(%r9)
7317 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7318 ; SSE-NEXT:    movaps %xmm0, 576(%r9)
7319 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7320 ; SSE-NEXT:    movaps %xmm0, 560(%r9)
7321 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7322 ; SSE-NEXT:    movaps %xmm0, 544(%r9)
7323 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7324 ; SSE-NEXT:    movaps %xmm0, 528(%r9)
7325 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7326 ; SSE-NEXT:    movaps %xmm0, 512(%r9)
7327 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7328 ; SSE-NEXT:    movaps %xmm0, 496(%r9)
7329 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7330 ; SSE-NEXT:    movaps %xmm0, 480(%r9)
7331 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7332 ; SSE-NEXT:    movaps %xmm0, 464(%r9)
7333 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7334 ; SSE-NEXT:    movaps %xmm0, 448(%r9)
7335 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7336 ; SSE-NEXT:    movaps %xmm0, 432(%r9)
7337 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7338 ; SSE-NEXT:    movaps %xmm0, 416(%r9)
7339 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7340 ; SSE-NEXT:    movaps %xmm0, 400(%r9)
7341 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7342 ; SSE-NEXT:    movaps %xmm0, 384(%r9)
7343 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7344 ; SSE-NEXT:    movaps %xmm0, 368(%r9)
7345 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7346 ; SSE-NEXT:    movaps %xmm0, 352(%r9)
7347 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7348 ; SSE-NEXT:    movaps %xmm0, 336(%r9)
7349 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7350 ; SSE-NEXT:    movaps %xmm0, 320(%r9)
7351 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7352 ; SSE-NEXT:    movaps %xmm0, 304(%r9)
7353 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7354 ; SSE-NEXT:    movaps %xmm0, 288(%r9)
7355 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7356 ; SSE-NEXT:    movaps %xmm0, 272(%r9)
7357 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7358 ; SSE-NEXT:    movaps %xmm0, 256(%r9)
7359 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7360 ; SSE-NEXT:    movaps %xmm0, 240(%r9)
7361 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7362 ; SSE-NEXT:    movaps %xmm0, 224(%r9)
7363 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7364 ; SSE-NEXT:    movaps %xmm0, 208(%r9)
7365 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7366 ; SSE-NEXT:    movaps %xmm0, 192(%r9)
7367 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7368 ; SSE-NEXT:    movaps %xmm0, 176(%r9)
7369 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7370 ; SSE-NEXT:    movaps %xmm0, 160(%r9)
7371 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7372 ; SSE-NEXT:    movaps %xmm0, 144(%r9)
7373 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7374 ; SSE-NEXT:    movaps %xmm0, 128(%r9)
7375 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7376 ; SSE-NEXT:    movaps %xmm0, 112(%r9)
7377 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7378 ; SSE-NEXT:    movaps %xmm0, 96(%r9)
7379 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7380 ; SSE-NEXT:    movaps %xmm0, 80(%r9)
7381 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7382 ; SSE-NEXT:    movaps %xmm0, 64(%r9)
7383 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7384 ; SSE-NEXT:    movaps %xmm0, 48(%r9)
7385 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7386 ; SSE-NEXT:    movaps %xmm0, 32(%r9)
7387 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7388 ; SSE-NEXT:    movaps %xmm0, 16(%r9)
7389 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7390 ; SSE-NEXT:    movaps %xmm0, (%r9)
7391 ; SSE-NEXT:    addq $2200, %rsp # imm = 0x898
7392 ; SSE-NEXT:    retq
7394 ; AVX-LABEL: store_i64_stride5_vf64:
7395 ; AVX:       # %bb.0:
7396 ; AVX-NEXT:    subq $2264, %rsp # imm = 0x8D8
7397 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm14
7398 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm4
7399 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm5
7400 ; AVX-NEXT:    vmovaps 64(%rcx), %ymm1
7401 ; AVX-NEXT:    vmovaps 128(%rcx), %ymm0
7402 ; AVX-NEXT:    vmovaps (%rcx), %ymm2
7403 ; AVX-NEXT:    vpermilps {{.*#+}} xmm3 = mem[2,3,2,3]
7404 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm6
7405 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7406 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm2[1],ymm6[1],ymm2[3],ymm6[3]
7407 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
7408 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7409 ; AVX-NEXT:    vpermilps {{.*#+}} xmm2 = mem[2,3,2,3]
7410 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm3
7411 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7412 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
7413 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7414 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7415 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
7416 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7417 ; AVX-NEXT:    vmovaps 96(%rcx), %xmm2
7418 ; AVX-NEXT:    vmovaps %xmm2, (%rsp) # 16-byte Spill
7419 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
7420 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
7421 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7422 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7423 ; AVX-NEXT:    vmovaps 144(%rdx), %xmm2
7424 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7425 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm2[1],ymm0[3],ymm2[3]
7426 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7427 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7428 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm4[0],mem[0],ymm4[2],mem[2]
7429 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7430 ; AVX-NEXT:    vmovaps 160(%rcx), %xmm1
7431 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7432 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7433 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7434 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7435 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],mem[0],ymm14[2],mem[2]
7436 ; AVX-NEXT:    vmovaps %ymm14, %ymm2
7437 ; AVX-NEXT:    vmovups %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7438 ; AVX-NEXT:    vmovaps 192(%rcx), %xmm1
7439 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7440 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7441 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7442 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7443 ; AVX-NEXT:    vmovaps 192(%rcx), %ymm0
7444 ; AVX-NEXT:    vmovaps 208(%rdx), %xmm1
7445 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7446 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7447 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7448 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7449 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7450 ; AVX-NEXT:    vmovaps 256(%rcx), %ymm0
7451 ; AVX-NEXT:    vmovaps 272(%rdx), %xmm1
7452 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7453 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7454 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7455 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7456 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7457 ; AVX-NEXT:    vmovapd 288(%rdi), %ymm14
7458 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm14[0],mem[0],ymm14[2],mem[2]
7459 ; AVX-NEXT:    vmovapd 288(%rcx), %xmm1
7460 ; AVX-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7461 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7462 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
7463 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7464 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm10
7465 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],mem[0],ymm10[2],mem[2]
7466 ; AVX-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7467 ; AVX-NEXT:    vmovaps 320(%rcx), %xmm1
7468 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7469 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7470 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7471 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7472 ; AVX-NEXT:    vmovaps 320(%rcx), %ymm0
7473 ; AVX-NEXT:    vmovaps 336(%rdx), %xmm1
7474 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7475 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7476 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7477 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7478 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7479 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm9
7480 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],mem[0],ymm9[2],mem[2]
7481 ; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7482 ; AVX-NEXT:    vmovaps 384(%rcx), %xmm1
7483 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7484 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7485 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
7486 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7487 ; AVX-NEXT:    vmovaps 384(%rcx), %ymm0
7488 ; AVX-NEXT:    vmovaps 400(%rdx), %xmm1
7489 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7490 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7491 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7492 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7493 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7494 ; AVX-NEXT:    vmovaps 448(%rcx), %ymm0
7495 ; AVX-NEXT:    vmovaps 464(%rdx), %xmm1
7496 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7497 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7498 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7499 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7500 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7501 ; AVX-NEXT:    vmovapd 480(%rdi), %ymm13
7502 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],mem[0],ymm13[2],mem[2]
7503 ; AVX-NEXT:    vmovapd 480(%rcx), %xmm1
7504 ; AVX-NEXT:    vmovapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7505 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
7506 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3]
7507 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7508 ; AVX-NEXT:    vmovaps (%rdi), %ymm8
7509 ; AVX-NEXT:    vbroadcastsd 8(%rsi), %ymm0
7510 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm8[0,1,2,3],ymm0[4,5,6,7]
7511 ; AVX-NEXT:    vmovaps (%rdx), %xmm1
7512 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7513 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7514 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7515 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7516 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7517 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm8[0],mem[0],ymm8[2],mem[2]
7518 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7519 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7520 ; AVX-NEXT:    vmovapd 32(%rdi), %ymm6
7521 ; AVX-NEXT:    vbroadcastsd 40(%rsi), %ymm0
7522 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3]
7523 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm1
7524 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7525 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7526 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
7527 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7528 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7529 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm6[0],mem[0],ymm6[2],mem[2]
7530 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
7531 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7532 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm7
7533 ; AVX-NEXT:    vbroadcastsd 72(%rsi), %ymm0
7534 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1,2,3],ymm0[4,5,6,7]
7535 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm1
7536 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7537 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7538 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7539 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7540 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7541 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm7[0],mem[0],ymm7[2],mem[2]
7542 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7543 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7544 ; AVX-NEXT:    vbroadcastsd 104(%rsi), %ymm0
7545 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
7546 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm1
7547 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7548 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7549 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7550 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7551 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm5
7552 ; AVX-NEXT:    vbroadcastsd 136(%rsi), %ymm0
7553 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
7554 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm1
7555 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7556 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7557 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7558 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7559 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7560 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm5[0],mem[0],ymm5[2],mem[2]
7561 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7562 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7563 ; AVX-NEXT:    vbroadcastsd 168(%rsi), %ymm0
7564 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
7565 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm1
7566 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7567 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7568 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7569 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7570 ; AVX-NEXT:    vbroadcastsd 200(%rsi), %ymm0
7571 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3],ymm0[4,5,6,7]
7572 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm1
7573 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7574 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7575 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7576 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7577 ; AVX-NEXT:    vmovapd 224(%rdi), %ymm3
7578 ; AVX-NEXT:    vbroadcastsd 232(%rsi), %ymm0
7579 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
7580 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm1
7581 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7582 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7583 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
7584 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7585 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7586 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],mem[0],ymm3[2],mem[2]
7587 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
7588 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7589 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm4
7590 ; AVX-NEXT:    vbroadcastsd 264(%rsi), %ymm0
7591 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
7592 ; AVX-NEXT:    vmovaps 256(%rdx), %xmm1
7593 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7594 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7595 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7596 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7597 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7598 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],mem[0],ymm4[2],mem[2]
7599 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7600 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7601 ; AVX-NEXT:    vbroadcastsd 296(%rsi), %ymm0
7602 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1],ymm0[2,3]
7603 ; AVX-NEXT:    vmovaps 288(%rdx), %xmm1
7604 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7605 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7606 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
7607 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7608 ; AVX-NEXT:    vbroadcastsd 328(%rsi), %ymm0
7609 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1,2,3],ymm0[4,5,6,7]
7610 ; AVX-NEXT:    vmovaps 320(%rdx), %xmm1
7611 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7612 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7613 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7614 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7615 ; AVX-NEXT:    vmovapd 352(%rdi), %ymm2
7616 ; AVX-NEXT:    vbroadcastsd 360(%rsi), %ymm0
7617 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3]
7618 ; AVX-NEXT:    vmovaps 352(%rdx), %xmm1
7619 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7620 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
7621 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm1[3]
7622 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7623 ; AVX-NEXT:    vpermilps {{.*#+}} xmm0 = mem[2,3,2,3]
7624 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
7625 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
7626 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7627 ; AVX-NEXT:    vbroadcastsd 392(%rsi), %ymm0
7628 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3],ymm0[4,5,6,7]
7629 ; AVX-NEXT:    vmovaps 384(%rdx), %xmm15
7630 ; AVX-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
7631 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7632 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7633 ; AVX-NEXT:    vmovapd 416(%rdi), %ymm0
7634 ; AVX-NEXT:    vbroadcastsd 424(%rsi), %ymm1
7635 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm0[0,1],ymm1[2,3]
7636 ; AVX-NEXT:    vmovaps 416(%rdx), %xmm9
7637 ; AVX-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7638 ; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm9
7639 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm9[3]
7640 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7641 ; AVX-NEXT:    vpermilps {{.*#+}} xmm1 = mem[2,3,2,3]
7642 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm0[0],mem[0],ymm0[2],mem[2]
7643 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm9[2,3]
7644 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7645 ; AVX-NEXT:    vmovaps 448(%rdi), %ymm1
7646 ; AVX-NEXT:    vbroadcastsd 456(%rsi), %ymm9
7647 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1,2,3],ymm9[4,5,6,7]
7648 ; AVX-NEXT:    vmovaps 448(%rdx), %xmm10
7649 ; AVX-NEXT:    vmovaps %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7650 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm10
7651 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],ymm10[6,7]
7652 ; AVX-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7653 ; AVX-NEXT:    vpermilps {{.*#+}} xmm9 = mem[2,3,2,3]
7654 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm1[0],mem[0],ymm1[2],mem[2]
7655 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm9[0,1,2,3],ymm10[4,5,6,7]
7656 ; AVX-NEXT:    vbroadcastsd 488(%rsi), %ymm10
7657 ; AVX-NEXT:    vblendpd {{.*#+}} ymm12 = ymm13[0,1],ymm10[2,3]
7658 ; AVX-NEXT:    vmovapd %ymm13, %ymm9
7659 ; AVX-NEXT:    vmovaps 480(%rdx), %xmm10
7660 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm13
7661 ; AVX-NEXT:    vblendpd {{.*#+}} ymm12 = ymm12[0,1,2],ymm13[3]
7662 ; AVX-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7663 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
7664 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
7665 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm12[0,1,2,3],ymm8[4,5,6,7]
7666 ; AVX-NEXT:    vmovaps (%r8), %ymm12
7667 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
7668 ; AVX-NEXT:    # ymm13 = mem[0,1,2,3,4,5],ymm12[6,7]
7669 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7670 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
7671 ; AVX-NEXT:    # ymm13 = ymm12[0,1],mem[2,3,4,5,6,7]
7672 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7673 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
7674 ; AVX-NEXT:    # ymm13 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
7675 ; AVX-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7676 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3],ymm12[4,5],ymm8[6,7]
7677 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7678 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm6 = mem[2,3],ymm6[2,3]
7679 ; AVX-NEXT:    vmovapd 48(%rdx), %xmm8
7680 ; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm8[0],ymm6[0],ymm8[2],ymm6[3]
7681 ; AVX-NEXT:    vmovapd 48(%rsi), %xmm12
7682 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm8 = xmm12[1],xmm8[1]
7683 ; AVX-NEXT:    vbroadcastsd 56(%rcx), %ymm12
7684 ; AVX-NEXT:    vblendpd {{.*#+}} ymm8 = ymm8[0,1],ymm12[2,3]
7685 ; AVX-NEXT:    vmovapd 32(%r8), %ymm12
7686 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
7687 ; AVX-NEXT:    # ymm13 = ymm12[0],mem[1,2,3]
7688 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7689 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm13 # 32-byte Folded Reload
7690 ; AVX-NEXT:    # ymm13 = mem[0],ymm12[1],mem[2,3]
7691 ; AVX-NEXT:    vmovupd %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7692 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm12[2],ymm6[3]
7693 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7694 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm8[0,1,2],ymm12[3]
7695 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7696 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7697 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7698 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5,6,7]
7699 ; AVX-NEXT:    vmovaps 64(%r8), %ymm7
7700 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
7701 ; AVX-NEXT:    # ymm8 = mem[0,1,2,3,4,5],ymm7[6,7]
7702 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7703 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
7704 ; AVX-NEXT:    # ymm8 = ymm7[0,1],mem[2,3,4,5,6,7]
7705 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7706 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
7707 ; AVX-NEXT:    # ymm8 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
7708 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7709 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm7[4,5],ymm6[6,7]
7710 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7711 ; AVX-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7712 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm6 = mem[2,3],ymm6[2,3]
7713 ; AVX-NEXT:    vmovapd 112(%rdx), %xmm7
7714 ; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm7[0],ymm6[0],ymm7[2],ymm6[3]
7715 ; AVX-NEXT:    vmovapd 112(%rsi), %xmm8
7716 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm8[1],xmm7[1]
7717 ; AVX-NEXT:    vbroadcastsd 120(%rcx), %ymm8
7718 ; AVX-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],ymm8[2,3]
7719 ; AVX-NEXT:    vmovapd 96(%r8), %ymm8
7720 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
7721 ; AVX-NEXT:    # ymm12 = mem[0],ymm8[1],mem[2,3]
7722 ; AVX-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7723 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm12 # 32-byte Folded Reload
7724 ; AVX-NEXT:    # ymm12 = ymm8[0],mem[1,2,3]
7725 ; AVX-NEXT:    vmovupd %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7726 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm8[2],ymm6[3]
7727 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7728 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm7[0,1,2],ymm8[3]
7729 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7730 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
7731 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7732 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
7733 ; AVX-NEXT:    vmovaps 128(%r8), %ymm6
7734 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7735 ; AVX-NEXT:    # ymm7 = mem[0,1,2,3,4,5],ymm6[6,7]
7736 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7737 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7738 ; AVX-NEXT:    # ymm7 = ymm6[0,1],mem[2,3,4,5,6,7]
7739 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7740 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7741 ; AVX-NEXT:    # ymm7 = mem[0,1],ymm6[2,3],mem[4,5,6,7]
7742 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7743 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
7744 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7745 ; AVX-NEXT:    vmovupd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
7746 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm5 = mem[2,3],ymm5[2,3]
7747 ; AVX-NEXT:    vmovapd 176(%rdx), %xmm6
7748 ; AVX-NEXT:    vshufpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[3]
7749 ; AVX-NEXT:    vmovapd 176(%rsi), %xmm7
7750 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm7[1],xmm6[1]
7751 ; AVX-NEXT:    vbroadcastsd 184(%rcx), %ymm7
7752 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm7[2,3]
7753 ; AVX-NEXT:    vmovapd 160(%r8), %ymm7
7754 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
7755 ; AVX-NEXT:    # ymm8 = mem[0],ymm7[1],mem[2,3]
7756 ; AVX-NEXT:    vmovupd %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7757 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm8 # 32-byte Folded Reload
7758 ; AVX-NEXT:    # ymm8 = ymm7[0],mem[1,2,3]
7759 ; AVX-NEXT:    vmovupd %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7760 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm7[2],ymm5[3]
7761 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7762 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm6[0,1,2],ymm7[3]
7763 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7764 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm5 # 32-byte Reload
7765 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
7766 ; AVX-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm5 # 32-byte Folded Reload
7767 ; AVX-NEXT:    # ymm5 = ymm5[0,1,2,3],mem[4,5,6,7]
7768 ; AVX-NEXT:    vmovaps 192(%r8), %ymm6
7769 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7770 ; AVX-NEXT:    # ymm7 = mem[0,1],ymm6[2,3],mem[4,5,6,7]
7771 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7772 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7773 ; AVX-NEXT:    # ymm7 = mem[0,1,2,3,4,5],ymm6[6,7]
7774 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7775 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7776 ; AVX-NEXT:    # ymm7 = ymm6[0,1],mem[2,3,4,5,6,7]
7777 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7778 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
7779 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7780 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm3[2,3]
7781 ; AVX-NEXT:    vmovapd 240(%rdx), %xmm5
7782 ; AVX-NEXT:    vshufpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[3]
7783 ; AVX-NEXT:    vmovapd 240(%rsi), %xmm6
7784 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm6[1],xmm5[1]
7785 ; AVX-NEXT:    vbroadcastsd 248(%rcx), %ymm6
7786 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3]
7787 ; AVX-NEXT:    vmovapd 224(%r8), %ymm6
7788 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7789 ; AVX-NEXT:    # ymm7 = ymm6[0],mem[1,2,3]
7790 ; AVX-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7791 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm7 # 32-byte Folded Reload
7792 ; AVX-NEXT:    # ymm7 = mem[0],ymm6[1],mem[2,3]
7793 ; AVX-NEXT:    vmovupd %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7794 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm6[2],ymm3[3]
7795 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7796 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm5[0,1,2],ymm6[3]
7797 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7798 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7799 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7800 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
7801 ; AVX-NEXT:    vmovaps 256(%r8), %ymm4
7802 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7803 ; AVX-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm4[6,7]
7804 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7805 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7806 ; AVX-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
7807 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7808 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7809 ; AVX-NEXT:    # ymm5 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
7810 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7811 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]
7812 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7813 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = mem[2,3],ymm14[2,3]
7814 ; AVX-NEXT:    vmovapd 304(%rdx), %xmm4
7815 ; AVX-NEXT:    vshufpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[3]
7816 ; AVX-NEXT:    vmovapd 304(%rsi), %xmm5
7817 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm5[1],xmm4[1]
7818 ; AVX-NEXT:    vbroadcastsd 312(%rcx), %ymm5
7819 ; AVX-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0,1],ymm5[2,3]
7820 ; AVX-NEXT:    vmovapd 288(%r8), %ymm5
7821 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm6 # 32-byte Folded Reload
7822 ; AVX-NEXT:    # ymm6 = mem[0],ymm5[1],mem[2,3]
7823 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7824 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm6 # 32-byte Folded Reload
7825 ; AVX-NEXT:    # ymm6 = ymm5[0],mem[1,2,3]
7826 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7827 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm5[2],ymm3[3]
7828 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7829 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm4[0,1,2],ymm5[3]
7830 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7831 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7832 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7833 ; AVX-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7834 ; AVX-NEXT:    # ymm3 = ymm3[0,1,2,3],mem[4,5,6,7]
7835 ; AVX-NEXT:    vmovaps 320(%r8), %ymm4
7836 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7837 ; AVX-NEXT:    # ymm5 = mem[0,1],ymm4[2,3],mem[4,5,6,7]
7838 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7839 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7840 ; AVX-NEXT:    # ymm5 = mem[0,1,2,3,4,5],ymm4[6,7]
7841 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7842 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7843 ; AVX-NEXT:    # ymm5 = ymm4[0,1],mem[2,3,4,5,6,7]
7844 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7845 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5],ymm3[6,7]
7846 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7847 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = mem[2,3],ymm2[2,3]
7848 ; AVX-NEXT:    vmovapd 368(%rdx), %xmm3
7849 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm3[0],ymm2[0],ymm3[2],ymm2[3]
7850 ; AVX-NEXT:    vmovapd 368(%rsi), %xmm4
7851 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm4[1],xmm3[1]
7852 ; AVX-NEXT:    vbroadcastsd 376(%rcx), %ymm4
7853 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3]
7854 ; AVX-NEXT:    vmovapd 352(%r8), %ymm4
7855 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7856 ; AVX-NEXT:    # ymm5 = ymm4[0],mem[1,2,3]
7857 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7858 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm5 # 32-byte Folded Reload
7859 ; AVX-NEXT:    # ymm5 = mem[0],ymm4[1],mem[2,3]
7860 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7861 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm4[2],ymm2[3]
7862 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7863 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm3[0,1,2],ymm4[3]
7864 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7865 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
7866 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
7867 ; AVX-NEXT:    vblendps $240, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 32-byte Folded Reload
7868 ; AVX-NEXT:    # ymm2 = ymm2[0,1,2,3],mem[4,5,6,7]
7869 ; AVX-NEXT:    vmovaps 384(%r8), %ymm3
7870 ; AVX-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
7871 ; AVX-NEXT:    # ymm4 = mem[0,1],ymm3[2,3],mem[4,5,6,7]
7872 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7873 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
7874 ; AVX-NEXT:    # ymm4 = mem[0,1,2,3,4,5],ymm3[6,7]
7875 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7876 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
7877 ; AVX-NEXT:    # ymm4 = ymm3[0,1],mem[2,3,4,5,6,7]
7878 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7879 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm3[4,5],ymm2[6,7]
7880 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7881 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
7882 ; AVX-NEXT:    vmovapd 432(%rdx), %xmm2
7883 ; AVX-NEXT:    vshufpd {{.*#+}} ymm0 = ymm2[0],ymm0[0],ymm2[2],ymm0[3]
7884 ; AVX-NEXT:    vmovapd 432(%rsi), %xmm3
7885 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm2[1]
7886 ; AVX-NEXT:    vbroadcastsd 440(%rcx), %ymm3
7887 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
7888 ; AVX-NEXT:    vmovapd 416(%r8), %ymm3
7889 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
7890 ; AVX-NEXT:    # ymm4 = ymm3[0],mem[1,2,3]
7891 ; AVX-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7892 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm4 # 32-byte Folded Reload
7893 ; AVX-NEXT:    # ymm4 = mem[0],ymm3[1],mem[2,3]
7894 ; AVX-NEXT:    vmovupd %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7895 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm3[2],ymm0[3]
7896 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7897 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm2[0,1,2],ymm3[3]
7898 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7899 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7900 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7901 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7902 ; AVX-NEXT:    vmovaps 448(%r8), %ymm1
7903 ; AVX-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
7904 ; AVX-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
7905 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7906 ; AVX-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
7907 ; AVX-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
7908 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7909 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1],ymm1[2,3],ymm11[4,5,6,7]
7910 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7911 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
7912 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7913 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm9[2,3]
7914 ; AVX-NEXT:    vmovapd 496(%rdx), %xmm1
7915 ; AVX-NEXT:    vshufpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[3]
7916 ; AVX-NEXT:    vmovapd 496(%rsi), %xmm2
7917 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm2[1],xmm1[1]
7918 ; AVX-NEXT:    vbroadcastsd 504(%rcx), %ymm2
7919 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
7920 ; AVX-NEXT:    vmovapd 480(%r8), %ymm2
7921 ; AVX-NEXT:    vblendpd $13, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
7922 ; AVX-NEXT:    # ymm3 = mem[0],ymm2[1],mem[2,3]
7923 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7924 ; AVX-NEXT:    vblendpd $14, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm3 # 32-byte Folded Reload
7925 ; AVX-NEXT:    # ymm3 = ymm2[0],mem[1,2,3]
7926 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7927 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm2[2],ymm0[3]
7928 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7929 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm2[3]
7930 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7931 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7932 ; AVX-NEXT:    vunpcklpd (%rsp), %xmm0, %xmm0 # 16-byte Folded Reload
7933 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
7934 ; AVX-NEXT:    vmovaps %xmm0, (%rsp) # 16-byte Spill
7935 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7936 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7937 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
7938 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7939 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7940 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7941 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
7942 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7943 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7944 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7945 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
7946 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7947 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7948 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
7949 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
7950 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7951 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm0 # 16-byte Folded Reload
7952 ; AVX-NEXT:    # xmm0 = xmm10[0],mem[0]
7953 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7954 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm15, %xmm7 # 16-byte Folded Reload
7955 ; AVX-NEXT:    # xmm7 = xmm15[0],mem[0]
7956 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm0
7957 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7958 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7959 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7960 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7961 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7962 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm0
7963 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7964 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7965 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7966 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7967 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7968 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm0
7969 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7970 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7971 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7972 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7973 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7974 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm0
7975 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7976 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7977 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7978 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7979 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7980 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm0
7981 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7982 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7983 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm0
7984 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
7985 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7986 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm0
7987 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm0[0],mem[0]
7988 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7989 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm0[0],mem[0]
7990 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm0
7991 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm0[0],mem[0]
7992 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm0
7993 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm0[0],mem[0]
7994 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm15
7995 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
7996 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
7997 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm0[0],mem[0]
7998 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm13
7999 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
8000 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm14
8001 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
8002 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8003 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
8004 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm12
8005 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
8006 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm11
8007 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
8008 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8009 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
8010 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm10
8011 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
8012 ; AVX-NEXT:    vmovaps (%rdi), %xmm9
8013 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
8014 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
8015 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
8016 ; AVX-NEXT:    vmovaps %xmm8, 16(%r9)
8017 ; AVX-NEXT:    vmovaps %xmm9, (%r9)
8018 ; AVX-NEXT:    vmovaps %xmm7, 1936(%r9)
8019 ; AVX-NEXT:    vmovaps %xmm10, 1920(%r9)
8020 ; AVX-NEXT:    vmovaps %xmm0, 2256(%r9)
8021 ; AVX-NEXT:    vmovaps %xmm11, 2240(%r9)
8022 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8023 ; AVX-NEXT:    vmovaps %xmm0, 2416(%r9)
8024 ; AVX-NEXT:    vmovaps %xmm12, 2400(%r9)
8025 ; AVX-NEXT:    vmovaps %xmm1, 2096(%r9)
8026 ; AVX-NEXT:    vmovaps %xmm14, 2080(%r9)
8027 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8028 ; AVX-NEXT:    vmovaps %xmm0, 1616(%r9)
8029 ; AVX-NEXT:    vmovaps %xmm13, 1600(%r9)
8030 ; AVX-NEXT:    vmovaps %xmm2, 1776(%r9)
8031 ; AVX-NEXT:    vmovaps %xmm15, 1760(%r9)
8032 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8033 ; AVX-NEXT:    vmovaps %xmm0, 1456(%r9)
8034 ; AVX-NEXT:    vmovaps %xmm3, 1440(%r9)
8035 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8036 ; AVX-NEXT:    vmovaps %xmm0, 976(%r9)
8037 ; AVX-NEXT:    vmovaps %xmm4, 960(%r9)
8038 ; AVX-NEXT:    vmovaps %xmm5, 1136(%r9)
8039 ; AVX-NEXT:    vmovaps %xmm6, 1120(%r9)
8040 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8041 ; AVX-NEXT:    vmovaps %xmm0, 816(%r9)
8042 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8043 ; AVX-NEXT:    vmovaps %xmm0, 800(%r9)
8044 ; AVX-NEXT:    vmovaps (%rsp), %xmm0 # 16-byte Reload
8045 ; AVX-NEXT:    vmovaps %xmm0, 496(%r9)
8046 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8047 ; AVX-NEXT:    vmovaps %xmm0, 480(%r9)
8048 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8049 ; AVX-NEXT:    vmovaps %xmm0, 176(%r9)
8050 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8051 ; AVX-NEXT:    vmovaps %xmm0, 160(%r9)
8052 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8053 ; AVX-NEXT:    vmovaps %xmm0, 336(%r9)
8054 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8055 ; AVX-NEXT:    vmovaps %xmm0, 320(%r9)
8056 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8057 ; AVX-NEXT:    vmovaps %xmm0, 656(%r9)
8058 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8059 ; AVX-NEXT:    vmovaps %xmm0, 640(%r9)
8060 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8061 ; AVX-NEXT:    vmovaps %xmm0, 1296(%r9)
8062 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
8063 ; AVX-NEXT:    vmovaps %xmm0, 1280(%r9)
8064 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8065 ; AVX-NEXT:    vmovaps %ymm0, 2496(%r9)
8066 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8067 ; AVX-NEXT:    vmovaps %ymm0, 2432(%r9)
8068 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8069 ; AVX-NEXT:    vmovaps %ymm0, 2304(%r9)
8070 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8071 ; AVX-NEXT:    vmovaps %ymm0, 2272(%r9)
8072 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8073 ; AVX-NEXT:    vmovaps %ymm0, 2176(%r9)
8074 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8075 ; AVX-NEXT:    vmovaps %ymm0, 2144(%r9)
8076 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8077 ; AVX-NEXT:    vmovaps %ymm0, 2112(%r9)
8078 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8079 ; AVX-NEXT:    vmovaps %ymm0, 1952(%r9)
8080 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8081 ; AVX-NEXT:    vmovaps %ymm0, 1856(%r9)
8082 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8083 ; AVX-NEXT:    vmovaps %ymm0, 1824(%r9)
8084 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8085 ; AVX-NEXT:    vmovaps %ymm0, 1792(%r9)
8086 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8087 ; AVX-NEXT:    vmovaps %ymm0, 1632(%r9)
8088 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8089 ; AVX-NEXT:    vmovaps %ymm0, 1536(%r9)
8090 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8091 ; AVX-NEXT:    vmovaps %ymm0, 1472(%r9)
8092 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8093 ; AVX-NEXT:    vmovaps %ymm0, 1344(%r9)
8094 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8095 ; AVX-NEXT:    vmovaps %ymm0, 1312(%r9)
8096 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8097 ; AVX-NEXT:    vmovaps %ymm0, 1216(%r9)
8098 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8099 ; AVX-NEXT:    vmovaps %ymm0, 1184(%r9)
8100 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8101 ; AVX-NEXT:    vmovaps %ymm0, 1152(%r9)
8102 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8103 ; AVX-NEXT:    vmovaps %ymm0, 992(%r9)
8104 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8105 ; AVX-NEXT:    vmovaps %ymm0, 896(%r9)
8106 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8107 ; AVX-NEXT:    vmovaps %ymm0, 832(%r9)
8108 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8109 ; AVX-NEXT:    vmovaps %ymm0, 704(%r9)
8110 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8111 ; AVX-NEXT:    vmovaps %ymm0, 672(%r9)
8112 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8113 ; AVX-NEXT:    vmovaps %ymm0, 576(%r9)
8114 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8115 ; AVX-NEXT:    vmovaps %ymm0, 512(%r9)
8116 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8117 ; AVX-NEXT:    vmovaps %ymm0, 384(%r9)
8118 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8119 ; AVX-NEXT:    vmovaps %ymm0, 352(%r9)
8120 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8121 ; AVX-NEXT:    vmovaps %ymm0, 256(%r9)
8122 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8123 ; AVX-NEXT:    vmovaps %ymm0, 224(%r9)
8124 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8125 ; AVX-NEXT:    vmovaps %ymm0, 192(%r9)
8126 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8127 ; AVX-NEXT:    vmovaps %ymm0, 64(%r9)
8128 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8129 ; AVX-NEXT:    vmovaps %ymm0, 32(%r9)
8130 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8131 ; AVX-NEXT:    vmovaps %ymm0, 2528(%r9)
8132 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8133 ; AVX-NEXT:    vmovaps %ymm0, 2464(%r9)
8134 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8135 ; AVX-NEXT:    vmovaps %ymm0, 2368(%r9)
8136 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8137 ; AVX-NEXT:    vmovaps %ymm0, 2336(%r9)
8138 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8139 ; AVX-NEXT:    vmovaps %ymm0, 2208(%r9)
8140 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8141 ; AVX-NEXT:    vmovaps %ymm0, 2048(%r9)
8142 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8143 ; AVX-NEXT:    vmovaps %ymm0, 2016(%r9)
8144 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8145 ; AVX-NEXT:    vmovaps %ymm0, 1984(%r9)
8146 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8147 ; AVX-NEXT:    vmovaps %ymm0, 1888(%r9)
8148 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8149 ; AVX-NEXT:    vmovaps %ymm0, 1728(%r9)
8150 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8151 ; AVX-NEXT:    vmovaps %ymm0, 1696(%r9)
8152 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8153 ; AVX-NEXT:    vmovaps %ymm0, 1664(%r9)
8154 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8155 ; AVX-NEXT:    vmovaps %ymm0, 1568(%r9)
8156 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8157 ; AVX-NEXT:    vmovaps %ymm0, 1504(%r9)
8158 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8159 ; AVX-NEXT:    vmovaps %ymm0, 1408(%r9)
8160 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8161 ; AVX-NEXT:    vmovaps %ymm0, 1376(%r9)
8162 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8163 ; AVX-NEXT:    vmovaps %ymm0, 1248(%r9)
8164 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8165 ; AVX-NEXT:    vmovaps %ymm0, 1088(%r9)
8166 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8167 ; AVX-NEXT:    vmovaps %ymm0, 1056(%r9)
8168 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8169 ; AVX-NEXT:    vmovaps %ymm0, 1024(%r9)
8170 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8171 ; AVX-NEXT:    vmovaps %ymm0, 928(%r9)
8172 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8173 ; AVX-NEXT:    vmovaps %ymm0, 864(%r9)
8174 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8175 ; AVX-NEXT:    vmovaps %ymm0, 768(%r9)
8176 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8177 ; AVX-NEXT:    vmovaps %ymm0, 736(%r9)
8178 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8179 ; AVX-NEXT:    vmovaps %ymm0, 608(%r9)
8180 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8181 ; AVX-NEXT:    vmovaps %ymm0, 544(%r9)
8182 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8183 ; AVX-NEXT:    vmovaps %ymm0, 448(%r9)
8184 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8185 ; AVX-NEXT:    vmovaps %ymm0, 416(%r9)
8186 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8187 ; AVX-NEXT:    vmovaps %ymm0, 288(%r9)
8188 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8189 ; AVX-NEXT:    vmovaps %ymm0, 128(%r9)
8190 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8191 ; AVX-NEXT:    vmovaps %ymm0, 96(%r9)
8192 ; AVX-NEXT:    addq $2264, %rsp # imm = 0x8D8
8193 ; AVX-NEXT:    vzeroupper
8194 ; AVX-NEXT:    retq
8196 ; AVX2-LABEL: store_i64_stride5_vf64:
8197 ; AVX2:       # %bb.0:
8198 ; AVX2-NEXT:    subq $2696, %rsp # imm = 0xA88
8199 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm10
8200 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm11
8201 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm12
8202 ; AVX2-NEXT:    vmovaps (%rdi), %ymm13
8203 ; AVX2-NEXT:    vmovaps (%rsi), %xmm2
8204 ; AVX2-NEXT:    vmovaps 32(%rsi), %xmm4
8205 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm1
8206 ; AVX2-NEXT:    vmovaps 96(%rsi), %xmm0
8207 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
8208 ; AVX2-NEXT:    vmovaps (%rdi), %xmm6
8209 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm7
8210 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm2
8211 ; AVX2-NEXT:    vmovaps (%rdx), %xmm8
8212 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm9
8213 ; AVX2-NEXT:    vmovaps 64(%rdx), %xmm3
8214 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm6
8215 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
8216 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8217 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm5
8218 ; AVX2-NEXT:    vbroadcastsd 8(%rsi), %ymm6
8219 ; AVX2-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8220 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm13[0,1,2,3],ymm6[4,5,6,7]
8221 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
8222 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8223 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
8224 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm13[0],mem[0],ymm13[2],mem[2]
8225 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
8226 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8227 ; AVX2-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
8228 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm7, %ymm5
8229 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
8230 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8231 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm4
8232 ; AVX2-NEXT:    vbroadcastsd 40(%rsi), %ymm5
8233 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8234 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1,2,3],ymm5[4,5,6,7]
8235 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
8236 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8237 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
8238 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm12[0],mem[0],ymm12[2],mem[2]
8239 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
8240 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8241 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
8242 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
8243 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
8244 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8245 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
8246 ; AVX2-NEXT:    vbroadcastsd 72(%rsi), %ymm2
8247 ; AVX2-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8248 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm2[4,5,6,7]
8249 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
8250 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8251 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
8252 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],mem[0],ymm11[2],mem[2]
8253 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
8254 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8255 ; AVX2-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
8256 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm1
8257 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm2
8258 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8259 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8260 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8261 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8262 ; AVX2-NEXT:    vbroadcastsd 104(%rsi), %ymm1
8263 ; AVX2-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8264 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
8265 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8266 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8267 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8268 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm10[0],mem[0],ymm10[2],mem[2]
8269 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8270 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8271 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
8272 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
8273 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
8274 ; AVX2-NEXT:    vmovaps 128(%rdx), %xmm2
8275 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8276 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8277 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8278 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8279 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
8280 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8281 ; AVX2-NEXT:    vbroadcastsd 136(%rsi), %ymm1
8282 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8283 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8284 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8285 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8286 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8287 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8288 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8289 ; AVX2-NEXT:    vmovaps 160(%rsi), %xmm0
8290 ; AVX2-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
8291 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm1
8292 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm2
8293 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8294 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8295 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8296 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8297 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm2
8298 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8299 ; AVX2-NEXT:    vbroadcastsd 168(%rsi), %ymm1
8300 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8301 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8302 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8303 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8304 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8305 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8306 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8307 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
8308 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
8309 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm1
8310 ; AVX2-NEXT:    vmovaps 192(%rdx), %xmm2
8311 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8312 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8313 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8314 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8315 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
8316 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8317 ; AVX2-NEXT:    vbroadcastsd 200(%rsi), %ymm1
8318 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8319 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8320 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8321 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8322 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8323 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8324 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8325 ; AVX2-NEXT:    vmovaps 224(%rsi), %xmm0
8326 ; AVX2-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
8327 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm1
8328 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm2
8329 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8330 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8331 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8332 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8333 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm2
8334 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8335 ; AVX2-NEXT:    vbroadcastsd 232(%rsi), %ymm1
8336 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8337 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8338 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8339 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8340 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8341 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8342 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8343 ; AVX2-NEXT:    vmovaps 256(%rsi), %xmm0
8344 ; AVX2-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
8345 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm1
8346 ; AVX2-NEXT:    vmovaps 256(%rdx), %xmm2
8347 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8348 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8349 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8350 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8351 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm2
8352 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8353 ; AVX2-NEXT:    vbroadcastsd 264(%rsi), %ymm1
8354 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8355 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8356 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8357 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8358 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8359 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8360 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8361 ; AVX2-NEXT:    vmovaps 288(%rsi), %xmm0
8362 ; AVX2-NEXT:    vinsertf128 $1, 288(%rcx), %ymm0, %ymm0
8363 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm1
8364 ; AVX2-NEXT:    vmovaps 288(%rdx), %xmm2
8365 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8366 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8367 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8368 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8369 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm2
8370 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8371 ; AVX2-NEXT:    vbroadcastsd 296(%rsi), %ymm1
8372 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8373 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8374 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8375 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8376 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8377 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8378 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8379 ; AVX2-NEXT:    vmovaps 320(%rsi), %xmm0
8380 ; AVX2-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
8381 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm1
8382 ; AVX2-NEXT:    vmovaps 320(%rdx), %xmm2
8383 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8384 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8385 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8386 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8387 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
8388 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8389 ; AVX2-NEXT:    vbroadcastsd 328(%rsi), %ymm1
8390 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8391 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8392 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8393 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8394 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8395 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8396 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8397 ; AVX2-NEXT:    vmovaps 352(%rsi), %xmm0
8398 ; AVX2-NEXT:    vinsertf128 $1, 352(%rcx), %ymm0, %ymm0
8399 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm1
8400 ; AVX2-NEXT:    vmovaps 352(%rdx), %xmm2
8401 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8402 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8403 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8404 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8405 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm2
8406 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8407 ; AVX2-NEXT:    vbroadcastsd 360(%rsi), %ymm1
8408 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8409 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8410 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8411 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8412 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8413 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8414 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8415 ; AVX2-NEXT:    vmovaps 384(%rsi), %xmm0
8416 ; AVX2-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
8417 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm1
8418 ; AVX2-NEXT:    vmovaps 384(%rdx), %xmm2
8419 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8420 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8421 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8422 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8423 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm2
8424 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8425 ; AVX2-NEXT:    vbroadcastsd 392(%rsi), %ymm1
8426 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8427 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8428 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8429 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8430 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8431 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8432 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8433 ; AVX2-NEXT:    vmovaps 416(%rsi), %xmm0
8434 ; AVX2-NEXT:    vinsertf128 $1, 416(%rcx), %ymm0, %ymm0
8435 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm1
8436 ; AVX2-NEXT:    vmovaps 416(%rdx), %xmm2
8437 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8438 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8439 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8440 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8441 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm2
8442 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8443 ; AVX2-NEXT:    vbroadcastsd 424(%rsi), %ymm1
8444 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8445 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8446 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8447 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8448 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8449 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8450 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8451 ; AVX2-NEXT:    vmovaps 448(%rsi), %xmm0
8452 ; AVX2-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
8453 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm1
8454 ; AVX2-NEXT:    vmovaps 448(%rdx), %xmm2
8455 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8456 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8457 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8458 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8459 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm2
8460 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8461 ; AVX2-NEXT:    vbroadcastsd 456(%rsi), %ymm1
8462 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8463 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8464 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8465 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8466 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8467 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8468 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8469 ; AVX2-NEXT:    vmovaps 480(%rsi), %xmm0
8470 ; AVX2-NEXT:    vinsertf128 $1, 480(%rcx), %ymm0, %ymm0
8471 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm1
8472 ; AVX2-NEXT:    vmovaps 480(%rdx), %xmm2
8473 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
8474 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
8475 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8476 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
8477 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm2
8478 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8479 ; AVX2-NEXT:    vbroadcastsd 488(%rsi), %ymm1
8480 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
8481 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
8482 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8483 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
8484 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
8485 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8486 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8487 ; AVX2-NEXT:    vbroadcastsd 56(%rsi), %ymm0
8488 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8489 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm1
8490 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8491 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8492 ; AVX2-NEXT:    vbroadcastsd 120(%rsi), %ymm0
8493 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8494 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm1
8495 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8496 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
8497 ; AVX2-NEXT:    vbroadcastsd 184(%rsi), %ymm0
8498 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8499 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm1
8500 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8501 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8502 ; AVX2-NEXT:    vbroadcastsd 248(%rsi), %ymm0
8503 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8504 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm1
8505 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8506 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8507 ; AVX2-NEXT:    vbroadcastsd 312(%rsi), %ymm0
8508 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8509 ; AVX2-NEXT:    vbroadcastsd 312(%rcx), %ymm1
8510 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8511 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8512 ; AVX2-NEXT:    vbroadcastsd 376(%rsi), %ymm0
8513 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8514 ; AVX2-NEXT:    vbroadcastsd 376(%rcx), %ymm1
8515 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8516 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8517 ; AVX2-NEXT:    vbroadcastsd 440(%rsi), %ymm0
8518 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8519 ; AVX2-NEXT:    vbroadcastsd 440(%rcx), %ymm1
8520 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8521 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8522 ; AVX2-NEXT:    vbroadcastsd 504(%rsi), %ymm0
8523 ; AVX2-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
8524 ; AVX2-NEXT:    vbroadcastsd 504(%rcx), %ymm1
8525 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
8526 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8527 ; AVX2-NEXT:    vmovaps (%rdx), %ymm9
8528 ; AVX2-NEXT:    vmovaps (%rcx), %ymm1
8529 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
8530 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
8531 ; AVX2-NEXT:    vbroadcastsd 24(%rsi), %ymm3
8532 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm2[2,3,4,5,6,7]
8533 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8534 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm13
8535 ; AVX2-NEXT:    vmovaps 64(%rcx), %ymm2
8536 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm2[1],ymm13[3],ymm2[3]
8537 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
8538 ; AVX2-NEXT:    vbroadcastsd 88(%rsi), %ymm4
8539 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm3[2,3,4,5,6,7]
8540 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8541 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm3
8542 ; AVX2-NEXT:    vmovaps 128(%rcx), %ymm15
8543 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm15[1],ymm3[3],ymm15[3]
8544 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
8545 ; AVX2-NEXT:    vbroadcastsd 152(%rsi), %ymm5
8546 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm4[2,3,4,5,6,7]
8547 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8548 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm5
8549 ; AVX2-NEXT:    vmovaps 192(%rcx), %ymm4
8550 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
8551 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
8552 ; AVX2-NEXT:    vbroadcastsd 216(%rsi), %ymm7
8553 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3,4,5,6,7]
8554 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8555 ; AVX2-NEXT:    vmovaps 256(%rdx), %ymm7
8556 ; AVX2-NEXT:    vmovaps 256(%rcx), %ymm6
8557 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
8558 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
8559 ; AVX2-NEXT:    vbroadcastsd 280(%rsi), %ymm10
8560 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm8[2,3,4,5,6,7]
8561 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8562 ; AVX2-NEXT:    vmovaps 320(%rdx), %ymm10
8563 ; AVX2-NEXT:    vmovaps 320(%rcx), %ymm8
8564 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
8565 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,2,3,3]
8566 ; AVX2-NEXT:    vbroadcastsd 344(%rsi), %ymm12
8567 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm11[2,3,4,5,6,7]
8568 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8569 ; AVX2-NEXT:    vmovaps 384(%rdx), %ymm0
8570 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8571 ; AVX2-NEXT:    vmovaps 384(%rcx), %ymm11
8572 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
8573 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,2,3,3]
8574 ; AVX2-NEXT:    vbroadcastsd 408(%rsi), %ymm12
8575 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm14[2,3,4,5,6,7]
8576 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8577 ; AVX2-NEXT:    vmovaps 448(%rdx), %ymm12
8578 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8579 ; AVX2-NEXT:    vmovaps 448(%rcx), %ymm0
8580 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8581 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
8582 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,3,3]
8583 ; AVX2-NEXT:    vbroadcastsd 472(%rsi), %ymm14
8584 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2,3,4,5,6,7]
8585 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8586 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
8587 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8588 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8589 ; AVX2-NEXT:    vmovaps (%r8), %ymm1
8590 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
8591 ; AVX2-NEXT:    # ymm12 = ymm1[0,1],mem[2,3,4,5,6,7]
8592 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8593 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
8594 ; AVX2-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8595 ; AVX2-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8596 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
8597 ; AVX2-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
8598 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8599 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8600 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8601 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8602 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8603 ; AVX2-NEXT:    vbroadcastsd 48(%rcx), %ymm1
8604 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8605 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm1
8606 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
8607 ; AVX2-NEXT:    # ymm9 = ymm1[0,1],mem[2,3,4,5,6,7]
8608 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8609 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
8610 ; AVX2-NEXT:    # ymm9 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8611 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8612 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
8613 ; AVX2-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
8614 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8615 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8616 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8617 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm2[0],ymm13[2],ymm2[2]
8618 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8619 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8620 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm1
8621 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8622 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8623 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8624 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8625 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8626 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8627 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8628 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8629 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8630 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8631 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8632 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8633 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8634 ; AVX2-NEXT:    vbroadcastsd 112(%rcx), %ymm1
8635 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8636 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm1
8637 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8638 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8639 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8640 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8641 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8642 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8643 ; AVX2-NEXT:    vblendps $63, (%rsp), %ymm1, %ymm2 # 32-byte Folded Reload
8644 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8645 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8646 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8647 ; AVX2-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
8648 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm15[0],ymm3[2],ymm15[2]
8649 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8650 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8651 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm1
8652 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8653 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8654 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8655 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8656 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8657 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8658 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8659 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8660 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8661 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8662 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8663 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8664 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8665 ; AVX2-NEXT:    vbroadcastsd 176(%rcx), %ymm1
8666 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8667 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm1
8668 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8669 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8670 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8671 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8672 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8673 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8674 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8675 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8676 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8677 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8678 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8679 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
8680 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8681 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8682 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm1
8683 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8684 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8685 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8686 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8687 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8688 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8689 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8690 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8691 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8692 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8693 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8694 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8695 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8696 ; AVX2-NEXT:    vbroadcastsd 240(%rcx), %ymm1
8697 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8698 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm1
8699 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8700 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8701 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8702 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8703 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8704 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8705 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8706 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8707 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8708 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8709 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8710 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
8711 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8712 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8713 ; AVX2-NEXT:    vmovaps 256(%r8), %ymm1
8714 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8715 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8716 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8717 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8718 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8719 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8720 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8721 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8722 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8723 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8724 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8725 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8726 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8727 ; AVX2-NEXT:    vbroadcastsd 304(%rcx), %ymm1
8728 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8729 ; AVX2-NEXT:    vmovaps 288(%r8), %ymm1
8730 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8731 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8732 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8733 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8734 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8735 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8736 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8737 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8738 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8739 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8740 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8741 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
8742 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8743 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8744 ; AVX2-NEXT:    vmovaps 320(%r8), %ymm1
8745 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8746 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8747 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8748 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8749 ; AVX2-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8750 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8751 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8752 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8753 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8754 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8755 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8756 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8757 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
8758 ; AVX2-NEXT:    vbroadcastsd 368(%rcx), %ymm1
8759 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
8760 ; AVX2-NEXT:    vmovaps 352(%r8), %ymm1
8761 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8762 ; AVX2-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
8763 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8764 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
8765 ; AVX2-NEXT:    # ymm15 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
8766 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
8767 ; AVX2-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
8768 ; AVX2-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8769 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
8770 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8771 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm11[0],ymm0[2],ymm11[2]
8772 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
8773 ; AVX2-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
8774 ; AVX2-NEXT:    vmovaps 384(%r8), %ymm11
8775 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm13 # 32-byte Folded Reload
8776 ; AVX2-NEXT:    # ymm13 = ymm11[0,1],mem[2,3,4,5,6,7]
8777 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
8778 ; AVX2-NEXT:    # ymm10 = mem[0,1],ymm11[2,3],mem[4,5,6,7]
8779 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
8780 ; AVX2-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm11[6,7]
8781 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8782 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm11[4,5],ymm0[6,7]
8783 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8784 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
8785 ; AVX2-NEXT:    vbroadcastsd 432(%rcx), %ymm12
8786 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
8787 ; AVX2-NEXT:    vmovaps 416(%r8), %ymm12
8788 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm8 # 32-byte Folded Reload
8789 ; AVX2-NEXT:    # ymm8 = ymm12[0,1],mem[2,3,4,5,6,7]
8790 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm7 # 32-byte Folded Reload
8791 ; AVX2-NEXT:    # ymm7 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
8792 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
8793 ; AVX2-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm12[6,7]
8794 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8795 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]
8796 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8797 ; AVX2-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
8798 ; AVX2-NEXT:    # ymm11 = ymm0[0],mem[0],ymm0[2],mem[2]
8799 ; AVX2-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
8800 ; AVX2-NEXT:    # ymm11 = ymm11[2,3],mem[2,3]
8801 ; AVX2-NEXT:    vmovaps 448(%r8), %ymm0
8802 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
8803 ; AVX2-NEXT:    # ymm5 = ymm0[0,1],mem[2,3,4,5,6,7]
8804 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
8805 ; AVX2-NEXT:    # ymm4 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
8806 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
8807 ; AVX2-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm0[6,7]
8808 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8809 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
8810 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8811 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
8812 ; AVX2-NEXT:    vbroadcastsd 496(%rcx), %ymm12
8813 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
8814 ; AVX2-NEXT:    vmovaps 480(%r8), %ymm0
8815 ; AVX2-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
8816 ; AVX2-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
8817 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
8818 ; AVX2-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
8819 ; AVX2-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
8820 ; AVX2-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
8821 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]
8822 ; AVX2-NEXT:    vmovaps %ymm0, 2496(%r9)
8823 ; AVX2-NEXT:    vmovaps %ymm1, 2464(%r9)
8824 ; AVX2-NEXT:    vmovaps %ymm2, 2432(%r9)
8825 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8826 ; AVX2-NEXT:    vmovaps %ymm0, 2400(%r9)
8827 ; AVX2-NEXT:    vmovaps %ymm3, 2336(%r9)
8828 ; AVX2-NEXT:    vmovaps %ymm4, 2304(%r9)
8829 ; AVX2-NEXT:    vmovaps %ymm5, 2272(%r9)
8830 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8831 ; AVX2-NEXT:    vmovaps %ymm0, 2240(%r9)
8832 ; AVX2-NEXT:    vmovaps %ymm6, 2176(%r9)
8833 ; AVX2-NEXT:    vmovaps %ymm7, 2144(%r9)
8834 ; AVX2-NEXT:    vmovaps %ymm8, 2112(%r9)
8835 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8836 ; AVX2-NEXT:    vmovaps %ymm0, 2080(%r9)
8837 ; AVX2-NEXT:    vmovaps %ymm9, 2016(%r9)
8838 ; AVX2-NEXT:    vmovaps %ymm10, 1984(%r9)
8839 ; AVX2-NEXT:    vmovaps %ymm13, 1952(%r9)
8840 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8841 ; AVX2-NEXT:    vmovaps %ymm0, 1920(%r9)
8842 ; AVX2-NEXT:    vmovaps %ymm14, 1856(%r9)
8843 ; AVX2-NEXT:    vmovaps %ymm15, 1824(%r9)
8844 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8845 ; AVX2-NEXT:    vmovaps %ymm0, 1792(%r9)
8846 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8847 ; AVX2-NEXT:    vmovaps %ymm0, 1760(%r9)
8848 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8849 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%r9)
8850 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8851 ; AVX2-NEXT:    vmovaps %ymm0, 1664(%r9)
8852 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8853 ; AVX2-NEXT:    vmovaps %ymm0, 1632(%r9)
8854 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8855 ; AVX2-NEXT:    vmovaps %ymm0, 1600(%r9)
8856 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8857 ; AVX2-NEXT:    vmovaps %ymm0, 1536(%r9)
8858 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8859 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%r9)
8860 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8861 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%r9)
8862 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8863 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%r9)
8864 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8865 ; AVX2-NEXT:    vmovaps %ymm0, 1376(%r9)
8866 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8867 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%r9)
8868 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8869 ; AVX2-NEXT:    vmovaps %ymm0, 1312(%r9)
8870 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8871 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%r9)
8872 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8873 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%r9)
8874 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8875 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%r9)
8876 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8877 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%r9)
8878 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8879 ; AVX2-NEXT:    vmovaps %ymm0, 1120(%r9)
8880 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8881 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%r9)
8882 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8883 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%r9)
8884 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8885 ; AVX2-NEXT:    vmovaps %ymm0, 992(%r9)
8886 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8887 ; AVX2-NEXT:    vmovaps %ymm0, 960(%r9)
8888 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8889 ; AVX2-NEXT:    vmovaps %ymm0, 896(%r9)
8890 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8891 ; AVX2-NEXT:    vmovaps %ymm0, 864(%r9)
8892 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8893 ; AVX2-NEXT:    vmovaps %ymm0, 832(%r9)
8894 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8895 ; AVX2-NEXT:    vmovaps %ymm0, 800(%r9)
8896 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8897 ; AVX2-NEXT:    vmovaps %ymm0, 736(%r9)
8898 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8899 ; AVX2-NEXT:    vmovaps %ymm0, 704(%r9)
8900 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8901 ; AVX2-NEXT:    vmovaps %ymm0, 672(%r9)
8902 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8903 ; AVX2-NEXT:    vmovaps %ymm0, 640(%r9)
8904 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
8905 ; AVX2-NEXT:    vmovaps %ymm0, 576(%r9)
8906 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8907 ; AVX2-NEXT:    vmovaps %ymm0, 544(%r9)
8908 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8909 ; AVX2-NEXT:    vmovaps %ymm0, 512(%r9)
8910 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8911 ; AVX2-NEXT:    vmovaps %ymm0, 480(%r9)
8912 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8913 ; AVX2-NEXT:    vmovaps %ymm0, 416(%r9)
8914 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8915 ; AVX2-NEXT:    vmovaps %ymm0, 384(%r9)
8916 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8917 ; AVX2-NEXT:    vmovaps %ymm0, 352(%r9)
8918 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8919 ; AVX2-NEXT:    vmovaps %ymm0, 320(%r9)
8920 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8921 ; AVX2-NEXT:    vmovaps %ymm0, 256(%r9)
8922 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8923 ; AVX2-NEXT:    vmovaps %ymm0, 224(%r9)
8924 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8925 ; AVX2-NEXT:    vmovaps %ymm0, 192(%r9)
8926 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8927 ; AVX2-NEXT:    vmovaps %ymm0, 160(%r9)
8928 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8929 ; AVX2-NEXT:    vmovaps %ymm0, 96(%r9)
8930 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8931 ; AVX2-NEXT:    vmovaps %ymm0, 64(%r9)
8932 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8933 ; AVX2-NEXT:    vmovaps %ymm0, 32(%r9)
8934 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8935 ; AVX2-NEXT:    vmovaps %ymm0, (%r9)
8936 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8937 ; AVX2-NEXT:    vmovaps %ymm0, 2368(%r9)
8938 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8939 ; AVX2-NEXT:    vmovaps %ymm0, 2048(%r9)
8940 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8941 ; AVX2-NEXT:    vmovaps %ymm0, 1728(%r9)
8942 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8943 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%r9)
8944 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8945 ; AVX2-NEXT:    vmovaps %ymm0, 1088(%r9)
8946 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8947 ; AVX2-NEXT:    vmovaps %ymm0, 768(%r9)
8948 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8949 ; AVX2-NEXT:    vmovaps %ymm0, 448(%r9)
8950 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8951 ; AVX2-NEXT:    vmovaps %ymm0, 128(%r9)
8952 ; AVX2-NEXT:    vmovaps %ymm11, 2528(%r9)
8953 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8954 ; AVX2-NEXT:    vmovaps %ymm0, 2208(%r9)
8955 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8956 ; AVX2-NEXT:    vmovaps %ymm0, 1888(%r9)
8957 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8958 ; AVX2-NEXT:    vmovaps %ymm0, 1568(%r9)
8959 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8960 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%r9)
8961 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8962 ; AVX2-NEXT:    vmovaps %ymm0, 928(%r9)
8963 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8964 ; AVX2-NEXT:    vmovaps %ymm0, 608(%r9)
8965 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8966 ; AVX2-NEXT:    vmovaps %ymm0, 288(%r9)
8967 ; AVX2-NEXT:    addq $2696, %rsp # imm = 0xA88
8968 ; AVX2-NEXT:    vzeroupper
8969 ; AVX2-NEXT:    retq
8971 ; AVX2-FP-LABEL: store_i64_stride5_vf64:
8972 ; AVX2-FP:       # %bb.0:
8973 ; AVX2-FP-NEXT:    subq $2696, %rsp # imm = 0xA88
8974 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm10
8975 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm11
8976 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm12
8977 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm13
8978 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm2
8979 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %xmm4
8980 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm1
8981 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %xmm0
8982 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
8983 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm6
8984 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
8985 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm2
8986 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm8
8987 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm9
8988 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %xmm3
8989 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm6
8990 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
8991 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8992 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm5
8993 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
8994 ; AVX2-FP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8995 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm13[0,1,2,3],ymm6[4,5,6,7]
8996 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
8997 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8998 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
8999 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm13[0],mem[0],ymm13[2],mem[2]
9000 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
9001 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9002 ; AVX2-FP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
9003 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm7, %ymm5
9004 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
9005 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9006 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm4
9007 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rsi), %ymm5
9008 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9009 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1,2,3],ymm5[4,5,6,7]
9010 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
9011 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9012 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
9013 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm12[0],mem[0],ymm12[2],mem[2]
9014 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
9015 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9016 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
9017 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
9018 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
9019 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9020 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
9021 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rsi), %ymm2
9022 ; AVX2-FP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9023 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm2[4,5,6,7]
9024 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
9025 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9026 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
9027 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],mem[0],ymm11[2],mem[2]
9028 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
9029 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9030 ; AVX2-FP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
9031 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm1
9032 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm2
9033 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9034 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9035 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9036 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9037 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
9038 ; AVX2-FP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9039 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
9040 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9041 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9042 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9043 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm10[0],mem[0],ymm10[2],mem[2]
9044 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9045 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9046 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
9047 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
9048 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
9049 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %xmm2
9050 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9051 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9052 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9053 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9054 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
9055 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9056 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rsi), %ymm1
9057 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9058 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9059 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9060 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9061 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9062 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9063 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9064 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %xmm0
9065 ; AVX2-FP-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
9066 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm1
9067 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm2
9068 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9069 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9070 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9071 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9072 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm2
9073 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9074 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rsi), %ymm1
9075 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9076 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9077 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9078 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9079 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9080 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9081 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9082 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
9083 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
9084 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm1
9085 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %xmm2
9086 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9087 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9088 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9089 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9090 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
9091 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9092 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rsi), %ymm1
9093 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9094 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9095 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9096 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9097 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9098 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9099 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9100 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %xmm0
9101 ; AVX2-FP-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
9102 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm1
9103 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm2
9104 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9105 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9106 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9107 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9108 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm2
9109 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9110 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rsi), %ymm1
9111 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9112 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9113 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9114 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9115 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9116 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9117 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9118 ; AVX2-FP-NEXT:    vmovaps 256(%rsi), %xmm0
9119 ; AVX2-FP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
9120 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm1
9121 ; AVX2-FP-NEXT:    vmovaps 256(%rdx), %xmm2
9122 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9123 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9124 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9125 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9126 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm2
9127 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9128 ; AVX2-FP-NEXT:    vbroadcastsd 264(%rsi), %ymm1
9129 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9130 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9131 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9132 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9133 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9134 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9135 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9136 ; AVX2-FP-NEXT:    vmovaps 288(%rsi), %xmm0
9137 ; AVX2-FP-NEXT:    vinsertf128 $1, 288(%rcx), %ymm0, %ymm0
9138 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm1
9139 ; AVX2-FP-NEXT:    vmovaps 288(%rdx), %xmm2
9140 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9141 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9142 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9143 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9144 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm2
9145 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9146 ; AVX2-FP-NEXT:    vbroadcastsd 296(%rsi), %ymm1
9147 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9148 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9149 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9150 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9151 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9152 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9153 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9154 ; AVX2-FP-NEXT:    vmovaps 320(%rsi), %xmm0
9155 ; AVX2-FP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
9156 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm1
9157 ; AVX2-FP-NEXT:    vmovaps 320(%rdx), %xmm2
9158 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9159 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9160 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9161 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9162 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
9163 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9164 ; AVX2-FP-NEXT:    vbroadcastsd 328(%rsi), %ymm1
9165 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9166 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9167 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9168 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9169 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9170 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9171 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9172 ; AVX2-FP-NEXT:    vmovaps 352(%rsi), %xmm0
9173 ; AVX2-FP-NEXT:    vinsertf128 $1, 352(%rcx), %ymm0, %ymm0
9174 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm1
9175 ; AVX2-FP-NEXT:    vmovaps 352(%rdx), %xmm2
9176 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9177 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9178 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9179 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9180 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm2
9181 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9182 ; AVX2-FP-NEXT:    vbroadcastsd 360(%rsi), %ymm1
9183 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9184 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9185 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9186 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9187 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9188 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9189 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9190 ; AVX2-FP-NEXT:    vmovaps 384(%rsi), %xmm0
9191 ; AVX2-FP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
9192 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm1
9193 ; AVX2-FP-NEXT:    vmovaps 384(%rdx), %xmm2
9194 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9195 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9196 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9197 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9198 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm2
9199 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9200 ; AVX2-FP-NEXT:    vbroadcastsd 392(%rsi), %ymm1
9201 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9202 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9203 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9204 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9205 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9206 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9207 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9208 ; AVX2-FP-NEXT:    vmovaps 416(%rsi), %xmm0
9209 ; AVX2-FP-NEXT:    vinsertf128 $1, 416(%rcx), %ymm0, %ymm0
9210 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm1
9211 ; AVX2-FP-NEXT:    vmovaps 416(%rdx), %xmm2
9212 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9213 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9214 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9215 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9216 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm2
9217 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9218 ; AVX2-FP-NEXT:    vbroadcastsd 424(%rsi), %ymm1
9219 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9220 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9221 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9222 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9223 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9224 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9225 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9226 ; AVX2-FP-NEXT:    vmovaps 448(%rsi), %xmm0
9227 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
9228 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm1
9229 ; AVX2-FP-NEXT:    vmovaps 448(%rdx), %xmm2
9230 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9231 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9232 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9233 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9234 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm2
9235 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9236 ; AVX2-FP-NEXT:    vbroadcastsd 456(%rsi), %ymm1
9237 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9238 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9239 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9240 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9241 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9242 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9243 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9244 ; AVX2-FP-NEXT:    vmovaps 480(%rsi), %xmm0
9245 ; AVX2-FP-NEXT:    vinsertf128 $1, 480(%rcx), %ymm0, %ymm0
9246 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm1
9247 ; AVX2-FP-NEXT:    vmovaps 480(%rdx), %xmm2
9248 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9249 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9250 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9251 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9252 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm2
9253 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9254 ; AVX2-FP-NEXT:    vbroadcastsd 488(%rsi), %ymm1
9255 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9256 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9257 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9258 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9259 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9260 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9261 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9262 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
9263 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9264 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
9265 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9266 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9267 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rsi), %ymm0
9268 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9269 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
9270 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9271 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
9272 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rsi), %ymm0
9273 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9274 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
9275 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9276 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9277 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rsi), %ymm0
9278 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9279 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
9280 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9281 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9282 ; AVX2-FP-NEXT:    vbroadcastsd 312(%rsi), %ymm0
9283 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9284 ; AVX2-FP-NEXT:    vbroadcastsd 312(%rcx), %ymm1
9285 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9286 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9287 ; AVX2-FP-NEXT:    vbroadcastsd 376(%rsi), %ymm0
9288 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9289 ; AVX2-FP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
9290 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9291 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9292 ; AVX2-FP-NEXT:    vbroadcastsd 440(%rsi), %ymm0
9293 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9294 ; AVX2-FP-NEXT:    vbroadcastsd 440(%rcx), %ymm1
9295 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9296 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9297 ; AVX2-FP-NEXT:    vbroadcastsd 504(%rsi), %ymm0
9298 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
9299 ; AVX2-FP-NEXT:    vbroadcastsd 504(%rcx), %ymm1
9300 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9301 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9302 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm9
9303 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm1
9304 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
9305 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
9306 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rsi), %ymm3
9307 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm2[2,3,4,5,6,7]
9308 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9309 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm13
9310 ; AVX2-FP-NEXT:    vmovaps 64(%rcx), %ymm2
9311 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm2[1],ymm13[3],ymm2[3]
9312 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
9313 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rsi), %ymm4
9314 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm3[2,3,4,5,6,7]
9315 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9316 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm3
9317 ; AVX2-FP-NEXT:    vmovaps 128(%rcx), %ymm15
9318 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm15[1],ymm3[3],ymm15[3]
9319 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
9320 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rsi), %ymm5
9321 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm4[2,3,4,5,6,7]
9322 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9323 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm5
9324 ; AVX2-FP-NEXT:    vmovaps 192(%rcx), %ymm4
9325 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
9326 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
9327 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rsi), %ymm7
9328 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3,4,5,6,7]
9329 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9330 ; AVX2-FP-NEXT:    vmovaps 256(%rdx), %ymm7
9331 ; AVX2-FP-NEXT:    vmovaps 256(%rcx), %ymm6
9332 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
9333 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
9334 ; AVX2-FP-NEXT:    vbroadcastsd 280(%rsi), %ymm10
9335 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm8[2,3,4,5,6,7]
9336 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9337 ; AVX2-FP-NEXT:    vmovaps 320(%rdx), %ymm10
9338 ; AVX2-FP-NEXT:    vmovaps 320(%rcx), %ymm8
9339 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
9340 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,2,3,3]
9341 ; AVX2-FP-NEXT:    vbroadcastsd 344(%rsi), %ymm12
9342 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm11[2,3,4,5,6,7]
9343 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9344 ; AVX2-FP-NEXT:    vmovaps 384(%rdx), %ymm0
9345 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9346 ; AVX2-FP-NEXT:    vmovaps 384(%rcx), %ymm11
9347 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
9348 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,2,3,3]
9349 ; AVX2-FP-NEXT:    vbroadcastsd 408(%rsi), %ymm12
9350 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm14[2,3,4,5,6,7]
9351 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9352 ; AVX2-FP-NEXT:    vmovaps 448(%rdx), %ymm12
9353 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9354 ; AVX2-FP-NEXT:    vmovaps 448(%rcx), %ymm0
9355 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9356 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
9357 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,3,3]
9358 ; AVX2-FP-NEXT:    vbroadcastsd 472(%rsi), %ymm14
9359 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2,3,4,5,6,7]
9360 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9361 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
9362 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9363 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9364 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm1
9365 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
9366 ; AVX2-FP-NEXT:    # ymm12 = ymm1[0,1],mem[2,3,4,5,6,7]
9367 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9368 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
9369 ; AVX2-FP-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9370 ; AVX2-FP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9371 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
9372 ; AVX2-FP-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
9373 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9374 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9375 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9376 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9377 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9378 ; AVX2-FP-NEXT:    vbroadcastsd 48(%rcx), %ymm1
9379 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9380 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm1
9381 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
9382 ; AVX2-FP-NEXT:    # ymm9 = ymm1[0,1],mem[2,3,4,5,6,7]
9383 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9384 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
9385 ; AVX2-FP-NEXT:    # ymm9 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9386 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9387 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
9388 ; AVX2-FP-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
9389 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9390 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9391 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9392 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm2[0],ymm13[2],ymm2[2]
9393 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9394 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9395 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm1
9396 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9397 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9398 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9399 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9400 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9401 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9402 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9403 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9404 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9405 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9406 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9407 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9408 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9409 ; AVX2-FP-NEXT:    vbroadcastsd 112(%rcx), %ymm1
9410 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9411 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm1
9412 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9413 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9414 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9415 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9416 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9417 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9418 ; AVX2-FP-NEXT:    vblendps $63, (%rsp), %ymm1, %ymm2 # 32-byte Folded Reload
9419 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9420 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9421 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9422 ; AVX2-FP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
9423 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm15[0],ymm3[2],ymm15[2]
9424 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9425 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9426 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm1
9427 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9428 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9429 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9430 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9431 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9432 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9433 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9434 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9435 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9436 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9437 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9438 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9439 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9440 ; AVX2-FP-NEXT:    vbroadcastsd 176(%rcx), %ymm1
9441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9442 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm1
9443 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9444 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9445 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9446 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9447 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9448 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9449 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9450 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9451 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9452 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9453 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9454 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
9455 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9456 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9457 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm1
9458 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9459 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9460 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9461 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9462 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9463 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9464 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9465 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9466 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9467 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9468 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9469 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9470 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9471 ; AVX2-FP-NEXT:    vbroadcastsd 240(%rcx), %ymm1
9472 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9473 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm1
9474 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9475 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9476 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9477 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9478 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9479 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9480 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9481 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9482 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9483 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9484 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9485 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
9486 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9487 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9488 ; AVX2-FP-NEXT:    vmovaps 256(%r8), %ymm1
9489 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9490 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9491 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9492 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9493 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9494 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9495 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9496 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9497 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9498 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9499 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9500 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9501 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9502 ; AVX2-FP-NEXT:    vbroadcastsd 304(%rcx), %ymm1
9503 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9504 ; AVX2-FP-NEXT:    vmovaps 288(%r8), %ymm1
9505 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9506 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9507 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9508 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9509 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9510 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9511 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9512 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9513 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9514 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9515 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9516 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
9517 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9518 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9519 ; AVX2-FP-NEXT:    vmovaps 320(%r8), %ymm1
9520 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9521 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9522 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9523 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9524 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9525 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9526 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9527 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9528 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9529 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9530 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9531 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9532 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
9533 ; AVX2-FP-NEXT:    vbroadcastsd 368(%rcx), %ymm1
9534 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
9535 ; AVX2-FP-NEXT:    vmovaps 352(%r8), %ymm1
9536 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9537 ; AVX2-FP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
9538 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9539 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
9540 ; AVX2-FP-NEXT:    # ymm15 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
9541 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
9542 ; AVX2-FP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
9543 ; AVX2-FP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9544 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
9545 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9546 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm11[0],ymm0[2],ymm11[2]
9547 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
9548 ; AVX2-FP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
9549 ; AVX2-FP-NEXT:    vmovaps 384(%r8), %ymm11
9550 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm13 # 32-byte Folded Reload
9551 ; AVX2-FP-NEXT:    # ymm13 = ymm11[0,1],mem[2,3,4,5,6,7]
9552 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
9553 ; AVX2-FP-NEXT:    # ymm10 = mem[0,1],ymm11[2,3],mem[4,5,6,7]
9554 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
9555 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm11[6,7]
9556 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9557 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm11[4,5],ymm0[6,7]
9558 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9559 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
9560 ; AVX2-FP-NEXT:    vbroadcastsd 432(%rcx), %ymm12
9561 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
9562 ; AVX2-FP-NEXT:    vmovaps 416(%r8), %ymm12
9563 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm8 # 32-byte Folded Reload
9564 ; AVX2-FP-NEXT:    # ymm8 = ymm12[0,1],mem[2,3,4,5,6,7]
9565 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm7 # 32-byte Folded Reload
9566 ; AVX2-FP-NEXT:    # ymm7 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
9567 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
9568 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm12[6,7]
9569 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9570 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]
9571 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9572 ; AVX2-FP-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
9573 ; AVX2-FP-NEXT:    # ymm11 = ymm0[0],mem[0],ymm0[2],mem[2]
9574 ; AVX2-FP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
9575 ; AVX2-FP-NEXT:    # ymm11 = ymm11[2,3],mem[2,3]
9576 ; AVX2-FP-NEXT:    vmovaps 448(%r8), %ymm0
9577 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
9578 ; AVX2-FP-NEXT:    # ymm5 = ymm0[0,1],mem[2,3,4,5,6,7]
9579 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
9580 ; AVX2-FP-NEXT:    # ymm4 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
9581 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
9582 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm0[6,7]
9583 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9584 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
9585 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9586 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
9587 ; AVX2-FP-NEXT:    vbroadcastsd 496(%rcx), %ymm12
9588 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
9589 ; AVX2-FP-NEXT:    vmovaps 480(%r8), %ymm0
9590 ; AVX2-FP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
9591 ; AVX2-FP-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
9592 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
9593 ; AVX2-FP-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
9594 ; AVX2-FP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
9595 ; AVX2-FP-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
9596 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]
9597 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2496(%r9)
9598 ; AVX2-FP-NEXT:    vmovaps %ymm1, 2464(%r9)
9599 ; AVX2-FP-NEXT:    vmovaps %ymm2, 2432(%r9)
9600 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9601 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2400(%r9)
9602 ; AVX2-FP-NEXT:    vmovaps %ymm3, 2336(%r9)
9603 ; AVX2-FP-NEXT:    vmovaps %ymm4, 2304(%r9)
9604 ; AVX2-FP-NEXT:    vmovaps %ymm5, 2272(%r9)
9605 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9606 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2240(%r9)
9607 ; AVX2-FP-NEXT:    vmovaps %ymm6, 2176(%r9)
9608 ; AVX2-FP-NEXT:    vmovaps %ymm7, 2144(%r9)
9609 ; AVX2-FP-NEXT:    vmovaps %ymm8, 2112(%r9)
9610 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9611 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2080(%r9)
9612 ; AVX2-FP-NEXT:    vmovaps %ymm9, 2016(%r9)
9613 ; AVX2-FP-NEXT:    vmovaps %ymm10, 1984(%r9)
9614 ; AVX2-FP-NEXT:    vmovaps %ymm13, 1952(%r9)
9615 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9616 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1920(%r9)
9617 ; AVX2-FP-NEXT:    vmovaps %ymm14, 1856(%r9)
9618 ; AVX2-FP-NEXT:    vmovaps %ymm15, 1824(%r9)
9619 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9620 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1792(%r9)
9621 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9622 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1760(%r9)
9623 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9624 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%r9)
9625 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9626 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1664(%r9)
9627 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9628 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1632(%r9)
9629 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9630 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1600(%r9)
9631 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9632 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1536(%r9)
9633 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9634 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%r9)
9635 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9636 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%r9)
9637 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9638 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%r9)
9639 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9640 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1376(%r9)
9641 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9642 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%r9)
9643 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9644 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1312(%r9)
9645 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9646 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%r9)
9647 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9648 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%r9)
9649 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9650 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%r9)
9651 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9652 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%r9)
9653 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9654 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1120(%r9)
9655 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9656 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%r9)
9657 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9658 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%r9)
9659 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9660 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%r9)
9661 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9662 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%r9)
9663 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9664 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%r9)
9665 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9666 ; AVX2-FP-NEXT:    vmovaps %ymm0, 864(%r9)
9667 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9668 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%r9)
9669 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9670 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%r9)
9671 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9672 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%r9)
9673 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9674 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%r9)
9675 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9676 ; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%r9)
9677 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9678 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%r9)
9679 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
9680 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%r9)
9681 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9682 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%r9)
9683 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9684 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%r9)
9685 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9686 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%r9)
9687 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9688 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%r9)
9689 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9690 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%r9)
9691 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9692 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%r9)
9693 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9694 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%r9)
9695 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9696 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%r9)
9697 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9698 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%r9)
9699 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9700 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%r9)
9701 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9702 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%r9)
9703 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9704 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%r9)
9705 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9706 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%r9)
9707 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9708 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%r9)
9709 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9710 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%r9)
9711 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9712 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2368(%r9)
9713 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9714 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2048(%r9)
9715 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9716 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1728(%r9)
9717 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9718 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%r9)
9719 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9720 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1088(%r9)
9721 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9722 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%r9)
9723 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9724 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%r9)
9725 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9726 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%r9)
9727 ; AVX2-FP-NEXT:    vmovaps %ymm11, 2528(%r9)
9728 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9729 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2208(%r9)
9730 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9731 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1888(%r9)
9732 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9733 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1568(%r9)
9734 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9735 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%r9)
9736 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9737 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%r9)
9738 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9739 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%r9)
9740 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
9741 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%r9)
9742 ; AVX2-FP-NEXT:    addq $2696, %rsp # imm = 0xA88
9743 ; AVX2-FP-NEXT:    vzeroupper
9744 ; AVX2-FP-NEXT:    retq
9746 ; AVX2-FCP-LABEL: store_i64_stride5_vf64:
9747 ; AVX2-FCP:       # %bb.0:
9748 ; AVX2-FCP-NEXT:    subq $2696, %rsp # imm = 0xA88
9749 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm10
9750 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm11
9751 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm12
9752 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm13
9753 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm2
9754 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %xmm4
9755 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm1
9756 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %xmm0
9757 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm2, %ymm5
9758 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm6
9759 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
9760 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm2
9761 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm8
9762 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm9
9763 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %xmm3
9764 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm6, %ymm6
9765 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
9766 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9767 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm5
9768 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rsi), %ymm6
9769 ; AVX2-FCP-NEXT:    vmovups %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9770 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm13[0,1,2,3],ymm6[4,5,6,7]
9771 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
9772 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9773 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
9774 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm13[0],mem[0],ymm13[2],mem[2]
9775 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5,6,7]
9776 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9777 ; AVX2-FCP-NEXT:    vinsertf128 $1, 32(%rcx), %ymm4, %ymm4
9778 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm7, %ymm5
9779 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
9780 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9781 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm0, %ymm4
9782 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rsi), %ymm5
9783 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9784 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm12[0,1,2,3],ymm5[4,5,6,7]
9785 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3,4,5],ymm4[6,7]
9786 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9787 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
9788 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm12[0],mem[0],ymm12[2],mem[2]
9789 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm5[4,5,6,7]
9790 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9791 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
9792 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm2
9793 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
9794 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9795 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
9796 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rsi), %ymm2
9797 ; AVX2-FCP-NEXT:    vmovups %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9798 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm11[0,1,2,3],ymm2[4,5,6,7]
9799 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
9800 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9801 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
9802 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm11[0],mem[0],ymm11[2],mem[2]
9803 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
9804 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9805 ; AVX2-FCP-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm0
9806 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm1
9807 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm2
9808 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9809 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9810 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9811 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9812 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rsi), %ymm1
9813 ; AVX2-FCP-NEXT:    vmovups %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9814 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm10[0,1,2,3],ymm1[4,5,6,7]
9815 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9816 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9817 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9818 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm10[0],mem[0],ymm10[2],mem[2]
9819 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9820 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9821 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
9822 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
9823 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
9824 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %xmm2
9825 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9826 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9827 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9828 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9829 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
9830 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9831 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rsi), %ymm1
9832 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9833 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9834 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9835 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9836 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9837 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9838 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9839 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %xmm0
9840 ; AVX2-FCP-NEXT:    vinsertf128 $1, 160(%rcx), %ymm0, %ymm0
9841 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm1
9842 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm2
9843 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9844 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9845 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9846 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9847 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm2
9848 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9849 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rsi), %ymm1
9850 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9851 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9852 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9853 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9854 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9855 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9856 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9857 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
9858 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
9859 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm1
9860 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %xmm2
9861 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9862 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9863 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9864 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9865 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
9866 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9867 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rsi), %ymm1
9868 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9869 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9870 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9871 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9872 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9873 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9874 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9875 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %xmm0
9876 ; AVX2-FCP-NEXT:    vinsertf128 $1, 224(%rcx), %ymm0, %ymm0
9877 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm1
9878 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm2
9879 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9880 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9881 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9882 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9883 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm2
9884 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9885 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rsi), %ymm1
9886 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9887 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9888 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9889 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9890 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9891 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9892 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9893 ; AVX2-FCP-NEXT:    vmovaps 256(%rsi), %xmm0
9894 ; AVX2-FCP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
9895 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm1
9896 ; AVX2-FCP-NEXT:    vmovaps 256(%rdx), %xmm2
9897 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9898 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9899 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9900 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9901 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm2
9902 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9903 ; AVX2-FCP-NEXT:    vbroadcastsd 264(%rsi), %ymm1
9904 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9905 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9906 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9907 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9908 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9909 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9910 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9911 ; AVX2-FCP-NEXT:    vmovaps 288(%rsi), %xmm0
9912 ; AVX2-FCP-NEXT:    vinsertf128 $1, 288(%rcx), %ymm0, %ymm0
9913 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm1
9914 ; AVX2-FCP-NEXT:    vmovaps 288(%rdx), %xmm2
9915 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9916 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9917 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9918 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9919 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm2
9920 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9921 ; AVX2-FCP-NEXT:    vbroadcastsd 296(%rsi), %ymm1
9922 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9923 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9924 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9925 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9926 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9927 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9928 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9929 ; AVX2-FCP-NEXT:    vmovaps 320(%rsi), %xmm0
9930 ; AVX2-FCP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
9931 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm1
9932 ; AVX2-FCP-NEXT:    vmovaps 320(%rdx), %xmm2
9933 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9934 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9935 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9936 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9937 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
9938 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9939 ; AVX2-FCP-NEXT:    vbroadcastsd 328(%rsi), %ymm1
9940 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9941 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9942 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9943 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9944 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9945 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9946 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9947 ; AVX2-FCP-NEXT:    vmovaps 352(%rsi), %xmm0
9948 ; AVX2-FCP-NEXT:    vinsertf128 $1, 352(%rcx), %ymm0, %ymm0
9949 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm1
9950 ; AVX2-FCP-NEXT:    vmovaps 352(%rdx), %xmm2
9951 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9952 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9953 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9954 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9955 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm2
9956 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9957 ; AVX2-FCP-NEXT:    vbroadcastsd 360(%rsi), %ymm1
9958 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9959 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9960 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9961 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9962 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9964 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9965 ; AVX2-FCP-NEXT:    vmovaps 384(%rsi), %xmm0
9966 ; AVX2-FCP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
9967 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm1
9968 ; AVX2-FCP-NEXT:    vmovaps 384(%rdx), %xmm2
9969 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9970 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9971 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9972 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9973 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm2
9974 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9975 ; AVX2-FCP-NEXT:    vbroadcastsd 392(%rsi), %ymm1
9976 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9977 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9978 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9979 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9980 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9981 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
9982 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9983 ; AVX2-FCP-NEXT:    vmovaps 416(%rsi), %xmm0
9984 ; AVX2-FCP-NEXT:    vinsertf128 $1, 416(%rcx), %ymm0, %ymm0
9985 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm1
9986 ; AVX2-FCP-NEXT:    vmovaps 416(%rdx), %xmm2
9987 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
9988 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
9989 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9990 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
9991 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm2
9992 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9993 ; AVX2-FCP-NEXT:    vbroadcastsd 424(%rsi), %ymm1
9994 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
9995 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
9996 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9997 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
9998 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
9999 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10000 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10001 ; AVX2-FCP-NEXT:    vmovaps 448(%rsi), %xmm0
10002 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
10003 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm1
10004 ; AVX2-FCP-NEXT:    vmovaps 448(%rdx), %xmm2
10005 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
10006 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
10007 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10008 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
10009 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm2
10010 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10011 ; AVX2-FCP-NEXT:    vbroadcastsd 456(%rsi), %ymm1
10012 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
10013 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10014 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10015 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
10016 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
10017 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10018 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10019 ; AVX2-FCP-NEXT:    vmovaps 480(%rsi), %xmm0
10020 ; AVX2-FCP-NEXT:    vinsertf128 $1, 480(%rcx), %ymm0, %ymm0
10021 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm1
10022 ; AVX2-FCP-NEXT:    vmovaps 480(%rdx), %xmm2
10023 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
10024 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
10025 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10026 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm0
10027 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm2
10028 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10029 ; AVX2-FCP-NEXT:    vbroadcastsd 488(%rsi), %ymm1
10030 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
10031 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
10032 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10033 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
10034 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],mem[0],ymm2[2],mem[2]
10035 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10036 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10037 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rsi), %ymm0
10038 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10039 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
10040 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10041 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10042 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rsi), %ymm0
10043 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10044 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
10045 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10046 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
10047 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rsi), %ymm0
10048 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10049 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
10050 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10051 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10052 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rsi), %ymm0
10053 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10054 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
10055 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10056 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10057 ; AVX2-FCP-NEXT:    vbroadcastsd 312(%rsi), %ymm0
10058 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10059 ; AVX2-FCP-NEXT:    vbroadcastsd 312(%rcx), %ymm1
10060 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10061 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10062 ; AVX2-FCP-NEXT:    vbroadcastsd 376(%rsi), %ymm0
10063 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10064 ; AVX2-FCP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
10065 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10066 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10067 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%rsi), %ymm0
10068 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10069 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%rcx), %ymm1
10070 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10071 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10072 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%rsi), %ymm0
10073 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm0 = xmm0[0,1],mem[2,3]
10074 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%rcx), %ymm1
10075 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
10076 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10077 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm9
10078 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm1
10079 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm9[1],ymm1[1],ymm9[3],ymm1[3]
10080 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm2 = ymm2[0,2,3,3]
10081 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rsi), %ymm3
10082 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm2[2,3,4,5,6,7]
10083 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10084 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm13
10085 ; AVX2-FCP-NEXT:    vmovaps 64(%rcx), %ymm2
10086 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm3 = ymm13[1],ymm2[1],ymm13[3],ymm2[3]
10087 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
10088 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rsi), %ymm4
10089 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm3[2,3,4,5,6,7]
10090 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10091 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm3
10092 ; AVX2-FCP-NEXT:    vmovaps 128(%rcx), %ymm15
10093 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm4 = ymm3[1],ymm15[1],ymm3[3],ymm15[3]
10094 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm4 = ymm4[0,2,3,3]
10095 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rsi), %ymm5
10096 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm4[2,3,4,5,6,7]
10097 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10098 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm5
10099 ; AVX2-FCP-NEXT:    vmovaps 192(%rcx), %ymm4
10100 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm5[1],ymm4[1],ymm5[3],ymm4[3]
10101 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
10102 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rsi), %ymm7
10103 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm6[2,3,4,5,6,7]
10104 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10105 ; AVX2-FCP-NEXT:    vmovaps 256(%rdx), %ymm7
10106 ; AVX2-FCP-NEXT:    vmovaps 256(%rcx), %ymm6
10107 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm7[1],ymm6[1],ymm7[3],ymm6[3]
10108 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
10109 ; AVX2-FCP-NEXT:    vbroadcastsd 280(%rsi), %ymm10
10110 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm10[0,1],ymm8[2,3,4,5,6,7]
10111 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10112 ; AVX2-FCP-NEXT:    vmovaps 320(%rdx), %ymm10
10113 ; AVX2-FCP-NEXT:    vmovaps 320(%rcx), %ymm8
10114 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm11 = ymm10[1],ymm8[1],ymm10[3],ymm8[3]
10115 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm11 = ymm11[0,2,3,3]
10116 ; AVX2-FCP-NEXT:    vbroadcastsd 344(%rsi), %ymm12
10117 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm11[2,3,4,5,6,7]
10118 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10119 ; AVX2-FCP-NEXT:    vmovaps 384(%rdx), %ymm0
10120 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10121 ; AVX2-FCP-NEXT:    vmovaps 384(%rcx), %ymm11
10122 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm0[1],ymm11[1],ymm0[3],ymm11[3]
10123 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm14 = ymm14[0,2,3,3]
10124 ; AVX2-FCP-NEXT:    vbroadcastsd 408(%rsi), %ymm12
10125 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1],ymm14[2,3,4,5,6,7]
10126 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10127 ; AVX2-FCP-NEXT:    vmovaps 448(%rdx), %ymm12
10128 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10129 ; AVX2-FCP-NEXT:    vmovaps 448(%rcx), %ymm0
10130 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10131 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm12 = ymm12[1],ymm0[1],ymm12[3],ymm0[3]
10132 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm12 = ymm12[0,2,3,3]
10133 ; AVX2-FCP-NEXT:    vbroadcastsd 472(%rsi), %ymm14
10134 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm12[2,3,4,5,6,7]
10135 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10136 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
10137 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10138 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10139 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm1
10140 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
10141 ; AVX2-FCP-NEXT:    # ymm12 = ymm1[0,1],mem[2,3,4,5,6,7]
10142 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10143 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm12 # 32-byte Folded Reload
10144 ; AVX2-FCP-NEXT:    # ymm12 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10145 ; AVX2-FCP-NEXT:    vmovups %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10146 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
10147 ; AVX2-FCP-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
10148 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10149 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10150 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10151 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10152 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10153 ; AVX2-FCP-NEXT:    vbroadcastsd 48(%rcx), %ymm1
10154 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10155 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm1
10156 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
10157 ; AVX2-FCP-NEXT:    # ymm9 = ymm1[0,1],mem[2,3,4,5,6,7]
10158 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10159 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
10160 ; AVX2-FCP-NEXT:    # ymm9 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10161 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10162 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm9 # 32-byte Folded Reload
10163 ; AVX2-FCP-NEXT:    # ymm9 = mem[0,1,2,3,4,5],ymm1[6,7]
10164 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10165 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10166 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10167 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm13[0],ymm2[0],ymm13[2],ymm2[2]
10168 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10169 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10170 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm1
10171 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10172 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10173 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10174 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10175 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10176 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10177 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10178 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10179 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10180 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10181 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10182 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10183 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10184 ; AVX2-FCP-NEXT:    vbroadcastsd 112(%rcx), %ymm1
10185 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10186 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm1
10187 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10188 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10189 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10190 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10191 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10192 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10193 ; AVX2-FCP-NEXT:    vblendps $63, (%rsp), %ymm1, %ymm2 # 32-byte Folded Reload
10194 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10195 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10196 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10197 ; AVX2-FCP-NEXT:    vmovups %ymm0, (%rsp) # 32-byte Spill
10198 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm3[0],ymm15[0],ymm3[2],ymm15[2]
10199 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10200 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10201 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm1
10202 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10203 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10204 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10205 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10206 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10207 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10208 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10209 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10210 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10211 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10212 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10213 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10214 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10215 ; AVX2-FCP-NEXT:    vbroadcastsd 176(%rcx), %ymm1
10216 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10217 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm1
10218 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10219 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10220 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10221 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10222 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10223 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10224 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10225 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10226 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10227 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10228 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10229 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
10230 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10231 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10232 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm1
10233 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10234 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10235 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10236 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10237 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10238 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10239 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10240 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10241 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10242 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10243 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10244 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10245 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10246 ; AVX2-FCP-NEXT:    vbroadcastsd 240(%rcx), %ymm1
10247 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10248 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm1
10249 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10250 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10251 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10252 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10253 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10254 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10255 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10256 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10257 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10258 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10259 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10260 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm7[0],ymm6[0],ymm7[2],ymm6[2]
10261 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10262 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10263 ; AVX2-FCP-NEXT:    vmovaps 256(%r8), %ymm1
10264 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10265 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10266 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10267 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10268 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10269 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10270 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10271 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10272 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10273 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10274 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10275 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10276 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10277 ; AVX2-FCP-NEXT:    vbroadcastsd 304(%rcx), %ymm1
10278 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10279 ; AVX2-FCP-NEXT:    vmovaps 288(%r8), %ymm1
10280 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10281 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10282 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10283 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10284 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10285 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10286 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10287 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10288 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10289 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10290 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10291 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm10[0],ymm8[0],ymm10[2],ymm8[2]
10292 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10293 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10294 ; AVX2-FCP-NEXT:    vmovaps 320(%r8), %ymm1
10295 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10296 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10297 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10298 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10299 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10300 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10301 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10302 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10303 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10304 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10305 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10306 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10307 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = mem[2,3],ymm0[2,3]
10308 ; AVX2-FCP-NEXT:    vbroadcastsd 368(%rcx), %ymm1
10309 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5,6,7]
10310 ; AVX2-FCP-NEXT:    vmovaps 352(%r8), %ymm1
10311 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10312 ; AVX2-FCP-NEXT:    # ymm2 = ymm1[0,1],mem[2,3,4,5,6,7]
10313 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10314 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm15 # 32-byte Folded Reload
10315 ; AVX2-FCP-NEXT:    # ymm15 = mem[0,1],ymm1[2,3],mem[4,5,6,7]
10316 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm1, %ymm2 # 32-byte Folded Reload
10317 ; AVX2-FCP-NEXT:    # ymm2 = mem[0,1,2,3,4,5],ymm1[6,7]
10318 ; AVX2-FCP-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10319 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
10320 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10321 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm11[0],ymm0[2],ymm11[2]
10322 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
10323 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[2,3],mem[2,3]
10324 ; AVX2-FCP-NEXT:    vmovaps 384(%r8), %ymm11
10325 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm13 # 32-byte Folded Reload
10326 ; AVX2-FCP-NEXT:    # ymm13 = ymm11[0,1],mem[2,3,4,5,6,7]
10327 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm10 # 32-byte Folded Reload
10328 ; AVX2-FCP-NEXT:    # ymm10 = mem[0,1],ymm11[2,3],mem[4,5,6,7]
10329 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm1 # 32-byte Folded Reload
10330 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm11[6,7]
10331 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10332 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm0[0,1,2,3],ymm11[4,5],ymm0[6,7]
10333 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10334 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
10335 ; AVX2-FCP-NEXT:    vbroadcastsd 432(%rcx), %ymm12
10336 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
10337 ; AVX2-FCP-NEXT:    vmovaps 416(%r8), %ymm12
10338 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm8 # 32-byte Folded Reload
10339 ; AVX2-FCP-NEXT:    # ymm8 = ymm12[0,1],mem[2,3,4,5,6,7]
10340 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm7 # 32-byte Folded Reload
10341 ; AVX2-FCP-NEXT:    # ymm7 = mem[0,1],ymm12[2,3],mem[4,5,6,7]
10342 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm0 # 32-byte Folded Reload
10343 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1,2,3,4,5],ymm12[6,7]
10344 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10345 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2,3],ymm12[4,5],ymm11[6,7]
10346 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10347 ; AVX2-FCP-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
10348 ; AVX2-FCP-NEXT:    # ymm11 = ymm0[0],mem[0],ymm0[2],mem[2]
10349 ; AVX2-FCP-NEXT:    vperm2f128 $49, {{[-0-9]+}}(%r{{[sb]}}p), %ymm11, %ymm11 # 32-byte Folded Reload
10350 ; AVX2-FCP-NEXT:    # ymm11 = ymm11[2,3],mem[2,3]
10351 ; AVX2-FCP-NEXT:    vmovaps 448(%r8), %ymm0
10352 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm5 # 32-byte Folded Reload
10353 ; AVX2-FCP-NEXT:    # ymm5 = ymm0[0,1],mem[2,3,4,5,6,7]
10354 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm4 # 32-byte Folded Reload
10355 ; AVX2-FCP-NEXT:    # ymm4 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
10356 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
10357 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1,2,3,4,5],ymm0[6,7]
10358 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10359 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm11[0,1,2,3],ymm0[4,5],ymm11[6,7]
10360 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10361 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm11 = mem[2,3],ymm0[2,3]
10362 ; AVX2-FCP-NEXT:    vbroadcastsd 496(%rcx), %ymm12
10363 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm12[2,3],ymm11[4,5,6,7]
10364 ; AVX2-FCP-NEXT:    vmovaps 480(%r8), %ymm0
10365 ; AVX2-FCP-NEXT:    vblendps $252, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
10366 ; AVX2-FCP-NEXT:    # ymm2 = ymm0[0,1],mem[2,3,4,5,6,7]
10367 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
10368 ; AVX2-FCP-NEXT:    # ymm1 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
10369 ; AVX2-FCP-NEXT:    vblendps $63, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
10370 ; AVX2-FCP-NEXT:    # ymm11 = mem[0,1,2,3,4,5],ymm0[6,7]
10371 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm12[0,1,2,3],ymm0[4,5],ymm12[6,7]
10372 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2496(%r9)
10373 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 2464(%r9)
10374 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 2432(%r9)
10375 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10376 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2400(%r9)
10377 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 2336(%r9)
10378 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 2304(%r9)
10379 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 2272(%r9)
10380 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10381 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2240(%r9)
10382 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 2176(%r9)
10383 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 2144(%r9)
10384 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 2112(%r9)
10385 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10386 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2080(%r9)
10387 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 2016(%r9)
10388 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 1984(%r9)
10389 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 1952(%r9)
10390 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10391 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1920(%r9)
10392 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 1856(%r9)
10393 ; AVX2-FCP-NEXT:    vmovaps %ymm15, 1824(%r9)
10394 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10395 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1792(%r9)
10396 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10397 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1760(%r9)
10398 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10399 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%r9)
10400 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10401 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1664(%r9)
10402 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10403 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1632(%r9)
10404 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10405 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1600(%r9)
10406 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10407 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1536(%r9)
10408 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10409 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%r9)
10410 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10411 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%r9)
10412 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10413 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%r9)
10414 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10415 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1376(%r9)
10416 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10417 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%r9)
10418 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10419 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1312(%r9)
10420 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10421 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%r9)
10422 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10423 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%r9)
10424 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10425 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%r9)
10426 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10427 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%r9)
10428 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10429 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1120(%r9)
10430 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10431 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%r9)
10432 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10433 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%r9)
10434 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10435 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%r9)
10436 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10437 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%r9)
10438 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10439 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%r9)
10440 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10441 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 864(%r9)
10442 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10443 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%r9)
10444 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10445 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%r9)
10446 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10447 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%r9)
10448 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10449 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%r9)
10450 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10451 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 672(%r9)
10452 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10453 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%r9)
10454 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
10455 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%r9)
10456 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10457 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%r9)
10458 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10459 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%r9)
10460 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10461 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%r9)
10462 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10463 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%r9)
10464 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10465 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%r9)
10466 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10467 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%r9)
10468 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10469 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%r9)
10470 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10471 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%r9)
10472 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10473 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%r9)
10474 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10475 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%r9)
10476 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10477 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%r9)
10478 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10479 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%r9)
10480 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10481 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%r9)
10482 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10483 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%r9)
10484 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10485 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%r9)
10486 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10487 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2368(%r9)
10488 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10489 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2048(%r9)
10490 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10491 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1728(%r9)
10492 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10493 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%r9)
10494 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10495 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1088(%r9)
10496 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10497 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%r9)
10498 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10499 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%r9)
10500 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10501 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%r9)
10502 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 2528(%r9)
10503 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10504 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2208(%r9)
10505 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10506 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1888(%r9)
10507 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10508 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1568(%r9)
10509 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10510 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%r9)
10511 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10512 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%r9)
10513 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10514 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%r9)
10515 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10516 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%r9)
10517 ; AVX2-FCP-NEXT:    addq $2696, %rsp # imm = 0xA88
10518 ; AVX2-FCP-NEXT:    vzeroupper
10519 ; AVX2-FCP-NEXT:    retq
10521 ; AVX512-LABEL: store_i64_stride5_vf64:
10522 ; AVX512:       # %bb.0:
10523 ; AVX512-NEXT:    subq $3144, %rsp # imm = 0xC48
10524 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm6
10525 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm7
10526 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm11
10527 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm10
10528 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm9
10529 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm8
10530 ; AVX512-NEXT:    vmovdqa64 256(%rsi), %zmm1
10531 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm5
10532 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm4
10533 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm3
10534 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm2
10535 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
10536 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm12
10537 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
10538 ; AVX512-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
10539 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm12
10540 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
10541 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10542 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm12
10543 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
10544 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10545 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm12
10546 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
10547 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10548 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm12
10549 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
10550 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10551 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
10552 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
10553 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
10554 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10555 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
10556 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
10557 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
10558 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10559 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
10560 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
10561 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
10562 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10563 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
10564 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10565 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
10566 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10567 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm5
10568 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
10569 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10570 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm5
10571 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
10572 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10573 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm5
10574 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
10575 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10576 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
10577 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10578 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm4
10579 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
10580 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10581 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm4
10582 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
10583 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10584 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm4
10585 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
10586 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10587 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
10588 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10589 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm3
10590 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
10591 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10592 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm3
10593 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
10594 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10595 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm3
10596 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
10597 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10598 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
10599 ; AVX512-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10600 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm2
10601 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
10602 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10603 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm2
10604 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
10605 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10606 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm2
10607 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
10608 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10609 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
10610 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10611 ; AVX512-NEXT:    vmovdqa64 320(%rsi), %zmm1
10612 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
10613 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
10614 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10615 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm2
10616 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
10617 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10618 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm2
10619 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
10620 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10621 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm2
10622 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
10623 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10624 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
10625 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10626 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm3
10627 ; AVX512-NEXT:    vmovdqa64 384(%rsi), %zmm1
10628 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
10629 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
10630 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10631 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2
10632 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
10633 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10634 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2
10635 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
10636 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10637 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2
10638 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
10639 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10640 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
10641 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10642 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm2
10643 ; AVX512-NEXT:    vmovdqa64 448(%rsi), %zmm1
10644 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
10645 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
10646 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
10647 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10648 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
10649 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10650 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
10651 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10652 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm25
10653 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm0
10654 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
10655 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm3
10656 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
10657 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
10658 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm22
10659 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
10660 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
10661 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27
10662 ; AVX512-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
10663 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
10664 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10665 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm28
10666 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
10667 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
10668 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
10669 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm26
10670 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm0
10671 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm4
10672 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
10673 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm17
10674 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
10675 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
10676 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
10677 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10678 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm1
10679 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
10680 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10681 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
10682 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm14
10683 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm0
10684 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm15
10685 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
10686 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm9
10687 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
10688 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
10689 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
10690 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10691 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm1
10692 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
10693 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10694 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
10695 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm19
10696 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
10697 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm31
10698 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
10699 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm30
10700 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
10701 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
10702 ; AVX512-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
10703 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10704 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm1
10705 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
10706 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10707 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
10708 ; AVX512-NEXT:    vmovdqa64 256(%rdx), %zmm18
10709 ; AVX512-NEXT:    vmovdqa64 256(%rcx), %zmm0
10710 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm29
10711 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
10712 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm24
10713 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
10714 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
10715 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
10716 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10717 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm1
10718 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
10719 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10720 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
10721 ; AVX512-NEXT:    vmovdqa64 320(%rdx), %zmm7
10722 ; AVX512-NEXT:    vmovdqa64 320(%rcx), %zmm0
10723 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm23
10724 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
10725 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
10726 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
10727 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5
10728 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
10729 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10730 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm5
10731 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
10732 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10733 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
10734 ; AVX512-NEXT:    vmovdqa64 384(%rdx), %zmm11
10735 ; AVX512-NEXT:    vmovdqa64 384(%rcx), %zmm0
10736 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm13
10737 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
10738 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm8
10739 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
10740 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5
10741 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
10742 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10743 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm5
10744 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
10745 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10746 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
10747 ; AVX512-NEXT:    vmovdqa64 448(%rdx), %zmm5
10748 ; AVX512-NEXT:    vmovdqa64 448(%rcx), %zmm0
10749 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
10750 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
10751 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
10752 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
10753 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
10754 ; AVX512-NEXT:    movb $49, %al
10755 ; AVX512-NEXT:    kmovw %eax, %k1
10756 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
10757 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
10758 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10759 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
10760 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10761 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
10762 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10763 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10764 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
10765 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10766 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
10767 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10768 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
10769 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10770 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
10771 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
10772 ; AVX512-NEXT:    movb $-116, %al
10773 ; AVX512-NEXT:    kmovw %eax, %k3
10774 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10775 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
10776 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10777 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
10778 ; AVX512-NEXT:    movb $24, %al
10779 ; AVX512-NEXT:    kmovw %eax, %k2
10780 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10781 ; AVX512-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
10782 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10783 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
10784 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10785 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
10786 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10787 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
10788 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10789 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
10790 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10791 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
10792 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10793 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
10794 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10795 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
10796 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10797 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
10798 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10799 ; AVX512-NEXT:    movb $8, %al
10800 ; AVX512-NEXT:    kmovw %eax, %k3
10801 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm2
10802 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
10803 ; AVX512-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
10804 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
10805 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
10806 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10807 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
10808 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
10809 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10810 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
10811 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
10812 ; AVX512-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10813 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
10814 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
10815 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10816 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10817 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
10818 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10819 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10820 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
10821 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10822 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
10823 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm2
10824 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
10825 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10826 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
10827 ; AVX512-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10828 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
10829 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10830 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
10831 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10832 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
10833 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10834 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10835 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
10836 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10837 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10838 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
10839 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10840 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
10841 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm2
10842 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
10843 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
10844 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
10845 ; AVX512-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10846 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
10847 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10848 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
10849 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10850 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
10851 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10852 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10853 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
10854 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10855 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10856 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
10857 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10858 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
10859 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm2
10860 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
10861 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
10862 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10863 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
10864 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10865 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
10866 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10867 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
10868 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
10869 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10870 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
10871 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
10872 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10873 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
10874 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10875 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
10876 ; AVX512-NEXT:    vmovdqa64 256(%r8), %zmm2
10877 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
10878 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm3
10879 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
10880 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
10881 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
10882 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
10883 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
10884 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10885 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
10886 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10887 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10888 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
10889 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10890 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
10891 ; AVX512-NEXT:    vmovdqa64 320(%r8), %zmm2
10892 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
10893 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
10894 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
10895 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
10896 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
10897 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
10898 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10899 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10900 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
10901 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10902 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10903 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
10904 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10905 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
10906 ; AVX512-NEXT:    vmovdqa64 384(%r8), %zmm2
10907 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
10908 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
10909 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
10910 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
10911 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
10912 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
10913 ; AVX512-NEXT:    vmovdqa64 448(%r8), %zmm2
10914 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10915 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
10916 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10917 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
10918 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
10919 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10920 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
10921 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
10922 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10923 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
10924 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
10925 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
10926 ; AVX512-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
10927 ; AVX512-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
10928 ; AVX512-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
10929 ; AVX512-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
10930 ; AVX512-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
10931 ; AVX512-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
10932 ; AVX512-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
10933 ; AVX512-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
10934 ; AVX512-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
10935 ; AVX512-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
10936 ; AVX512-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
10937 ; AVX512-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
10938 ; AVX512-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
10939 ; AVX512-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
10940 ; AVX512-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
10941 ; AVX512-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
10942 ; AVX512-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
10943 ; AVX512-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
10944 ; AVX512-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
10945 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
10946 ; AVX512-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
10947 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10948 ; AVX512-NEXT:    vmovaps %zmm0, 1152(%r9)
10949 ; AVX512-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
10950 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10951 ; AVX512-NEXT:    vmovaps %zmm0, 1024(%r9)
10952 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10953 ; AVX512-NEXT:    vmovaps %zmm0, 960(%r9)
10954 ; AVX512-NEXT:    vmovdqa64 %zmm14, 896(%r9)
10955 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10956 ; AVX512-NEXT:    vmovaps %zmm0, 832(%r9)
10957 ; AVX512-NEXT:    vmovdqa64 %zmm30, 768(%r9)
10958 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10959 ; AVX512-NEXT:    vmovaps %zmm0, 704(%r9)
10960 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10961 ; AVX512-NEXT:    vmovaps %zmm0, 640(%r9)
10962 ; AVX512-NEXT:    vmovdqa64 %zmm26, 576(%r9)
10963 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10964 ; AVX512-NEXT:    vmovaps %zmm0, 512(%r9)
10965 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10966 ; AVX512-NEXT:    vmovaps %zmm0, 448(%r9)
10967 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10968 ; AVX512-NEXT:    vmovaps %zmm0, 384(%r9)
10969 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10970 ; AVX512-NEXT:    vmovaps %zmm0, 320(%r9)
10971 ; AVX512-NEXT:    vmovdqa64 %zmm25, 256(%r9)
10972 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10973 ; AVX512-NEXT:    vmovaps %zmm0, 192(%r9)
10974 ; AVX512-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
10975 ; AVX512-NEXT:    vmovaps %zmm0, 128(%r9)
10976 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10977 ; AVX512-NEXT:    vmovaps %zmm0, 64(%r9)
10978 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10979 ; AVX512-NEXT:    vmovaps %zmm0, (%r9)
10980 ; AVX512-NEXT:    addq $3144, %rsp # imm = 0xC48
10981 ; AVX512-NEXT:    vzeroupper
10982 ; AVX512-NEXT:    retq
10984 ; AVX512-FCP-LABEL: store_i64_stride5_vf64:
10985 ; AVX512-FCP:       # %bb.0:
10986 ; AVX512-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
10987 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm6
10988 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm7
10989 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm11
10990 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm10
10991 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm9
10992 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm8
10993 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm1
10994 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
10995 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm4
10996 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm3
10997 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm2
10998 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
10999 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
11000 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
11001 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
11002 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
11003 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
11004 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11005 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
11006 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
11007 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11008 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
11009 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
11010 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11011 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
11012 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
11013 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11014 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
11015 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11016 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
11017 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11018 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
11019 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11020 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
11021 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11022 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
11023 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11024 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
11025 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11026 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
11027 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11028 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
11029 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11030 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11031 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
11032 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11033 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11034 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
11035 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11036 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11037 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
11038 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11039 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
11040 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11041 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11042 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
11043 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11044 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11045 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
11046 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11047 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11048 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
11049 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11050 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
11051 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11052 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11053 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
11054 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11055 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11056 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
11057 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11058 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11059 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
11060 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11061 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
11062 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11063 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11064 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11065 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11066 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11067 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11068 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11069 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11070 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11071 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11072 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
11073 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11074 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm1
11075 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
11076 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
11077 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11078 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
11079 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11080 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11081 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
11082 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11083 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11084 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
11085 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11086 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11087 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
11088 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11089 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm3
11090 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm1
11091 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
11092 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
11093 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11094 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
11095 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11096 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11097 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
11098 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11099 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11100 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
11101 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11102 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11103 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
11104 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11105 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm2
11106 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm1
11107 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
11108 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
11109 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
11110 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11111 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
11112 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11113 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
11114 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11115 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm25
11116 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
11117 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
11118 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm3
11119 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
11120 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
11121 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm22
11122 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
11123 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
11124 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
11125 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
11126 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
11127 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11128 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm28
11129 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
11130 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
11131 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
11132 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm26
11133 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
11134 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
11135 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
11136 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
11137 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
11138 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11139 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
11140 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11141 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm1
11142 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11143 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11144 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
11145 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm14
11146 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
11147 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15
11148 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
11149 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm9
11150 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
11151 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11152 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
11153 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11154 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
11155 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11156 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11157 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
11158 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm19
11159 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
11160 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm31
11161 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
11162 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm30
11163 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
11164 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11165 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
11166 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11167 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm1
11168 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11169 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11170 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
11171 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm18
11172 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm0
11173 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm29
11174 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
11175 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm24
11176 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
11177 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11178 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
11179 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11180 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm1
11181 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11182 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11183 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
11184 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm7
11185 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm0
11186 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm23
11187 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
11188 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
11189 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
11190 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
11191 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
11192 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11193 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
11194 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
11195 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11196 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
11197 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm11
11198 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm0
11199 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
11200 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
11201 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm8
11202 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
11203 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
11204 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
11205 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11206 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm5
11207 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
11208 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11209 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
11210 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm5
11211 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
11212 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
11213 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
11214 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
11215 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
11216 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
11217 ; AVX512-FCP-NEXT:    movb $49, %al
11218 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
11219 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
11220 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11221 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11222 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
11223 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11224 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
11225 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11226 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11227 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
11228 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11229 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
11230 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11231 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
11232 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11233 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
11234 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
11235 ; AVX512-FCP-NEXT:    movb $-116, %al
11236 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
11237 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
11238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
11239 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11240 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
11241 ; AVX512-FCP-NEXT:    movb $24, %al
11242 ; AVX512-FCP-NEXT:    kmovw %eax, %k2
11243 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11244 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
11245 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11246 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
11247 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11248 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
11249 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
11250 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
11251 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11252 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
11253 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11254 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
11255 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
11256 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
11257 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11258 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
11259 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11260 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
11261 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11262 ; AVX512-FCP-NEXT:    movb $8, %al
11263 ; AVX512-FCP-NEXT:    kmovw %eax, %k3
11264 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
11265 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11266 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
11267 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
11268 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
11269 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11270 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
11271 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
11272 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11273 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
11274 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
11275 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11276 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
11277 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
11278 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11279 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11280 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
11281 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11282 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11283 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
11284 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11285 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
11286 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm2
11287 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
11288 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11289 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
11290 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11291 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
11292 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11293 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
11294 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11295 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
11296 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11297 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11298 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11299 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11300 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11301 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
11302 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11303 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
11304 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
11305 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
11306 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
11307 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
11308 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11309 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
11310 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11311 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
11312 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11313 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
11314 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11315 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11316 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11317 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11318 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11319 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
11320 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11321 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
11322 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
11323 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
11324 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
11325 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11326 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
11327 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11328 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
11329 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11330 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
11331 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11332 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11333 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
11334 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11335 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11336 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
11337 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11338 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
11339 ; AVX512-FCP-NEXT:    vmovdqa64 256(%r8), %zmm2
11340 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
11341 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
11342 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
11343 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
11344 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
11345 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
11346 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11347 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11348 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
11349 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
11350 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11351 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
11352 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11353 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
11354 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r8), %zmm2
11355 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
11356 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
11357 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
11358 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
11359 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
11360 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
11361 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11362 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11363 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
11364 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11365 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11366 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
11367 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11368 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
11369 ; AVX512-FCP-NEXT:    vmovdqa64 384(%r8), %zmm2
11370 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
11371 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
11372 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
11373 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
11374 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
11375 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
11376 ; AVX512-FCP-NEXT:    vmovdqa64 448(%r8), %zmm2
11377 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
11378 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
11379 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11380 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
11381 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
11382 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11383 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
11384 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
11385 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11386 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
11387 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
11388 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
11389 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
11390 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
11391 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
11392 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
11393 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
11394 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
11395 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
11396 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
11397 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
11398 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
11399 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
11400 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
11401 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
11402 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
11403 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
11404 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
11405 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
11406 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
11407 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
11408 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
11409 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
11410 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11411 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1152(%r9)
11412 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
11413 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11414 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1024(%r9)
11415 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11416 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 960(%r9)
11417 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 896(%r9)
11418 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11419 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 832(%r9)
11420 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 768(%r9)
11421 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11422 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 704(%r9)
11423 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11424 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 640(%r9)
11425 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 576(%r9)
11426 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11427 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 512(%r9)
11428 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11429 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 448(%r9)
11430 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11431 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 384(%r9)
11432 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11433 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 320(%r9)
11434 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 256(%r9)
11435 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11436 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 192(%r9)
11437 ; AVX512-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
11438 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 128(%r9)
11439 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11440 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 64(%r9)
11441 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11442 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%r9)
11443 ; AVX512-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
11444 ; AVX512-FCP-NEXT:    vzeroupper
11445 ; AVX512-FCP-NEXT:    retq
11447 ; AVX512DQ-LABEL: store_i64_stride5_vf64:
11448 ; AVX512DQ:       # %bb.0:
11449 ; AVX512DQ-NEXT:    subq $3144, %rsp # imm = 0xC48
11450 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm6
11451 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm7
11452 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm11
11453 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm10
11454 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm9
11455 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm8
11456 ; AVX512DQ-NEXT:    vmovdqa64 256(%rsi), %zmm1
11457 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm5
11458 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm4
11459 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm3
11460 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm2
11461 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
11462 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm12
11463 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
11464 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
11465 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm12
11466 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
11467 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11468 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm12
11469 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
11470 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11471 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
11472 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
11473 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11474 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm12
11475 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
11476 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11477 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
11478 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm0
11479 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
11480 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11481 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
11482 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm0
11483 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
11484 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11485 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
11486 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm0
11487 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
11488 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11489 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
11490 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11491 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
11492 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11493 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm5
11494 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
11495 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11496 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm5
11497 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
11498 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11499 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm5
11500 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
11501 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11502 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
11503 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11504 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm4
11505 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
11506 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11507 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm4
11508 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
11509 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11510 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm4
11511 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
11512 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11513 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
11514 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11515 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
11516 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
11517 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11518 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
11519 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
11520 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11521 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
11522 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
11523 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11524 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
11525 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11526 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2
11527 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11528 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11529 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2
11530 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11531 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11532 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2
11533 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11534 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11535 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
11536 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11537 ; AVX512DQ-NEXT:    vmovdqa64 320(%rsi), %zmm1
11538 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
11539 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
11540 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11541 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm2
11542 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11543 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11544 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm2
11545 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11546 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11547 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm2
11548 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11549 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11550 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
11551 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11552 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm3
11553 ; AVX512DQ-NEXT:    vmovdqa64 384(%rsi), %zmm1
11554 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
11555 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
11556 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11557 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm2
11558 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11559 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11560 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm2
11561 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11562 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11563 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm2
11564 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11565 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11566 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
11567 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11568 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm2
11569 ; AVX512DQ-NEXT:    vmovdqa64 448(%rsi), %zmm1
11570 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
11571 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
11572 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
11573 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11574 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
11575 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11576 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
11577 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11578 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm25
11579 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm0
11580 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
11581 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm3
11582 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
11583 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
11584 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm22
11585 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
11586 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
11587 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm27
11588 ; AVX512DQ-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
11589 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
11590 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11591 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm28
11592 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
11593 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
11594 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
11595 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm26
11596 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm0
11597 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm4
11598 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
11599 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm17
11600 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
11601 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
11602 ; AVX512DQ-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
11603 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11604 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm1
11605 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11606 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11607 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
11608 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm14
11609 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm0
11610 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm15
11611 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
11612 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm9
11613 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
11614 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
11615 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
11616 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11617 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
11618 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11619 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11620 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
11621 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm19
11622 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm0
11623 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm31
11624 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
11625 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm30
11626 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
11627 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
11628 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
11629 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11630 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm1
11631 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11632 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11633 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
11634 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdx), %zmm18
11635 ; AVX512DQ-NEXT:    vmovdqa64 256(%rcx), %zmm0
11636 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm29
11637 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
11638 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm24
11639 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
11640 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
11641 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
11642 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11643 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm1
11644 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
11645 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11646 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
11647 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdx), %zmm7
11648 ; AVX512DQ-NEXT:    vmovdqa64 320(%rcx), %zmm0
11649 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm23
11650 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
11651 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm1
11652 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
11653 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
11654 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
11655 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11656 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm5
11657 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
11658 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11659 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
11660 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdx), %zmm11
11661 ; AVX512DQ-NEXT:    vmovdqa64 384(%rcx), %zmm0
11662 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm13
11663 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
11664 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm8
11665 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
11666 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
11667 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
11668 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11669 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm5
11670 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
11671 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11672 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
11673 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdx), %zmm5
11674 ; AVX512DQ-NEXT:    vmovdqa64 448(%rcx), %zmm0
11675 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
11676 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
11677 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
11678 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
11679 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
11680 ; AVX512DQ-NEXT:    movb $49, %al
11681 ; AVX512DQ-NEXT:    kmovw %eax, %k1
11682 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
11683 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11684 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11685 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
11686 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11687 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
11688 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11689 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11690 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
11691 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11692 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
11693 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11694 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
11695 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11696 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
11697 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
11698 ; AVX512DQ-NEXT:    movb $-116, %al
11699 ; AVX512DQ-NEXT:    kmovw %eax, %k3
11700 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
11701 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
11702 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11703 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
11704 ; AVX512DQ-NEXT:    movb $24, %al
11705 ; AVX512DQ-NEXT:    kmovw %eax, %k2
11706 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11707 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
11708 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
11709 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
11710 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11711 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
11712 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
11713 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
11714 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11715 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
11716 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11717 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
11718 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
11719 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
11720 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11721 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
11722 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11723 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
11724 ; AVX512DQ-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11725 ; AVX512DQ-NEXT:    movb $8, %al
11726 ; AVX512DQ-NEXT:    kmovw %eax, %k3
11727 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm2
11728 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11729 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
11730 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
11731 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
11732 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11733 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
11734 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
11735 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11736 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
11737 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
11738 ; AVX512DQ-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11739 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
11740 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
11741 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11742 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11743 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
11744 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11745 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11746 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
11747 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11748 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
11749 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm2
11750 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
11751 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11752 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
11753 ; AVX512DQ-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11754 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
11755 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11756 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
11757 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11758 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
11759 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11760 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11761 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11762 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11763 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11764 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
11765 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11766 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
11767 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm2
11768 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
11769 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
11770 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
11771 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11772 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
11773 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11774 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
11775 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11776 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
11777 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11778 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11779 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
11780 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11781 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11782 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
11783 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11784 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
11785 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm2
11786 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
11787 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
11788 ; AVX512DQ-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11789 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
11790 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11791 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
11792 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11793 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
11794 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
11795 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11796 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
11797 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11798 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11799 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
11800 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
11801 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
11802 ; AVX512DQ-NEXT:    vmovdqa64 256(%r8), %zmm2
11803 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
11804 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm3
11805 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
11806 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
11807 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
11808 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
11809 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
11810 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11811 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
11812 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
11813 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11814 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
11815 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11816 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
11817 ; AVX512DQ-NEXT:    vmovdqa64 320(%r8), %zmm2
11818 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
11819 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm1
11820 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
11821 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
11822 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
11823 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
11824 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11825 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11826 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
11827 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11828 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11829 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
11830 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11831 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
11832 ; AVX512DQ-NEXT:    vmovdqa64 384(%r8), %zmm2
11833 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
11834 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
11835 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
11836 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
11837 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
11838 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
11839 ; AVX512DQ-NEXT:    vmovdqa64 448(%r8), %zmm2
11840 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
11841 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
11842 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
11843 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
11844 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
11845 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
11846 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
11847 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
11848 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11849 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
11850 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
11851 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
11852 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
11853 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
11854 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
11855 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
11856 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
11857 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
11858 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
11859 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
11860 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
11861 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
11862 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
11863 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
11864 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
11865 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
11866 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
11867 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
11868 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
11869 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
11870 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
11871 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
11872 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
11873 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11874 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1152(%r9)
11875 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
11876 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11877 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1024(%r9)
11878 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11879 ; AVX512DQ-NEXT:    vmovaps %zmm0, 960(%r9)
11880 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 896(%r9)
11881 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11882 ; AVX512DQ-NEXT:    vmovaps %zmm0, 832(%r9)
11883 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, 768(%r9)
11884 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11885 ; AVX512DQ-NEXT:    vmovaps %zmm0, 704(%r9)
11886 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11887 ; AVX512DQ-NEXT:    vmovaps %zmm0, 640(%r9)
11888 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 576(%r9)
11889 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11890 ; AVX512DQ-NEXT:    vmovaps %zmm0, 512(%r9)
11891 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11892 ; AVX512DQ-NEXT:    vmovaps %zmm0, 448(%r9)
11893 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11894 ; AVX512DQ-NEXT:    vmovaps %zmm0, 384(%r9)
11895 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11896 ; AVX512DQ-NEXT:    vmovaps %zmm0, 320(%r9)
11897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 256(%r9)
11898 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11899 ; AVX512DQ-NEXT:    vmovaps %zmm0, 192(%r9)
11900 ; AVX512DQ-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
11901 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%r9)
11902 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11903 ; AVX512DQ-NEXT:    vmovaps %zmm0, 64(%r9)
11904 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11905 ; AVX512DQ-NEXT:    vmovaps %zmm0, (%r9)
11906 ; AVX512DQ-NEXT:    addq $3144, %rsp # imm = 0xC48
11907 ; AVX512DQ-NEXT:    vzeroupper
11908 ; AVX512DQ-NEXT:    retq
11910 ; AVX512DQ-FCP-LABEL: store_i64_stride5_vf64:
11911 ; AVX512DQ-FCP:       # %bb.0:
11912 ; AVX512DQ-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
11913 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm6
11914 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm7
11915 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm11
11916 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm10
11917 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm9
11918 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm8
11919 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm1
11920 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
11921 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm4
11922 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm3
11923 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm2
11924 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
11925 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
11926 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
11927 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
11928 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
11929 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
11930 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11931 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
11932 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
11933 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11934 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
11935 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
11936 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11937 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
11938 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
11939 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11940 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
11941 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11942 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
11943 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11944 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
11945 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11946 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
11947 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11948 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
11949 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
11950 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
11951 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11952 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
11953 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11954 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
11955 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11956 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11957 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
11958 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11959 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11960 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
11961 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11962 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
11963 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
11964 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11965 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
11966 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11967 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11968 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
11969 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11970 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11971 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
11972 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11973 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11974 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
11975 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11976 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
11977 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11978 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11979 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
11980 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11981 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11982 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
11983 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11984 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11985 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
11986 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11987 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
11988 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11989 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11990 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
11991 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11992 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11993 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
11994 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11995 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
11996 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
11997 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11998 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
11999 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12000 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm1
12001 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
12002 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
12003 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12004 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12005 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12006 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12007 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12008 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12009 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12010 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12011 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12012 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12013 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
12014 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12015 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm3
12016 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm1
12017 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
12018 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
12019 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12020 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12021 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12022 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12023 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12024 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12025 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12026 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12027 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12028 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12029 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
12030 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12031 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm2
12032 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm1
12033 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
12034 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
12035 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
12036 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12037 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
12038 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12039 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
12040 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12041 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm25
12042 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
12043 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
12044 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm3
12045 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
12046 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
12047 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm22
12048 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
12049 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
12050 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
12051 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
12052 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
12053 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12054 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, %zmm28
12055 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
12056 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
12057 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
12058 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm26
12059 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
12060 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
12061 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
12062 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
12063 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
12064 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
12065 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
12066 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12067 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm1
12068 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12069 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12070 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
12071 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm14
12072 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
12073 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15
12074 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
12075 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm9
12076 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
12077 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
12078 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
12079 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12080 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
12081 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12082 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12083 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
12084 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm19
12085 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
12086 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm31
12087 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
12088 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm30
12089 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
12090 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
12091 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
12092 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12093 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm1
12094 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12095 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12096 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
12097 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm18
12098 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm0
12099 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm29
12100 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
12101 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm24
12102 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
12103 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
12104 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
12105 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12106 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm1
12107 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12108 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12109 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
12110 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm7
12111 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm0
12112 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm23
12113 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
12114 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
12115 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
12116 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
12117 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
12118 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12119 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
12120 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
12121 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12122 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
12123 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm11
12124 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm0
12125 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
12126 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
12127 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm8
12128 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
12129 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
12130 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
12131 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12132 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm5
12133 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
12134 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12135 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
12136 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm5
12137 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
12138 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
12139 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
12140 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
12141 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
12142 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
12143 ; AVX512DQ-FCP-NEXT:    movb $49, %al
12144 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
12145 ; AVX512DQ-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
12146 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12147 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12148 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
12149 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12150 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
12151 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12152 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12153 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
12154 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12155 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
12156 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12157 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
12158 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12159 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
12160 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
12161 ; AVX512DQ-FCP-NEXT:    movb $-116, %al
12162 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
12163 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
12164 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
12165 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12166 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
12167 ; AVX512DQ-FCP-NEXT:    movb $24, %al
12168 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k2
12169 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12170 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
12171 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
12172 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
12173 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12174 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
12175 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
12176 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
12177 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12178 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
12179 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12180 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
12181 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12182 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
12183 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12184 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
12185 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12186 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
12187 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12188 ; AVX512DQ-FCP-NEXT:    movb $8, %al
12189 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k3
12190 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
12191 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
12192 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
12193 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
12194 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
12195 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12196 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
12197 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
12198 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12199 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
12200 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
12201 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12202 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
12203 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
12204 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12205 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12206 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
12207 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12208 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12209 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
12210 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12211 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
12212 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm2
12213 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
12214 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12215 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
12216 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12217 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
12218 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12219 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
12220 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12221 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
12222 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12223 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12224 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12225 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12226 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12227 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
12228 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12229 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
12230 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
12231 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
12232 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
12233 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
12234 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12235 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
12236 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12237 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
12238 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12239 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
12240 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12241 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12242 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12243 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12244 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12245 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
12246 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12247 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
12248 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
12249 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
12250 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
12251 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12252 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
12253 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12254 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
12255 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12256 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
12257 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12258 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12259 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
12260 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12261 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12262 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
12263 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12264 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
12265 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%r8), %zmm2
12266 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
12267 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
12268 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
12269 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
12270 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
12271 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
12272 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12273 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12274 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
12275 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
12276 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12277 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
12278 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12279 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
12280 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%r8), %zmm2
12281 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
12282 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
12283 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
12284 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
12285 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
12286 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
12287 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12288 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12289 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
12290 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12291 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12292 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
12293 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12294 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
12295 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%r8), %zmm2
12296 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
12297 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12298 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
12299 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
12300 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
12301 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
12302 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%r8), %zmm2
12303 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
12304 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
12305 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
12306 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
12307 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
12308 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
12309 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
12310 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
12311 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
12312 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
12313 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
12314 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
12315 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
12316 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
12317 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
12318 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
12319 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
12320 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
12321 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
12322 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
12323 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
12324 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
12325 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
12326 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
12327 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
12328 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
12329 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
12330 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
12331 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
12332 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
12333 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
12334 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
12335 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
12336 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12337 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1152(%r9)
12338 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
12339 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12340 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1024(%r9)
12341 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12342 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 960(%r9)
12343 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 896(%r9)
12344 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12345 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 832(%r9)
12346 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, 768(%r9)
12347 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12348 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 704(%r9)
12349 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12350 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 640(%r9)
12351 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 576(%r9)
12352 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12353 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 512(%r9)
12354 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12355 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 448(%r9)
12356 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12357 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 384(%r9)
12358 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12359 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 320(%r9)
12360 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 256(%r9)
12361 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12362 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 192(%r9)
12363 ; AVX512DQ-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
12364 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 128(%r9)
12365 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12366 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 64(%r9)
12367 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12368 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, (%r9)
12369 ; AVX512DQ-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
12370 ; AVX512DQ-FCP-NEXT:    vzeroupper
12371 ; AVX512DQ-FCP-NEXT:    retq
12373 ; AVX512BW-LABEL: store_i64_stride5_vf64:
12374 ; AVX512BW:       # %bb.0:
12375 ; AVX512BW-NEXT:    subq $3144, %rsp # imm = 0xC48
12376 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm6
12377 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm7
12378 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm11
12379 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm10
12380 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm9
12381 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm8
12382 ; AVX512BW-NEXT:    vmovdqa64 256(%rsi), %zmm1
12383 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm5
12384 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm4
12385 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm3
12386 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm2
12387 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
12388 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm12
12389 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
12390 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
12391 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm12
12392 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
12393 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12394 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm12
12395 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
12396 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12397 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm12
12398 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
12399 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12400 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm12
12401 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
12402 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12403 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
12404 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
12405 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
12406 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12407 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
12408 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
12409 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
12410 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12411 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
12412 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
12413 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
12414 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12415 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
12416 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12417 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
12418 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12419 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
12420 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
12421 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12422 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
12423 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
12424 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12425 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5
12426 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
12427 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12428 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
12429 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12430 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
12431 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
12432 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12433 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
12434 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
12435 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12436 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm4
12437 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
12438 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12439 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
12440 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12441 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
12442 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
12443 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12444 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
12445 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
12446 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12447 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm3
12448 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
12449 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12450 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
12451 ; AVX512BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12452 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
12453 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12454 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12455 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
12456 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12457 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12458 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm2
12459 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12460 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12461 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
12462 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12463 ; AVX512BW-NEXT:    vmovdqa64 320(%rsi), %zmm1
12464 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
12465 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
12466 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12467 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
12468 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12469 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12470 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
12471 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12472 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12473 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm2
12474 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12475 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12476 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
12477 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12478 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm3
12479 ; AVX512BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
12480 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
12481 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
12482 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12483 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12484 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12485 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12486 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12487 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12488 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12489 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
12490 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12491 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12492 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
12493 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12494 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
12495 ; AVX512BW-NEXT:    vmovdqa64 448(%rsi), %zmm1
12496 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
12497 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
12498 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
12499 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12500 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
12501 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12502 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
12503 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12504 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm25
12505 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm0
12506 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
12507 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm3
12508 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
12509 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
12510 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm22
12511 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
12512 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
12513 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27
12514 ; AVX512BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
12515 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
12516 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12517 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm28
12518 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
12519 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
12520 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
12521 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm26
12522 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
12523 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm4
12524 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
12525 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm17
12526 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
12527 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12528 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
12529 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12530 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
12531 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12532 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12533 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
12534 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm14
12535 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
12536 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm15
12537 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
12538 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm9
12539 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
12540 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12541 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
12542 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12543 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm1
12544 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12545 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12546 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
12547 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm19
12548 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
12549 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm31
12550 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
12551 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm30
12552 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
12553 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12554 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
12555 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12556 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
12557 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12558 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12559 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
12560 ; AVX512BW-NEXT:    vmovdqa64 256(%rdx), %zmm18
12561 ; AVX512BW-NEXT:    vmovdqa64 256(%rcx), %zmm0
12562 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm29
12563 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
12564 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm24
12565 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
12566 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
12567 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
12568 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12569 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
12570 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12571 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12572 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
12573 ; AVX512BW-NEXT:    vmovdqa64 320(%rdx), %zmm7
12574 ; AVX512BW-NEXT:    vmovdqa64 320(%rcx), %zmm0
12575 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm23
12576 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
12577 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
12578 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
12579 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
12580 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
12581 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12582 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm5
12583 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
12584 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12585 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
12586 ; AVX512BW-NEXT:    vmovdqa64 384(%rdx), %zmm11
12587 ; AVX512BW-NEXT:    vmovdqa64 384(%rcx), %zmm0
12588 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm13
12589 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
12590 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm8
12591 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
12592 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
12593 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
12594 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12595 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm5
12596 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
12597 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12598 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
12599 ; AVX512BW-NEXT:    vmovdqa64 448(%rdx), %zmm5
12600 ; AVX512BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
12601 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
12602 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
12603 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
12604 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
12605 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
12606 ; AVX512BW-NEXT:    movb $49, %al
12607 ; AVX512BW-NEXT:    kmovd %eax, %k1
12608 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
12609 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12610 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12611 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
12612 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12613 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
12614 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12615 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12616 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
12617 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12618 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
12619 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12620 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
12621 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12622 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
12623 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
12624 ; AVX512BW-NEXT:    movb $-116, %al
12625 ; AVX512BW-NEXT:    kmovd %eax, %k3
12626 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
12627 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
12628 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12629 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
12630 ; AVX512BW-NEXT:    movb $24, %al
12631 ; AVX512BW-NEXT:    kmovd %eax, %k2
12632 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12633 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
12634 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
12635 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
12636 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12637 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
12638 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
12639 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
12640 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12641 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
12642 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12643 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
12644 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12645 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
12646 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12647 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
12648 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12649 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
12650 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12651 ; AVX512BW-NEXT:    movb $8, %al
12652 ; AVX512BW-NEXT:    kmovd %eax, %k3
12653 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm2
12654 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
12655 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
12656 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
12657 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
12658 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12659 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
12660 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
12661 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12662 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
12663 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
12664 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12665 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
12666 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
12667 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12668 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12669 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
12670 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12671 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12672 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
12673 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12674 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
12675 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm2
12676 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
12677 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12678 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
12679 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12680 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
12681 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12682 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
12683 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12684 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
12685 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12686 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12687 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12688 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12689 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12690 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
12691 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12692 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
12693 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm2
12694 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
12695 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
12696 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
12697 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12698 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
12699 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12700 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
12701 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12702 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
12703 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
12704 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12705 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
12706 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12707 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12708 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
12709 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12710 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
12711 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm2
12712 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
12713 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
12714 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12715 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
12716 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12717 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
12718 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12719 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
12720 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
12721 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12722 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
12723 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
12724 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12725 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
12726 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
12727 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
12728 ; AVX512BW-NEXT:    vmovdqa64 256(%r8), %zmm2
12729 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
12730 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm3
12731 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
12732 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
12733 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
12734 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
12735 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
12736 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12737 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
12738 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
12739 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12740 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
12741 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12742 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
12743 ; AVX512BW-NEXT:    vmovdqa64 320(%r8), %zmm2
12744 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
12745 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
12746 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
12747 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
12748 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
12749 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
12750 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
12751 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12752 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
12753 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12754 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12755 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
12756 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
12757 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
12758 ; AVX512BW-NEXT:    vmovdqa64 384(%r8), %zmm2
12759 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
12760 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
12761 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
12762 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
12763 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
12764 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
12765 ; AVX512BW-NEXT:    vmovdqa64 448(%r8), %zmm2
12766 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
12767 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
12768 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
12769 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
12770 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
12771 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
12772 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
12773 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
12774 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
12775 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
12776 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
12777 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
12778 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
12779 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
12780 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
12781 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
12782 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
12783 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
12784 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
12785 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
12786 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
12787 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
12788 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
12789 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
12790 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
12791 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
12792 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
12793 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
12794 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
12795 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
12796 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
12797 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
12798 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
12799 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12800 ; AVX512BW-NEXT:    vmovaps %zmm0, 1152(%r9)
12801 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
12802 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12803 ; AVX512BW-NEXT:    vmovaps %zmm0, 1024(%r9)
12804 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12805 ; AVX512BW-NEXT:    vmovaps %zmm0, 960(%r9)
12806 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 896(%r9)
12807 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12808 ; AVX512BW-NEXT:    vmovaps %zmm0, 832(%r9)
12809 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 768(%r9)
12810 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12811 ; AVX512BW-NEXT:    vmovaps %zmm0, 704(%r9)
12812 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12813 ; AVX512BW-NEXT:    vmovaps %zmm0, 640(%r9)
12814 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 576(%r9)
12815 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12816 ; AVX512BW-NEXT:    vmovaps %zmm0, 512(%r9)
12817 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12818 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%r9)
12819 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12820 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%r9)
12821 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12822 ; AVX512BW-NEXT:    vmovaps %zmm0, 320(%r9)
12823 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 256(%r9)
12824 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12825 ; AVX512BW-NEXT:    vmovaps %zmm0, 192(%r9)
12826 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
12827 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%r9)
12828 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12829 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%r9)
12830 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
12831 ; AVX512BW-NEXT:    vmovaps %zmm0, (%r9)
12832 ; AVX512BW-NEXT:    addq $3144, %rsp # imm = 0xC48
12833 ; AVX512BW-NEXT:    vzeroupper
12834 ; AVX512BW-NEXT:    retq
12836 ; AVX512BW-FCP-LABEL: store_i64_stride5_vf64:
12837 ; AVX512BW-FCP:       # %bb.0:
12838 ; AVX512BW-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
12839 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm6
12840 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm7
12841 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm11
12842 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm10
12843 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm9
12844 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm8
12845 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm1
12846 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
12847 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm4
12848 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm3
12849 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm2
12850 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
12851 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
12852 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
12853 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
12854 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
12855 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
12856 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12857 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
12858 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
12859 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12860 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
12861 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
12862 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12863 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
12864 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
12865 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12866 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
12867 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
12868 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
12869 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12870 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
12871 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
12872 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
12873 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12874 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
12875 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
12876 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
12877 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12878 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
12879 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12880 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
12881 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12882 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
12883 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
12884 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12885 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
12886 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
12887 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12888 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
12889 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
12890 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12891 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
12892 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12893 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
12894 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
12895 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12896 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
12897 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
12898 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12899 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
12900 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
12901 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12902 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
12903 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12904 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
12905 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
12906 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12907 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
12908 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
12909 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12910 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
12911 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
12912 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12913 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
12914 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12915 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
12916 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12917 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12918 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
12919 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12920 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12921 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
12922 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12923 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12924 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
12925 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12926 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm1
12927 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
12928 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
12929 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12930 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12931 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12932 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12933 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12934 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12935 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12936 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
12937 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12938 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12939 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
12940 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12941 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm3
12942 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm1
12943 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
12944 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
12945 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12946 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12947 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
12948 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12949 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12950 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
12951 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12952 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
12953 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
12954 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12955 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
12956 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12957 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm2
12958 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm1
12959 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
12960 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
12961 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
12962 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12963 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
12964 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12965 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
12966 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12967 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm25
12968 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
12969 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
12970 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm3
12971 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
12972 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
12973 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm22
12974 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
12975 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
12976 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
12977 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
12978 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
12979 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
12980 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm28
12981 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
12982 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
12983 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
12984 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm26
12985 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
12986 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
12987 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
12988 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
12989 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
12990 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
12991 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
12992 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12993 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm1
12994 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
12995 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
12996 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
12997 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm14
12998 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
12999 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15
13000 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
13001 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm9
13002 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
13003 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13004 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
13005 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13006 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
13007 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13008 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13009 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
13010 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm19
13011 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
13012 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm31
13013 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
13014 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm30
13015 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
13016 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13017 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
13018 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13019 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm1
13020 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13021 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13022 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
13023 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm18
13024 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm0
13025 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm29
13026 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
13027 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm24
13028 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
13029 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13030 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
13031 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13032 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm1
13033 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13034 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13035 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
13036 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm7
13037 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm0
13038 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm23
13039 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
13040 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
13041 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
13042 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
13043 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
13044 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13045 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
13046 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13047 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13048 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
13049 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm11
13050 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm0
13051 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
13052 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
13053 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm8
13054 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
13055 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
13056 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
13057 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13058 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm5
13059 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13060 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13061 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
13062 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm5
13063 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
13064 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
13065 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
13066 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
13067 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
13068 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
13069 ; AVX512BW-FCP-NEXT:    movb $49, %al
13070 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
13071 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
13072 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13073 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13074 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
13075 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13076 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
13077 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13078 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13079 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
13080 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13081 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
13082 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13083 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
13084 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13085 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
13086 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
13087 ; AVX512BW-FCP-NEXT:    movb $-116, %al
13088 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
13089 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
13090 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
13091 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13092 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
13093 ; AVX512BW-FCP-NEXT:    movb $24, %al
13094 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k2
13095 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
13096 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
13097 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
13098 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
13099 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
13100 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
13101 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
13102 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
13103 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
13104 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
13105 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
13106 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
13107 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
13108 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
13109 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13110 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
13111 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13112 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
13113 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13114 ; AVX512BW-FCP-NEXT:    movb $8, %al
13115 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k3
13116 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
13117 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
13118 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
13119 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
13120 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
13121 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13122 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
13123 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
13124 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13125 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
13126 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
13127 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13128 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
13129 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
13130 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13131 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13132 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13133 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13134 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13135 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
13136 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13137 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
13138 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm2
13139 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
13140 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13141 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
13142 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13143 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
13144 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13145 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
13146 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13147 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
13148 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13149 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13150 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13151 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13152 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13153 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
13154 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13155 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
13156 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
13157 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
13158 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
13159 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
13160 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13161 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
13162 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13163 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
13164 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13165 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
13166 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13167 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13168 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13169 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13170 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13171 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
13172 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13173 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
13174 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
13175 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
13176 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
13177 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13178 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
13179 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13180 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
13181 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13182 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
13183 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
13184 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13185 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
13186 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
13187 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13188 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
13189 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13190 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
13191 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm2
13192 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
13193 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
13194 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
13195 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
13196 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
13197 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
13198 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
13199 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13200 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
13201 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
13202 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13203 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
13204 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13205 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
13206 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm2
13207 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
13208 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
13209 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
13210 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
13211 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
13212 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
13213 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
13214 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13215 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
13216 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13217 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
13218 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
13219 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
13220 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
13221 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm2
13222 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
13223 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
13224 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
13225 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
13226 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
13227 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
13228 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm2
13229 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
13230 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
13231 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
13232 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
13233 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
13234 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
13235 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
13236 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
13237 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
13238 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
13239 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
13240 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
13241 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
13242 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
13243 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
13244 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
13245 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
13246 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
13247 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
13248 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
13249 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
13250 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
13251 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
13252 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
13253 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
13254 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
13255 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
13256 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
13257 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
13258 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
13259 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
13260 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
13261 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
13262 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13263 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1152(%r9)
13264 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
13265 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13266 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1024(%r9)
13267 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13268 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 960(%r9)
13269 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 896(%r9)
13270 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13271 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 832(%r9)
13272 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 768(%r9)
13273 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13274 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 704(%r9)
13275 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13276 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 640(%r9)
13277 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 576(%r9)
13278 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13279 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 512(%r9)
13280 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13281 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 448(%r9)
13282 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13283 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 384(%r9)
13284 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13285 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 320(%r9)
13286 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 256(%r9)
13287 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13288 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 192(%r9)
13289 ; AVX512BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
13290 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 128(%r9)
13291 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13292 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 64(%r9)
13293 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13294 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%r9)
13295 ; AVX512BW-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
13296 ; AVX512BW-FCP-NEXT:    vzeroupper
13297 ; AVX512BW-FCP-NEXT:    retq
13299 ; AVX512DQ-BW-LABEL: store_i64_stride5_vf64:
13300 ; AVX512DQ-BW:       # %bb.0:
13301 ; AVX512DQ-BW-NEXT:    subq $3144, %rsp # imm = 0xC48
13302 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm6
13303 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm7
13304 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm11
13305 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm10
13306 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm9
13307 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm8
13308 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rsi), %zmm1
13309 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm5
13310 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm4
13311 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm3
13312 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm2
13313 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
13314 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm12
13315 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
13316 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
13317 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm12
13318 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
13319 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13320 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm12
13321 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
13322 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13323 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
13324 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
13325 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13326 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm12
13327 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
13328 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13329 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
13330 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm0
13331 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
13332 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13333 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
13334 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm0
13335 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
13336 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13337 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
13338 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm0
13339 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
13340 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13341 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
13342 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
13343 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
13344 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13345 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm5
13346 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
13347 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13348 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm5
13349 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
13350 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13351 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm5
13352 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
13353 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13354 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
13355 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13356 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm4
13357 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
13358 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13359 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm4
13360 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
13361 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13362 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm4
13363 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
13364 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13365 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
13366 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13367 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
13368 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
13369 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13370 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
13371 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
13372 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13373 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
13374 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
13375 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13376 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
13377 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13378 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2
13379 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13380 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13381 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2
13382 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13383 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13384 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2
13385 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13386 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13387 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
13388 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13389 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rsi), %zmm1
13390 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
13391 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
13392 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13393 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm2
13394 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13395 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13396 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm2
13397 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13398 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13399 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm2
13400 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13401 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13402 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
13403 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13404 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm3
13405 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
13406 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
13407 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
13408 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13409 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm2
13410 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13411 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13412 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm2
13413 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13414 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13415 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm2
13416 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13417 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13418 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
13419 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13420 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm2
13421 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rsi), %zmm1
13422 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
13423 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
13424 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
13425 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13426 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
13427 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13428 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
13429 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13430 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm25
13431 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm0
13432 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
13433 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm3
13434 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
13435 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
13436 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm22
13437 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
13438 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
13439 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm27
13440 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
13441 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
13442 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
13443 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm28
13444 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
13445 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
13446 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
13447 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm26
13448 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
13449 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm4
13450 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
13451 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm17
13452 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
13453 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
13454 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
13455 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13456 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm1
13457 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13458 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13459 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
13460 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm14
13461 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
13462 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm15
13463 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
13464 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm9
13465 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
13466 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
13467 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
13468 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13469 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
13470 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13471 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13472 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
13473 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm19
13474 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
13475 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm31
13476 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
13477 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm30
13478 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
13479 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
13480 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
13481 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13482 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm1
13483 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13484 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13485 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
13486 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdx), %zmm18
13487 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rcx), %zmm0
13488 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm29
13489 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
13490 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm24
13491 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
13492 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
13493 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
13494 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13495 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm1
13496 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13497 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13498 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
13499 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdx), %zmm7
13500 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rcx), %zmm0
13501 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm23
13502 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
13503 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm1
13504 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
13505 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
13506 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
13507 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13508 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm5
13509 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13510 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13511 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
13512 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdx), %zmm11
13513 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rcx), %zmm0
13514 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm13
13515 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
13516 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm8
13517 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
13518 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
13519 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
13520 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13521 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm5
13522 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13523 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13524 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
13525 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdx), %zmm5
13526 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
13527 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
13528 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
13529 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
13530 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
13531 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
13532 ; AVX512DQ-BW-NEXT:    movb $49, %al
13533 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k1
13534 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
13535 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13536 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13537 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
13538 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13539 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
13540 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13541 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13542 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
13543 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13544 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
13545 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13546 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
13547 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13548 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
13549 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
13550 ; AVX512DQ-BW-NEXT:    movb $-116, %al
13551 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
13552 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
13553 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
13554 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13555 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
13556 ; AVX512DQ-BW-NEXT:    movb $24, %al
13557 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k2
13558 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
13559 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
13560 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
13561 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
13562 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
13563 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
13564 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
13565 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
13566 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
13567 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
13568 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
13569 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
13570 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
13571 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
13572 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13573 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
13574 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13575 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
13576 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13577 ; AVX512DQ-BW-NEXT:    movb $8, %al
13578 ; AVX512DQ-BW-NEXT:    kmovd %eax, %k3
13579 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm2
13580 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
13581 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
13582 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
13583 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
13584 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13585 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
13586 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
13587 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13588 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
13589 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
13590 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13591 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
13592 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
13593 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13594 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13595 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
13596 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13597 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13598 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
13599 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13600 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
13601 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm2
13602 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
13603 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13604 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
13605 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13606 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
13607 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13608 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
13609 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13610 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
13611 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13612 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13613 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13614 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13615 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13616 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
13617 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13618 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
13619 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm2
13620 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
13621 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
13622 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
13623 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13624 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
13625 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13626 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
13627 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13628 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
13629 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
13630 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13631 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13632 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13633 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13634 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
13635 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13636 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
13637 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm2
13638 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
13639 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
13640 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13641 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
13642 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13643 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
13644 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13645 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
13646 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
13647 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13648 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
13649 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
13650 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13651 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
13652 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
13653 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
13654 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%r8), %zmm2
13655 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
13656 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm3
13657 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
13658 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
13659 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
13660 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
13661 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
13662 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13663 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
13664 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
13665 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13666 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
13667 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13668 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
13669 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%r8), %zmm2
13670 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
13671 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm1
13672 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
13673 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
13674 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
13675 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
13676 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
13677 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13678 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
13679 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13680 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
13681 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
13682 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
13683 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
13684 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%r8), %zmm2
13685 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
13686 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
13687 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
13688 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
13689 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
13690 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
13691 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%r8), %zmm2
13692 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
13693 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
13694 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
13695 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
13696 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
13697 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
13698 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
13699 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
13700 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
13701 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
13702 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
13703 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
13704 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
13705 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
13706 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
13707 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
13708 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
13709 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
13710 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
13711 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
13712 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
13713 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
13714 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
13715 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
13716 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
13717 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
13718 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
13719 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
13720 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
13721 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
13722 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
13723 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
13724 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
13725 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13726 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1152(%r9)
13727 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
13728 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13729 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1024(%r9)
13730 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13731 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 960(%r9)
13732 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 896(%r9)
13733 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13734 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 832(%r9)
13735 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, 768(%r9)
13736 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13737 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 704(%r9)
13738 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13739 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 640(%r9)
13740 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 576(%r9)
13741 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13742 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 512(%r9)
13743 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13744 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 448(%r9)
13745 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13746 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 384(%r9)
13747 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13748 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 320(%r9)
13749 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 256(%r9)
13750 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13751 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 192(%r9)
13752 ; AVX512DQ-BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
13753 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%r9)
13754 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13755 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 64(%r9)
13756 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
13757 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, (%r9)
13758 ; AVX512DQ-BW-NEXT:    addq $3144, %rsp # imm = 0xC48
13759 ; AVX512DQ-BW-NEXT:    vzeroupper
13760 ; AVX512DQ-BW-NEXT:    retq
13762 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride5_vf64:
13763 ; AVX512DQ-BW-FCP:       # %bb.0:
13764 ; AVX512DQ-BW-FCP-NEXT:    subq $3144, %rsp # imm = 0xC48
13765 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm6
13766 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm7
13767 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm11
13768 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm10
13769 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm9
13770 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm8
13771 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm1
13772 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
13773 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm4
13774 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm3
13775 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm2
13776 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [3,0,0,0,12,4,0,0]
13777 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
13778 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm20, %zmm12
13779 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, (%rsp) # 64-byte Spill
13780 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm12
13781 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm12
13782 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13783 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
13784 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm12
13785 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13786 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm12
13787 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm8, %zmm20, %zmm12
13788 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13789 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm12
13790 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm12
13791 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13792 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,8,0,0,0,1,9,0]
13793 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
13794 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm21, %zmm0
13795 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13796 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm13 = [0,0,2,10,0,0,0,3]
13797 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
13798 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
13799 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13800 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm14 = [0,5,13,0,0,0,6,14]
13801 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
13802 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm14, %zmm0
13803 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13804 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [15,7,15,7,15,7,15,7]
13805 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
13806 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm11
13807 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13808 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
13809 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm5
13810 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13811 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
13812 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
13813 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13814 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5
13815 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm14, %zmm5
13816 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13817 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm10
13818 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13819 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
13820 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm4
13821 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13822 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
13823 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm13, %zmm4
13824 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13825 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
13826 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm14, %zmm4
13827 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13828 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm9
13829 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13830 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
13831 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
13832 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13833 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
13834 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm13, %zmm3
13835 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13836 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
13837 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
13838 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13839 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm8
13840 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13841 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
13842 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13843 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13844 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
13845 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13846 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13847 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
13848 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13849 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13850 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm7
13851 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13852 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm1
13853 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
13854 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm20, %zmm2
13855 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13856 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
13857 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13858 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13859 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
13860 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13861 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13862 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2
13863 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13864 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13865 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm6
13866 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13867 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm3
13868 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm1
13869 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
13870 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm20, %zmm2
13871 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13872 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
13873 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm21, %zmm2
13874 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13875 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
13876 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm2
13877 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13878 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
13879 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm14, %zmm2
13880 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13881 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm3
13882 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13883 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm2
13884 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm1
13885 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm20
13886 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm21
13887 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm13
13888 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13889 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm2, %zmm14
13890 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13891 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm2
13892 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13893 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm25
13894 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm0
13895 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,3,11,0,0,0,4,12]
13896 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm3
13897 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
13898 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,0,0,8,0,0,0,1]
13899 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm22
13900 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm22
13901 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [1,0,0,0,10,2,0,0]
13902 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27
13903 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm25, %zmm12, %zmm27
13904 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
13905 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
13906 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm28
13907 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm28
13908 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [6,14,0,0,0,7,15,0]
13909 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm25
13910 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm26
13911 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm0
13912 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
13913 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm4
13914 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm17
13915 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
13916 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13917 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm12, %zmm1
13918 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13919 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm1
13920 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13921 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13922 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm26
13923 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm14
13924 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
13925 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm15
13926 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm15
13927 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm9
13928 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm9
13929 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13930 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm1
13931 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13932 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm1
13933 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13934 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13935 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm14
13936 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm19
13937 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
13938 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm31
13939 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm31
13940 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm30
13941 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
13942 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13943 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm19, %zmm12, %zmm1
13944 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13945 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm1
13946 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13947 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13948 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm19
13949 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm18
13950 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm0
13951 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm29
13952 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm29
13953 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm24
13954 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm24
13955 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
13956 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm18, %zmm12, %zmm1
13957 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13958 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm1
13959 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
13960 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13961 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm18
13962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm7
13963 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm0
13964 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm23
13965 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm23
13966 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1
13967 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm1
13968 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
13969 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm5
13970 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
13972 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13973 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13974 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm7
13975 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm11
13976 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm0
13977 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm13
13978 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
13979 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm8
13980 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm8
13981 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
13982 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
13983 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13984 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm5
13985 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm10, %zmm5
13986 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
13987 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm11
13988 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm5
13989 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
13990 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm6
13991 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm2
13992 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm12
13993 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm10
13994 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm16, %zmm5
13995 ; AVX512DQ-BW-FCP-NEXT:    movb $49, %al
13996 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
13997 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
13998 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
13999 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14000 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
14001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k1}
14003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14004 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k1}
14006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14007 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
14008 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14009 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k1}
14010 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14011 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
14012 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm6 {%k1}
14013 ; AVX512DQ-BW-FCP-NEXT:    movb $-116, %al
14014 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
14015 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
14016 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm16 {%k3}
14017 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14018 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0 {%k1}
14019 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %al
14020 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k2
14021 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
14022 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm27 {%k2}
14023 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
14024 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm25 {%k2}
14025 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
14026 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm28 {%k3}
14027 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
14028 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm22 {%k3}
14029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
14030 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm20 {%k3}
14031 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
14032 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm9 {%k3}
14033 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
14034 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm17 {%k3}
14035 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14036 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1 {%k3}
14037 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14038 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k3}
14039 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14040 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
14041 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k3
14042 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
14043 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
14044 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, (%rsp) # 64-byte Spill
14045 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,8,5,6,7]
14046 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm16
14047 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14048 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,9,2,3,4,5,10,7]
14049 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm0
14050 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14051 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [12,1,2,3,4,13,6,7]
14052 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm27
14053 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14054 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm16 = [0,1,14,3,4,5,6,15]
14055 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm25
14056 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14057 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14058 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
14059 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
14060 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14061 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
14062 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14063 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
14064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm2
14065 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm4 {%k3}
14066 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14067 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm28
14068 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14069 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm1
14070 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14071 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm3
14072 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14073 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm26
14074 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
14075 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
14077 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14078 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14079 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
14080 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14081 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
14082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
14083 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
14084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k3}
14085 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm22
14086 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14087 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
14088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14089 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm1
14090 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14091 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm14
14092 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
14093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
14095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14096 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14097 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k2}
14098 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14099 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k2}
14100 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
14101 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm31 {%k3}
14102 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm20
14103 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14104 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm3
14105 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14106 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
14107 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
14108 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
14109 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
14110 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14111 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k1}
14112 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
14113 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14114 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm28 {%k2}
14115 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
14116 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k2}
14117 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm2
14118 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29 {%k3}
14119 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
14120 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm3
14121 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm20
14122 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm28
14123 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm18
14124 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm27 # 64-byte Reload
14125 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14126 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k1}
14127 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
14128 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14129 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
14130 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14131 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
14132 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm2
14133 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm23 {%k3}
14134 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
14135 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm1
14136 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm27
14137 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm22
14138 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm7
14139 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
14140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14141 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k1}
14142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14143 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
14144 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k2}
14145 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
14146 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k2}
14147 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm2
14148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
14149 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
14150 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm17
14151 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm9
14152 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm0
14153 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm11
14154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm2
14155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
14156 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm21, %zmm24
14157 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
14158 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm4 {%k1}
14159 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm8, %zmm4
14160 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
14161 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k2}
14162 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm15, %zmm8
14163 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
14164 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k2}
14165 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm16, %zmm5
14166 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k3}
14167 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 2496(%r9)
14168 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 2432(%r9)
14169 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 2368(%r9)
14170 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 2304(%r9)
14171 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 2240(%r9)
14172 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 2176(%r9)
14173 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 2112(%r9)
14174 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 2048(%r9)
14175 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 1984(%r9)
14176 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 1920(%r9)
14177 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 1856(%r9)
14178 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 1792(%r9)
14179 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 1728(%r9)
14180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 1664(%r9)
14181 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 1600(%r9)
14182 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 1536(%r9)
14183 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 1472(%r9)
14184 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 1408(%r9)
14185 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 1344(%r9)
14186 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1280(%r9)
14187 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 1216(%r9)
14188 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14189 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1152(%r9)
14190 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 1088(%r9)
14191 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14192 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1024(%r9)
14193 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14194 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 960(%r9)
14195 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 896(%r9)
14196 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14197 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 832(%r9)
14198 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, 768(%r9)
14199 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14200 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 704(%r9)
14201 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14202 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 640(%r9)
14203 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 576(%r9)
14204 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14205 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 512(%r9)
14206 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14207 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 448(%r9)
14208 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14209 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 384(%r9)
14210 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14211 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 320(%r9)
14212 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 256(%r9)
14213 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14214 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 192(%r9)
14215 ; AVX512DQ-BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
14216 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 128(%r9)
14217 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14218 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 64(%r9)
14219 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
14220 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, (%r9)
14221 ; AVX512DQ-BW-FCP-NEXT:    addq $3144, %rsp # imm = 0xC48
14222 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
14223 ; AVX512DQ-BW-FCP-NEXT:    retq
14224   %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 64
14225   %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 64
14226   %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 64
14227   %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 64
14228   %in.vec4 = load <64 x i64>, ptr %in.vecptr4, align 64
14229   %1 = shufflevector <64 x i64> %in.vec0, <64 x i64> %in.vec1, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
14230   %2 = shufflevector <64 x i64> %in.vec2, <64 x i64> %in.vec3, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
14231   %3 = shufflevector <128 x i64> %1, <128 x i64> %2, <256 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255>
14232   %4 = shufflevector <64 x i64> %in.vec4, <64 x i64> 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>
14233   %5 = shufflevector <256 x i64> %3, <256 x i64> %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>
14234   %interleaved.vec = shufflevector <320 x i64> %5, <320 x i64> 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>
14235   store <320 x i64> %interleaved.vec, ptr %out.vec, align 64
14236   ret void