[Frontend] Remove unused includes (NFC) (#116927)
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i64-stride-7.ll
blob48e1d0a7fb930faca5d15e6cc6c7b619a9eb10e3
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_stride7_vf2(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
19 ; SSE-LABEL: store_i64_stride7_vf2:
20 ; SSE:       # %bb.0:
21 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
23 ; SSE-NEXT:    movapd (%rdi), %xmm0
24 ; SSE-NEXT:    movapd (%rsi), %xmm1
25 ; SSE-NEXT:    movapd (%rdx), %xmm2
26 ; SSE-NEXT:    movapd (%rcx), %xmm3
27 ; SSE-NEXT:    movapd (%r8), %xmm4
28 ; SSE-NEXT:    movapd (%r9), %xmm5
29 ; SSE-NEXT:    movapd (%r10), %xmm6
30 ; SSE-NEXT:    movapd %xmm0, %xmm7
31 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm1[0]
32 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
33 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
34 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm4[1]
35 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm4 = xmm4[0],xmm5[0]
36 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm6[1]
37 ; SSE-NEXT:    movsd {{.*#+}} xmm0 = xmm6[0],xmm0[1]
38 ; SSE-NEXT:    movapd %xmm2, 16(%rax)
39 ; SSE-NEXT:    movapd %xmm4, 32(%rax)
40 ; SSE-NEXT:    movapd %xmm0, 48(%rax)
41 ; SSE-NEXT:    movapd %xmm3, 80(%rax)
42 ; SSE-NEXT:    movapd %xmm5, 96(%rax)
43 ; SSE-NEXT:    movapd %xmm1, 64(%rax)
44 ; SSE-NEXT:    movapd %xmm7, (%rax)
45 ; SSE-NEXT:    retq
47 ; AVX-LABEL: store_i64_stride7_vf2:
48 ; AVX:       # %bb.0:
49 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
50 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
51 ; AVX-NEXT:    vmovaps (%rdi), %xmm0
52 ; AVX-NEXT:    vmovaps (%rsi), %xmm1
53 ; AVX-NEXT:    vmovaps (%rdx), %xmm2
54 ; AVX-NEXT:    vmovaps (%r9), %xmm3
55 ; AVX-NEXT:    vmovaps (%r10), %xmm4
56 ; AVX-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm1
57 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm5
58 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm1[0],ymm5[2],ymm1[2]
59 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm3, %ymm0
60 ; AVX-NEXT:    vmovaps (%r8), %xmm6
61 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm6, %ymm7
62 ; AVX-NEXT:    vshufpd {{.*#+}} ymm0 = ymm7[0],ymm0[0],ymm7[2],ymm0[3]
63 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm2, %ymm2
64 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
65 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm3[1],xmm4[1]
66 ; AVX-NEXT:    vmovaps %xmm2, 96(%rax)
67 ; AVX-NEXT:    vmovaps %ymm1, 64(%rax)
68 ; AVX-NEXT:    vmovapd %ymm0, 32(%rax)
69 ; AVX-NEXT:    vmovaps %ymm5, (%rax)
70 ; AVX-NEXT:    vzeroupper
71 ; AVX-NEXT:    retq
73 ; AVX2-LABEL: store_i64_stride7_vf2:
74 ; AVX2:       # %bb.0:
75 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
76 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
77 ; AVX2-NEXT:    vmovaps (%rdi), %xmm0
78 ; AVX2-NEXT:    vmovaps (%rdx), %xmm1
79 ; AVX2-NEXT:    vmovaps (%r8), %xmm2
80 ; AVX2-NEXT:    vmovaps (%r9), %xmm3
81 ; AVX2-NEXT:    vmovaps (%r10), %xmm4
82 ; AVX2-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
83 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm1
84 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm5
85 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6,7]
86 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,2,1]
87 ; AVX2-NEXT:    vbroadcastsd %xmm4, %ymm6
88 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
89 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
90 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]
91 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
92 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
93 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
94 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
95 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm4[1]
96 ; AVX2-NEXT:    vmovaps %xmm1, 96(%rax)
97 ; AVX2-NEXT:    vmovaps %ymm0, (%rax)
98 ; AVX2-NEXT:    vmovaps %ymm2, 64(%rax)
99 ; AVX2-NEXT:    vmovaps %ymm5, 32(%rax)
100 ; AVX2-NEXT:    vzeroupper
101 ; AVX2-NEXT:    retq
103 ; AVX2-FP-LABEL: store_i64_stride7_vf2:
104 ; AVX2-FP:       # %bb.0:
105 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
106 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
107 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm0
108 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm1
109 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm2
110 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm3
111 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm4
112 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
113 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm1
114 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm5
115 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6,7]
116 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,2,1]
117 ; AVX2-FP-NEXT:    vbroadcastsd %xmm4, %ymm6
118 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
119 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
120 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]
121 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
122 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
123 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
124 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
125 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm4[1]
126 ; AVX2-FP-NEXT:    vmovaps %xmm1, 96(%rax)
127 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rax)
128 ; AVX2-FP-NEXT:    vmovaps %ymm2, 64(%rax)
129 ; AVX2-FP-NEXT:    vmovaps %ymm5, 32(%rax)
130 ; AVX2-FP-NEXT:    vzeroupper
131 ; AVX2-FP-NEXT:    retq
133 ; AVX2-FCP-LABEL: store_i64_stride7_vf2:
134 ; AVX2-FCP:       # %bb.0:
135 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
136 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
137 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm0
138 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm1
139 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm2
140 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm3
141 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm4
142 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsi), %ymm0, %ymm0
143 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm1, %ymm1
144 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm5
145 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm0[2,3],ymm5[4,5,6,7]
146 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,2,1]
147 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm4, %ymm6
148 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm6[4,5],ymm5[6,7]
149 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
150 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[2,1,3,3]
151 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
152 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
153 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
154 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,1,3]
155 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm3[1],xmm4[1]
156 ; AVX2-FCP-NEXT:    vmovaps %xmm1, 96(%rax)
157 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rax)
158 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 64(%rax)
159 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 32(%rax)
160 ; AVX2-FCP-NEXT:    vzeroupper
161 ; AVX2-FCP-NEXT:    retq
163 ; AVX512-LABEL: store_i64_stride7_vf2:
164 ; AVX512:       # %bb.0:
165 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
166 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
167 ; AVX512-NEXT:    vmovdqa (%rdi), %xmm0
168 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm1
169 ; AVX512-NEXT:    vmovdqa (%r8), %xmm2
170 ; AVX512-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
171 ; AVX512-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
172 ; AVX512-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
173 ; AVX512-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
174 ; AVX512-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
175 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
176 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
177 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
178 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
179 ; AVX512-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
180 ; AVX512-NEXT:    vmovdqa64 %zmm2, (%rax)
181 ; AVX512-NEXT:    vmovdqa %ymm3, 64(%rax)
182 ; AVX512-NEXT:    vzeroupper
183 ; AVX512-NEXT:    retq
185 ; AVX512-FCP-LABEL: store_i64_stride7_vf2:
186 ; AVX512-FCP:       # %bb.0:
187 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
188 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
189 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %xmm0
190 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm1
191 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %xmm2
192 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
193 ; AVX512-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
194 ; AVX512-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
195 ; AVX512-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
196 ; AVX512-FCP-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
197 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
198 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
199 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
200 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
201 ; AVX512-FCP-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
202 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
203 ; AVX512-FCP-NEXT:    vmovdqa %ymm3, 64(%rax)
204 ; AVX512-FCP-NEXT:    vzeroupper
205 ; AVX512-FCP-NEXT:    retq
207 ; AVX512DQ-LABEL: store_i64_stride7_vf2:
208 ; AVX512DQ:       # %bb.0:
209 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
210 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
211 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %xmm0
212 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm1
213 ; AVX512DQ-NEXT:    vmovdqa (%r8), %xmm2
214 ; AVX512DQ-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
215 ; AVX512DQ-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
216 ; AVX512DQ-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
217 ; AVX512DQ-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
218 ; AVX512DQ-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
219 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
220 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
221 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
222 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
223 ; AVX512DQ-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
224 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, (%rax)
225 ; AVX512DQ-NEXT:    vmovdqa %ymm3, 64(%rax)
226 ; AVX512DQ-NEXT:    vzeroupper
227 ; AVX512DQ-NEXT:    retq
229 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf2:
230 ; AVX512DQ-FCP:       # %bb.0:
231 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
232 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
233 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %xmm0
234 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm1
235 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %xmm2
236 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
237 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
238 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
239 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
240 ; AVX512DQ-FCP-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
241 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
242 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
243 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
244 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
245 ; AVX512DQ-FCP-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
246 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
247 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm3, 64(%rax)
248 ; AVX512DQ-FCP-NEXT:    vzeroupper
249 ; AVX512DQ-FCP-NEXT:    retq
251 ; AVX512BW-LABEL: store_i64_stride7_vf2:
252 ; AVX512BW:       # %bb.0:
253 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
254 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
255 ; AVX512BW-NEXT:    vmovdqa (%rdi), %xmm0
256 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm1
257 ; AVX512BW-NEXT:    vmovdqa (%r8), %xmm2
258 ; AVX512BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
259 ; AVX512BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
260 ; AVX512BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
261 ; AVX512BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
262 ; AVX512BW-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
263 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
264 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
265 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
266 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
267 ; AVX512BW-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
268 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, (%rax)
269 ; AVX512BW-NEXT:    vmovdqa %ymm3, 64(%rax)
270 ; AVX512BW-NEXT:    vzeroupper
271 ; AVX512BW-NEXT:    retq
273 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf2:
274 ; AVX512BW-FCP:       # %bb.0:
275 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
276 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
277 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
278 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
279 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
280 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
281 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
282 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
283 ; AVX512BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
284 ; AVX512BW-FCP-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
285 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
286 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
287 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
288 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
289 ; AVX512BW-FCP-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
290 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
291 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm3, 64(%rax)
292 ; AVX512BW-FCP-NEXT:    vzeroupper
293 ; AVX512BW-FCP-NEXT:    retq
295 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf2:
296 ; AVX512DQ-BW:       # %bb.0:
297 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
298 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
299 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %xmm0
300 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm1
301 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %xmm2
302 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
303 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
304 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
305 ; AVX512DQ-BW-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
306 ; AVX512DQ-BW-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
307 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
308 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
309 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
310 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
311 ; AVX512DQ-BW-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
312 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, (%rax)
313 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm3, 64(%rax)
314 ; AVX512DQ-BW-NEXT:    vzeroupper
315 ; AVX512DQ-BW-NEXT:    retq
317 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf2:
318 ; AVX512DQ-BW-FCP:       # %bb.0:
319 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
320 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
321 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %xmm0
322 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm1
323 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %xmm2
324 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rcx), %ymm1, %ymm1
325 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%rsi), %ymm0, %ymm0
326 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, %ymm1, %zmm0, %zmm0
327 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, (%r9), %ymm2, %ymm1
328 ; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $2, (%r10), %zmm1, %zmm1
329 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,2,4,6,8,10,12,1]
330 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
331 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [3,5,7,9,11,13,0,0]
332 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
333 ; AVX512DQ-BW-FCP-NEXT:    vextracti32x4 $2, %zmm3, 96(%rax)
334 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, (%rax)
335 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm3, 64(%rax)
336 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
337 ; AVX512DQ-BW-FCP-NEXT:    retq
338   %in.vec0 = load <2 x i64>, ptr %in.vecptr0, align 64
339   %in.vec1 = load <2 x i64>, ptr %in.vecptr1, align 64
340   %in.vec2 = load <2 x i64>, ptr %in.vecptr2, align 64
341   %in.vec3 = load <2 x i64>, ptr %in.vecptr3, align 64
342   %in.vec4 = load <2 x i64>, ptr %in.vecptr4, align 64
343   %in.vec5 = load <2 x i64>, ptr %in.vecptr5, align 64
344   %in.vec6 = load <2 x i64>, ptr %in.vecptr6, align 64
345   %1 = shufflevector <2 x i64> %in.vec0, <2 x i64> %in.vec1, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
346   %2 = shufflevector <2 x i64> %in.vec2, <2 x i64> %in.vec3, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
347   %3 = shufflevector <2 x i64> %in.vec4, <2 x i64> %in.vec5, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
348   %4 = 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>
349   %5 = shufflevector <2 x i64> %in.vec6, <2 x i64> poison, <4 x i32> <i32 0, i32 1, i32 undef, i32 undef>
350   %6 = shufflevector <4 x i64> %3, <4 x i64> %5, <6 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5>
351   %7 = shufflevector <6 x i64> %6, <6 x i64> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 undef, i32 undef>
352   %8 = shufflevector <8 x i64> %4, <8 x i64> %7, <14 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>
353   %interleaved.vec = shufflevector <14 x i64> %8, <14 x i64> poison, <14 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13>
354   store <14 x i64> %interleaved.vec, ptr %out.vec, align 64
355   ret void
358 define void @store_i64_stride7_vf4(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
359 ; SSE-LABEL: store_i64_stride7_vf4:
360 ; SSE:       # %bb.0:
361 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
362 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %r10
363 ; SSE-NEXT:    movapd (%rdi), %xmm8
364 ; SSE-NEXT:    movaps 16(%rdi), %xmm7
365 ; SSE-NEXT:    movapd (%rsi), %xmm0
366 ; SSE-NEXT:    movaps 16(%rsi), %xmm13
367 ; SSE-NEXT:    movapd (%rdx), %xmm4
368 ; SSE-NEXT:    movaps 16(%rdx), %xmm2
369 ; SSE-NEXT:    movapd (%rcx), %xmm3
370 ; SSE-NEXT:    movaps 16(%rcx), %xmm1
371 ; SSE-NEXT:    movapd (%r8), %xmm10
372 ; SSE-NEXT:    movaps 16(%r8), %xmm6
373 ; SSE-NEXT:    movapd (%r9), %xmm9
374 ; SSE-NEXT:    movaps 16(%r9), %xmm5
375 ; SSE-NEXT:    movapd (%r10), %xmm14
376 ; SSE-NEXT:    movaps 16(%r10), %xmm12
377 ; SSE-NEXT:    movaps %xmm13, %xmm11
378 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm2[1]
379 ; SSE-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]
380 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm6[1]
381 ; SSE-NEXT:    movlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
382 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm12[1]
383 ; SSE-NEXT:    movapd %xmm8, %xmm15
384 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm0[0]
385 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
386 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm4 = xmm4[0],xmm3[0]
387 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm10[1]
388 ; SSE-NEXT:    shufps {{.*#+}} xmm12 = xmm12[0,1],xmm7[2,3]
389 ; SSE-NEXT:    movlhps {{.*#+}} xmm7 = xmm7[0],xmm13[0]
390 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm9[0]
391 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm14[1]
392 ; SSE-NEXT:    movsd {{.*#+}} xmm8 = xmm14[0],xmm8[1]
393 ; SSE-NEXT:    movapd %xmm10, 32(%rax)
394 ; SSE-NEXT:    movapd %xmm8, 48(%rax)
395 ; SSE-NEXT:    movapd %xmm9, 96(%rax)
396 ; SSE-NEXT:    movaps %xmm7, 112(%rax)
397 ; SSE-NEXT:    movaps %xmm12, 160(%rax)
398 ; SSE-NEXT:    movaps %xmm11, 176(%rax)
399 ; SSE-NEXT:    movapd %xmm15, (%rax)
400 ; SSE-NEXT:    movapd %xmm4, 16(%rax)
401 ; SSE-NEXT:    movapd %xmm0, 64(%rax)
402 ; SSE-NEXT:    movapd %xmm3, 80(%rax)
403 ; SSE-NEXT:    movaps %xmm2, 128(%rax)
404 ; SSE-NEXT:    movaps %xmm6, 144(%rax)
405 ; SSE-NEXT:    movaps %xmm1, 192(%rax)
406 ; SSE-NEXT:    movaps %xmm5, 208(%rax)
407 ; SSE-NEXT:    retq
409 ; AVX-LABEL: store_i64_stride7_vf4:
410 ; AVX:       # %bb.0:
411 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
412 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %r10
413 ; AVX-NEXT:    vmovaps (%rdi), %ymm1
414 ; AVX-NEXT:    vmovaps (%rsi), %ymm2
415 ; AVX-NEXT:    vmovaps (%r8), %ymm3
416 ; AVX-NEXT:    vmovaps (%r10), %xmm4
417 ; AVX-NEXT:    vmovaps 16(%r10), %xmm0
418 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm5
419 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm2[1],ymm5[1],ymm2[3],ymm5[3]
420 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
421 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3,4,5,6,7]
422 ; AVX-NEXT:    vmovaps (%r9), %xmm5
423 ; AVX-NEXT:    vmovaps (%r8), %xmm6
424 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm6[0],xmm5[0]
425 ; AVX-NEXT:    vmovaps (%rdi), %xmm8
426 ; AVX-NEXT:    vinsertf128 $1, %xmm8, %ymm7, %ymm9
427 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm7, %ymm7
428 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1],ymm9[2,3],ymm7[4,5],ymm9[6,7]
429 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm6
430 ; AVX-NEXT:    vmovaps (%rdx), %xmm9
431 ; AVX-NEXT:    vmovaps (%rsi), %xmm10
432 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm10[1],xmm9[1]
433 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm12
434 ; AVX-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
435 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm11[0,1,2,3,4,5],ymm6[6,7]
436 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],mem[0],ymm3[2],mem[2]
437 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm11
438 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm12
439 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm12 = xmm12[0],xmm11[0]
440 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm12[0,1,2,3],ymm3[4,5,6,7]
441 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
442 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm5[1],xmm4[1]
443 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
444 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm11[1],mem[1]
445 ; AVX-NEXT:    vbroadcastsd 24(%r9), %ymm4
446 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm4[4,5,6,7]
447 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],mem[6,7]
448 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm8[0],xmm10[0]
449 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm9[0],mem[0]
450 ; AVX-NEXT:    vmovaps %ymm1, 96(%rax)
451 ; AVX-NEXT:    vmovaps %xmm5, 16(%rax)
452 ; AVX-NEXT:    vmovaps %xmm4, (%rax)
453 ; AVX-NEXT:    vmovaps %ymm3, 128(%rax)
454 ; AVX-NEXT:    vmovaps %ymm2, 192(%rax)
455 ; AVX-NEXT:    vmovaps %ymm6, 64(%rax)
456 ; AVX-NEXT:    vmovaps %ymm7, 32(%rax)
457 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
458 ; AVX-NEXT:    vzeroupper
459 ; AVX-NEXT:    retq
461 ; AVX2-LABEL: store_i64_stride7_vf4:
462 ; AVX2:       # %bb.0:
463 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
464 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %r10
465 ; AVX2-NEXT:    vmovaps (%rdi), %ymm4
466 ; AVX2-NEXT:    vmovaps (%rsi), %ymm5
467 ; AVX2-NEXT:    vmovaps (%rdx), %ymm6
468 ; AVX2-NEXT:    vmovaps (%rcx), %ymm1
469 ; AVX2-NEXT:    vmovaps (%r8), %ymm2
470 ; AVX2-NEXT:    vmovaps (%r10), %xmm3
471 ; AVX2-NEXT:    vmovaps 16(%r10), %xmm0
472 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
473 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
474 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm6[6,7]
475 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3,4,5,6,7]
476 ; AVX2-NEXT:    vmovaps (%r8), %xmm7
477 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm8
478 ; AVX2-NEXT:    vmovaps (%rdx), %xmm9
479 ; AVX2-NEXT:    vmovaps (%rsi), %xmm10
480 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm10[1],xmm9[1]
481 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm12
482 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
483 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3,4,5],ymm8[6,7]
484 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
485 ; AVX2-NEXT:    vmovaps (%r9), %xmm5
486 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm3[1]
487 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm4[4,5,6,7]
488 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm10, %ymm10
489 ; AVX2-NEXT:    vmovaps (%rdi), %xmm11
490 ; AVX2-NEXT:    vinsertf128 $1, %xmm9, %ymm11, %ymm9
491 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
492 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm2[0],mem[0],ymm2[2],mem[2]
493 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
494 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm10[2,3]
495 ; AVX2-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm7[0],xmm5[0]
496 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm5, %ymm5
497 ; AVX2-NEXT:    vbroadcastsd %xmm3, %ymm3
498 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]
499 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
500 ; AVX2-NEXT:    vbroadcastsd 24(%r9), %ymm2
501 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
502 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
503 ; AVX2-NEXT:    vmovaps %ymm6, 128(%rax)
504 ; AVX2-NEXT:    vmovaps %ymm1, 192(%rax)
505 ; AVX2-NEXT:    vmovaps %ymm9, (%rax)
506 ; AVX2-NEXT:    vmovaps %ymm4, 96(%rax)
507 ; AVX2-NEXT:    vmovaps %ymm8, 64(%rax)
508 ; AVX2-NEXT:    vmovaps %ymm3, 32(%rax)
509 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rax)
510 ; AVX2-NEXT:    vzeroupper
511 ; AVX2-NEXT:    retq
513 ; AVX2-FP-LABEL: store_i64_stride7_vf4:
514 ; AVX2-FP:       # %bb.0:
515 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
516 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
517 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm4
518 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm5
519 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm6
520 ; AVX2-FP-NEXT:    vmovaps (%rcx), %ymm1
521 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm2
522 ; AVX2-FP-NEXT:    vmovaps (%r10), %xmm3
523 ; AVX2-FP-NEXT:    vmovaps 16(%r10), %xmm0
524 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
525 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
526 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm6[6,7]
527 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3,4,5,6,7]
528 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm7
529 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm8
530 ; AVX2-FP-NEXT:    vmovaps (%rdx), %xmm9
531 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm10
532 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm10[1],xmm9[1]
533 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm12
534 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
535 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3,4,5],ymm8[6,7]
536 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
537 ; AVX2-FP-NEXT:    vmovaps (%r9), %xmm5
538 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm3[1]
539 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm4[4,5,6,7]
540 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm10, %ymm10
541 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm11
542 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm9, %ymm11, %ymm9
543 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
544 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm2[0],mem[0],ymm2[2],mem[2]
545 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
546 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm10[2,3]
547 ; AVX2-FP-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm7[0],xmm5[0]
548 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm5, %ymm5
549 ; AVX2-FP-NEXT:    vbroadcastsd %xmm3, %ymm3
550 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]
551 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
552 ; AVX2-FP-NEXT:    vbroadcastsd 24(%r9), %ymm2
553 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
554 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
555 ; AVX2-FP-NEXT:    vmovaps %ymm6, 128(%rax)
556 ; AVX2-FP-NEXT:    vmovaps %ymm1, 192(%rax)
557 ; AVX2-FP-NEXT:    vmovaps %ymm9, (%rax)
558 ; AVX2-FP-NEXT:    vmovaps %ymm4, 96(%rax)
559 ; AVX2-FP-NEXT:    vmovaps %ymm8, 64(%rax)
560 ; AVX2-FP-NEXT:    vmovaps %ymm3, 32(%rax)
561 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rax)
562 ; AVX2-FP-NEXT:    vzeroupper
563 ; AVX2-FP-NEXT:    retq
565 ; AVX2-FCP-LABEL: store_i64_stride7_vf4:
566 ; AVX2-FCP:       # %bb.0:
567 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
568 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
569 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm4
570 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm5
571 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm6
572 ; AVX2-FCP-NEXT:    vmovaps (%rcx), %ymm1
573 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm2
574 ; AVX2-FCP-NEXT:    vmovaps (%r10), %xmm3
575 ; AVX2-FCP-NEXT:    vmovaps 16(%r10), %xmm0
576 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm7 = ymm4[1],ymm5[1],ymm4[3],ymm5[3]
577 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm7 = ymm7[0,2,3,3]
578 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm6[6,7]
579 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm7[2,3,4,5,6,7]
580 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm7
581 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm8
582 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %xmm9
583 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm10
584 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm10[1],xmm9[1]
585 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm12
586 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm12[4,5,6,7]
587 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm11[0,1,2,3,4,5],ymm8[6,7]
588 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm5[0],ymm4[2],ymm5[2]
589 ; AVX2-FCP-NEXT:    vmovaps (%r9), %xmm5
590 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm5[1],xmm3[1]
591 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm11[0,1,2,3],ymm4[4,5,6,7]
592 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm10, %ymm10
593 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm11
594 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm9, %ymm11, %ymm9
595 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm9 = ymm9[0],ymm10[0],ymm9[2],ymm10[2]
596 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm2[0],mem[0],ymm2[2],mem[2]
597 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],ymm1[0],ymm6[2],ymm1[2]
598 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm10[2,3]
599 ; AVX2-FCP-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm7[0],xmm5[0]
600 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm5, %ymm5
601 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm3, %ymm3
602 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5],ymm5[6,7]
603 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
604 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%r9), %ymm2
605 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
606 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
607 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 128(%rax)
608 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 192(%rax)
609 ; AVX2-FCP-NEXT:    vmovaps %ymm9, (%rax)
610 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 96(%rax)
611 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 64(%rax)
612 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 32(%rax)
613 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rax)
614 ; AVX2-FCP-NEXT:    vzeroupper
615 ; AVX2-FCP-NEXT:    retq
617 ; AVX512-LABEL: store_i64_stride7_vf4:
618 ; AVX512:       # %bb.0:
619 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
620 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
621 ; AVX512-NEXT:    vmovdqa (%rdi), %ymm1
622 ; AVX512-NEXT:    vmovdqa (%rdx), %ymm2
623 ; AVX512-NEXT:    vmovdqa (%r8), %ymm3
624 ; AVX512-NEXT:    vmovdqa (%r10), %ymm0
625 ; AVX512-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
626 ; AVX512-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
627 ; AVX512-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
628 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
629 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
630 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
631 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
632 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
633 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
634 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
635 ; AVX512-NEXT:    movb $112, %cl
636 ; AVX512-NEXT:    kmovw %ecx, %k1
637 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
638 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
639 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
640 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
641 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
642 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
643 ; AVX512-NEXT:    movb $56, %cl
644 ; AVX512-NEXT:    kmovw %ecx, %k1
645 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
646 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
647 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
648 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
649 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
650 ; AVX512-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
651 ; AVX512-NEXT:    movb $28, %cl
652 ; AVX512-NEXT:    kmovw %ecx, %k1
653 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
654 ; AVX512-NEXT:    vmovdqa64 %zmm3, 128(%rax)
655 ; AVX512-NEXT:    vmovdqa64 %zmm7, 64(%rax)
656 ; AVX512-NEXT:    vmovdqa64 %zmm6, (%rax)
657 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
658 ; AVX512-NEXT:    vmovdqa %ymm0, 192(%rax)
659 ; AVX512-NEXT:    vzeroupper
660 ; AVX512-NEXT:    retq
662 ; AVX512-FCP-LABEL: store_i64_stride7_vf4:
663 ; AVX512-FCP:       # %bb.0:
664 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
665 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
666 ; AVX512-FCP-NEXT:    vmovdqa (%rdi), %ymm1
667 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %ymm2
668 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm3
669 ; AVX512-FCP-NEXT:    vmovdqa (%r10), %ymm0
670 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
671 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
672 ; AVX512-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
673 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
674 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
675 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
676 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
677 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
678 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
679 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
680 ; AVX512-FCP-NEXT:    movb $112, %cl
681 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
682 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
683 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
684 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
685 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
686 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
687 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
688 ; AVX512-FCP-NEXT:    movb $56, %cl
689 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
690 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
691 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
692 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
693 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
694 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
695 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
696 ; AVX512-FCP-NEXT:    movb $28, %cl
697 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
698 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
699 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
700 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rax)
701 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)
702 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
703 ; AVX512-FCP-NEXT:    vmovdqa %ymm0, 192(%rax)
704 ; AVX512-FCP-NEXT:    vzeroupper
705 ; AVX512-FCP-NEXT:    retq
707 ; AVX512DQ-LABEL: store_i64_stride7_vf4:
708 ; AVX512DQ:       # %bb.0:
709 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
710 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
711 ; AVX512DQ-NEXT:    vmovdqa (%rdi), %ymm1
712 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %ymm2
713 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm3
714 ; AVX512DQ-NEXT:    vmovdqa (%r10), %ymm0
715 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
716 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
717 ; AVX512DQ-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
718 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
719 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
720 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
721 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
722 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
723 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
724 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
725 ; AVX512DQ-NEXT:    movb $112, %cl
726 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
727 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
728 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
729 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
730 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
731 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
732 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
733 ; AVX512DQ-NEXT:    movb $56, %cl
734 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
735 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
736 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
737 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
738 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
739 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
740 ; AVX512DQ-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
741 ; AVX512DQ-NEXT:    movb $28, %cl
742 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
743 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
744 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rax)
745 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 64(%rax)
746 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, (%rax)
747 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
748 ; AVX512DQ-NEXT:    vmovdqa %ymm0, 192(%rax)
749 ; AVX512DQ-NEXT:    vzeroupper
750 ; AVX512DQ-NEXT:    retq
752 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf4:
753 ; AVX512DQ-FCP:       # %bb.0:
754 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
755 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
756 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdi), %ymm1
757 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %ymm2
758 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm3
759 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r10), %ymm0
760 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
761 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
762 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
763 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
764 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
765 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
766 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
767 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
768 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
769 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
770 ; AVX512DQ-FCP-NEXT:    movb $112, %cl
771 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
772 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
773 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
774 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
775 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
776 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
777 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
778 ; AVX512DQ-FCP-NEXT:    movb $56, %cl
779 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
780 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
781 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
782 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
783 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
784 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
785 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
786 ; AVX512DQ-FCP-NEXT:    movb $28, %cl
787 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
788 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
789 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
790 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rax)
791 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)
792 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
793 ; AVX512DQ-FCP-NEXT:    vmovdqa %ymm0, 192(%rax)
794 ; AVX512DQ-FCP-NEXT:    vzeroupper
795 ; AVX512DQ-FCP-NEXT:    retq
797 ; AVX512BW-LABEL: store_i64_stride7_vf4:
798 ; AVX512BW:       # %bb.0:
799 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
800 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
801 ; AVX512BW-NEXT:    vmovdqa (%rdi), %ymm1
802 ; AVX512BW-NEXT:    vmovdqa (%rdx), %ymm2
803 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm3
804 ; AVX512BW-NEXT:    vmovdqa (%r10), %ymm0
805 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
806 ; AVX512BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
807 ; AVX512BW-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
808 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
809 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
810 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
811 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
812 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
813 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
814 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
815 ; AVX512BW-NEXT:    movb $112, %cl
816 ; AVX512BW-NEXT:    kmovd %ecx, %k1
817 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
818 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
819 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
820 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
821 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
822 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
823 ; AVX512BW-NEXT:    movb $56, %cl
824 ; AVX512BW-NEXT:    kmovd %ecx, %k1
825 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
826 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
827 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
828 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
829 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
830 ; AVX512BW-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
831 ; AVX512BW-NEXT:    movb $28, %cl
832 ; AVX512BW-NEXT:    kmovd %ecx, %k1
833 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
834 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 128(%rax)
835 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
836 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, (%rax)
837 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
838 ; AVX512BW-NEXT:    vmovdqa %ymm0, 192(%rax)
839 ; AVX512BW-NEXT:    vzeroupper
840 ; AVX512BW-NEXT:    retq
842 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf4:
843 ; AVX512BW-FCP:       # %bb.0:
844 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
845 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
846 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdi), %ymm1
847 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %ymm2
848 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm3
849 ; AVX512BW-FCP-NEXT:    vmovdqa (%r10), %ymm0
850 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
851 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
852 ; AVX512BW-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
853 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
854 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
855 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
856 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
857 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
858 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
859 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
860 ; AVX512BW-FCP-NEXT:    movb $112, %cl
861 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
862 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
863 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
864 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
865 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
866 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
867 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
868 ; AVX512BW-FCP-NEXT:    movb $56, %cl
869 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
870 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
871 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
872 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
873 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
874 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
875 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
876 ; AVX512BW-FCP-NEXT:    movb $28, %cl
877 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
878 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
879 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
880 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rax)
881 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)
882 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
883 ; AVX512BW-FCP-NEXT:    vmovdqa %ymm0, 192(%rax)
884 ; AVX512BW-FCP-NEXT:    vzeroupper
885 ; AVX512BW-FCP-NEXT:    retq
887 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf4:
888 ; AVX512DQ-BW:       # %bb.0:
889 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
890 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
891 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdi), %ymm1
892 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %ymm2
893 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm3
894 ; AVX512DQ-BW-NEXT:    vmovdqa (%r10), %ymm0
895 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
896 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
897 ; AVX512DQ-BW-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
898 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
899 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
900 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
901 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
902 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
903 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
904 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
905 ; AVX512DQ-BW-NEXT:    movb $112, %cl
906 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
907 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
908 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
909 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
910 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
911 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
912 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
913 ; AVX512DQ-BW-NEXT:    movb $56, %cl
914 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
915 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
916 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
917 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
918 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
919 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
920 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
921 ; AVX512DQ-BW-NEXT:    movb $28, %cl
922 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
923 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
924 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 128(%rax)
925 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
926 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, (%rax)
927 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
928 ; AVX512DQ-BW-NEXT:    vmovdqa %ymm0, 192(%rax)
929 ; AVX512DQ-BW-NEXT:    vzeroupper
930 ; AVX512DQ-BW-NEXT:    retq
932 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf4:
933 ; AVX512DQ-BW-FCP:       # %bb.0:
934 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
935 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
936 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdi), %ymm1
937 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %ymm2
938 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm3
939 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r10), %ymm0
940 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rsi), %zmm1, %zmm4
941 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%rcx), %zmm2, %zmm2
942 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $1, (%r9), %zmm3, %zmm3
943 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm1 = [15,3,7,0]
944 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
945 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,4,8,0,0,4,8,0]
946 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
947 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
948 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,4,8,12,0,0,0,1]
949 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm6
950 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %cl
951 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
952 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm6 {%k1}
953 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [5,9,0,1,5,9,0,1]
954 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
955 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
956 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [5,9,13,0,0,0,2,6]
957 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm4, %zmm7
958 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %cl
959 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
960 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
961 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [10,0,2,6,10,0,2,6]
962 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
963 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm5
964 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [2,6,0,0,0,11,15,3]
965 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm2, %zmm3
966 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %cl
967 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
968 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
969 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
970 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 64(%rax)
971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, (%rax)
972 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
973 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa %ymm0, 192(%rax)
974 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
975 ; AVX512DQ-BW-FCP-NEXT:    retq
976   %in.vec0 = load <4 x i64>, ptr %in.vecptr0, align 64
977   %in.vec1 = load <4 x i64>, ptr %in.vecptr1, align 64
978   %in.vec2 = load <4 x i64>, ptr %in.vecptr2, align 64
979   %in.vec3 = load <4 x i64>, ptr %in.vecptr3, align 64
980   %in.vec4 = load <4 x i64>, ptr %in.vecptr4, align 64
981   %in.vec5 = load <4 x i64>, ptr %in.vecptr5, align 64
982   %in.vec6 = load <4 x i64>, ptr %in.vecptr6, align 64
983   %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>
984   %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>
985   %3 = shufflevector <4 x i64> %in.vec4, <4 x i64> %in.vec5, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
986   %4 = 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>
987   %5 = shufflevector <4 x i64> %in.vec6, <4 x i64> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 undef, i32 undef, i32 undef, i32 undef>
988   %6 = shufflevector <8 x i64> %3, <8 x i64> %5, <12 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11>
989   %7 = shufflevector <12 x i64> %6, <12 x i64> poison, <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 undef, i32 undef, i32 undef, i32 undef>
990   %8 = shufflevector <16 x i64> %4, <16 x i64> %7, <28 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>
991   %interleaved.vec = shufflevector <28 x i64> %8, <28 x i64> poison, <28 x i32> <i32 0, i32 4, i32 8, i32 12, i32 16, i32 20, i32 24, i32 1, i32 5, i32 9, i32 13, i32 17, i32 21, i32 25, i32 2, i32 6, i32 10, i32 14, i32 18, i32 22, i32 26, i32 3, i32 7, i32 11, i32 15, i32 19, i32 23, i32 27>
992   store <28 x i64> %interleaved.vec, ptr %out.vec, align 64
993   ret void
996 define void @store_i64_stride7_vf8(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
997 ; SSE-LABEL: store_i64_stride7_vf8:
998 ; SSE:       # %bb.0:
999 ; SSE-NEXT:    subq $88, %rsp
1000 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1001 ; SSE-NEXT:    movapd (%rdi), %xmm2
1002 ; SSE-NEXT:    movapd 16(%rdi), %xmm5
1003 ; SSE-NEXT:    movapd 32(%rdi), %xmm10
1004 ; SSE-NEXT:    movapd (%rsi), %xmm3
1005 ; SSE-NEXT:    movapd 16(%rsi), %xmm6
1006 ; SSE-NEXT:    movapd (%rdx), %xmm4
1007 ; SSE-NEXT:    movapd 16(%rdx), %xmm8
1008 ; SSE-NEXT:    movapd (%rcx), %xmm7
1009 ; SSE-NEXT:    movapd 16(%rcx), %xmm11
1010 ; SSE-NEXT:    movapd (%r8), %xmm9
1011 ; SSE-NEXT:    movapd 16(%r8), %xmm14
1012 ; SSE-NEXT:    movapd (%r9), %xmm12
1013 ; SSE-NEXT:    movapd 16(%r9), %xmm13
1014 ; SSE-NEXT:    movapd (%rax), %xmm0
1015 ; SSE-NEXT:    movapd 16(%rax), %xmm1
1016 ; SSE-NEXT:    movapd %xmm2, %xmm15
1017 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm3[0]
1018 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1019 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
1020 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1021 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm4[1]
1022 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1023 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm4 = xmm4[0],xmm7[0]
1024 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1025 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm9[1]
1026 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1027 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm12[0]
1028 ; SSE-NEXT:    movapd %xmm9, (%rsp) # 16-byte Spill
1029 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm0[1]
1030 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1031 ; SSE-NEXT:    movapd %xmm5, %xmm0
1032 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm6[0]
1033 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1034 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm1[0],xmm5[1]
1035 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1036 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
1037 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1038 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm8 = xmm8[0],xmm11[0]
1039 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1040 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm14[1]
1041 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1042 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm13[0]
1043 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
1044 ; SSE-NEXT:    movapd 32(%rsi), %xmm12
1045 ; SSE-NEXT:    movapd %xmm10, %xmm15
1046 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm12[0]
1047 ; SSE-NEXT:    movapd 32(%rax), %xmm3
1048 ; SSE-NEXT:    movsd {{.*#+}} xmm10 = xmm3[0],xmm10[1]
1049 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
1050 ; SSE-NEXT:    movapd 32(%rdx), %xmm11
1051 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
1052 ; SSE-NEXT:    movapd 32(%rcx), %xmm8
1053 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm8[0]
1054 ; SSE-NEXT:    movapd 32(%r8), %xmm9
1055 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
1056 ; SSE-NEXT:    movapd 32(%r9), %xmm6
1057 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
1058 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
1059 ; SSE-NEXT:    movapd 48(%rdi), %xmm5
1060 ; SSE-NEXT:    movapd 48(%rsi), %xmm4
1061 ; SSE-NEXT:    movapd %xmm5, %xmm7
1062 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm4[0]
1063 ; SSE-NEXT:    movapd 48(%rax), %xmm10
1064 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm10[0],xmm5[1]
1065 ; SSE-NEXT:    movapd 48(%rdx), %xmm3
1066 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
1067 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
1068 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
1069 ; SSE-NEXT:    movapd 48(%r8), %xmm1
1070 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
1071 ; SSE-NEXT:    movapd 48(%r9), %xmm0
1072 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
1073 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
1074 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1075 ; SSE-NEXT:    movapd %xmm0, 432(%rax)
1076 ; SSE-NEXT:    movapd %xmm2, 416(%rax)
1077 ; SSE-NEXT:    movapd %xmm4, 400(%rax)
1078 ; SSE-NEXT:    movapd %xmm5, 384(%rax)
1079 ; SSE-NEXT:    movapd %xmm1, 368(%rax)
1080 ; SSE-NEXT:    movapd %xmm3, 352(%rax)
1081 ; SSE-NEXT:    movapd %xmm7, 336(%rax)
1082 ; SSE-NEXT:    movapd %xmm6, 320(%rax)
1083 ; SSE-NEXT:    movapd %xmm8, 304(%rax)
1084 ; SSE-NEXT:    movapd %xmm12, 288(%rax)
1085 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1086 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
1087 ; SSE-NEXT:    movapd %xmm9, 256(%rax)
1088 ; SSE-NEXT:    movapd %xmm11, 240(%rax)
1089 ; SSE-NEXT:    movapd %xmm15, 224(%rax)
1090 ; SSE-NEXT:    movapd %xmm13, 208(%rax)
1091 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1092 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
1093 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1094 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
1095 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1096 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
1097 ; SSE-NEXT:    movapd %xmm14, 144(%rax)
1098 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1099 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
1100 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1101 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
1102 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1103 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
1104 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1105 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
1106 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1107 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
1108 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1109 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
1110 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
1111 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
1112 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1113 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
1114 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
1115 ; SSE-NEXT:    movaps %xmm0, (%rax)
1116 ; SSE-NEXT:    addq $88, %rsp
1117 ; SSE-NEXT:    retq
1119 ; AVX-LABEL: store_i64_stride7_vf8:
1120 ; AVX:       # %bb.0:
1121 ; AVX-NEXT:    pushq %rax
1122 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1123 ; AVX-NEXT:    vmovaps (%rsi), %ymm2
1124 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1125 ; AVX-NEXT:    vmovaps (%rdx), %ymm7
1126 ; AVX-NEXT:    vmovaps (%r9), %ymm3
1127 ; AVX-NEXT:    vmovaps (%rax), %xmm5
1128 ; AVX-NEXT:    vmovaps 16(%rax), %xmm0
1129 ; AVX-NEXT:    vmovapd 32(%rax), %xmm11
1130 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm1
1131 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
1132 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
1133 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1134 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1135 ; AVX-NEXT:    vmovapd 32(%r8), %xmm4
1136 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm1
1137 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm6
1138 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm8
1139 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm9 = xmm8[1],xmm6[1]
1140 ; AVX-NEXT:    vbroadcastsd 40(%rcx), %ymm10
1141 ; AVX-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3],ymm10[4,5,6,7]
1142 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm9[0,1,2,3,4,5],ymm1[6,7]
1143 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1144 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm10
1145 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm0, %ymm12
1146 ; AVX-NEXT:    vmovaps (%r9), %xmm9
1147 ; AVX-NEXT:    vmovapd 32(%r9), %xmm15
1148 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],xmm15[0]
1149 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm4, %ymm4
1150 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3,4,5],ymm12[6,7]
1151 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1152 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm8 = xmm10[0],xmm8[0]
1153 ; AVX-NEXT:    vinsertf128 $1, 32(%rcx), %ymm8, %ymm10
1154 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm8, %ymm6
1155 ; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[0],ymm10[1],ymm6[2],ymm10[2]
1156 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm8
1157 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm8[4,5,6,7]
1158 ; AVX-NEXT:    vmovaps (%rsi), %xmm8
1159 ; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm8[2,3,2,3]
1160 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm10[0,1],ymm7[2,3,4,5,6,7]
1161 ; AVX-NEXT:    vmovaps (%r8), %xmm12
1162 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm10
1163 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],ymm10[6,7]
1164 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm13
1165 ; AVX-NEXT:    vshufps {{.*#+}} xmm10 = xmm13[2,3,2,3]
1166 ; AVX-NEXT:    vmovaps 16(%r8), %xmm14
1167 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm14 = ymm3[1],ymm14[1],ymm3[3],ymm14[3]
1168 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],mem[6,7]
1169 ; AVX-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm14[2,3,4,5,6,7]
1170 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm12 = xmm12[0],xmm9[0]
1171 ; AVX-NEXT:    vmovaps (%rdi), %xmm14
1172 ; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm12, %ymm0
1173 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm12, %ymm12
1174 ; AVX-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1],ymm0[2,3],ymm12[4,5],ymm0[6,7]
1175 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm15[1],xmm11[1]
1176 ; AVX-NEXT:    vmovapd 32(%rdi), %ymm11
1177 ; AVX-NEXT:    vmovapd 32(%rsi), %ymm15
1178 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
1179 ; AVX-NEXT:    vblendpd {{.*#+}} ymm11 = ymm0[0,1],ymm11[2,3]
1180 ; AVX-NEXT:    vmovapd 48(%rdi), %xmm0
1181 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],mem[2,3]
1182 ; AVX-NEXT:    vshufpd {{.*#+}} ymm15 = ymm15[0,0,3,2]
1183 ; AVX-NEXT:    vmovapd 32(%rax), %ymm2
1184 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm15 = ymm2[2,3],ymm15[2,3]
1185 ; AVX-NEXT:    vblendpd {{.*#+}} ymm15 = ymm15[0],ymm0[1],ymm15[2],ymm0[3]
1186 ; AVX-NEXT:    vmovapd 32(%r8), %ymm0
1187 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm0[0],mem[0],ymm0[2],mem[2]
1188 ; AVX-NEXT:    vmovapd 48(%rcx), %xmm0
1189 ; AVX-NEXT:    vmovapd 48(%rdx), %xmm4
1190 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],xmm0[0]
1191 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm4[0,1],ymm1[2,3]
1192 ; AVX-NEXT:    vmovaps (%rdi), %ymm4
1193 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm4, %ymm4 # 32-byte Folded Reload
1194 ; AVX-NEXT:    # ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
1195 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm9[1],xmm5[1]
1196 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5,6,7]
1197 ; AVX-NEXT:    vmovaps (%r8), %ymm5
1198 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
1199 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm5
1200 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm5[0],xmm13[0]
1201 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
1202 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],mem[1]
1203 ; AVX-NEXT:    vbroadcastsd 56(%r9), %ymm5
1204 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3]
1205 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm2[3]
1206 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1207 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm14[0],xmm8[0]
1208 ; AVX-NEXT:    vmovaps (%rdx), %xmm5
1209 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
1210 ; AVX-NEXT:    vmovaps %xmm5, 16(%rax)
1211 ; AVX-NEXT:    vmovaps %xmm2, (%rax)
1212 ; AVX-NEXT:    vmovaps %ymm3, 128(%rax)
1213 ; AVX-NEXT:    vmovaps %ymm4, 96(%rax)
1214 ; AVX-NEXT:    vmovapd %ymm1, 352(%rax)
1215 ; AVX-NEXT:    vmovapd %ymm15, 384(%rax)
1216 ; AVX-NEXT:    vmovapd %ymm11, 320(%rax)
1217 ; AVX-NEXT:    vmovaps %ymm12, 32(%rax)
1218 ; AVX-NEXT:    vmovaps %ymm10, 192(%rax)
1219 ; AVX-NEXT:    vmovaps %ymm7, 64(%rax)
1220 ; AVX-NEXT:    vmovapd %ymm6, 224(%rax)
1221 ; AVX-NEXT:    vmovapd %ymm0, 416(%rax)
1222 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1223 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
1224 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1225 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
1226 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1227 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
1228 ; AVX-NEXT:    popq %rax
1229 ; AVX-NEXT:    vzeroupper
1230 ; AVX-NEXT:    retq
1232 ; AVX2-LABEL: store_i64_stride7_vf8:
1233 ; AVX2:       # %bb.0:
1234 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1235 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm8
1236 ; AVX2-NEXT:    vmovaps (%rdi), %ymm4
1237 ; AVX2-NEXT:    vmovaps (%rsi), %ymm7
1238 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm10
1239 ; AVX2-NEXT:    vmovaps (%rdx), %ymm5
1240 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm9
1241 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm3
1242 ; AVX2-NEXT:    vmovaps (%rax), %xmm2
1243 ; AVX2-NEXT:    vmovaps 16(%rax), %xmm0
1244 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm13
1245 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm12
1246 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm7[1],ymm4[3],ymm7[3]
1247 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
1248 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]
1249 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1250 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1251 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm15
1252 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
1253 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm6
1254 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
1255 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm11[1],xmm6[1]
1256 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm14
1257 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm14[4,5,6,7]
1258 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm1[6,7]
1259 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1260 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],mem[0],ymm3[2],mem[2]
1261 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm9[0],mem[0],ymm9[2],mem[2]
1262 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm3[2,3]
1263 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1264 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm7[0],ymm4[2],ymm7[2]
1265 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm7 = mem[0,0]
1266 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm7[1],xmm2[1]
1267 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1268 ; AVX2-NEXT:    vmovaps (%rdi), %xmm11
1269 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm14
1270 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm7
1271 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
1272 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm15, %ymm15
1273 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm15[0,1,2,3,4,5],ymm7[6,7]
1274 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
1275 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,2,3,3]
1276 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
1277 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2,3,4,5,6,7]
1278 ; AVX2-NEXT:    vmovaps (%rsi), %xmm12
1279 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm12, %ymm12
1280 ; AVX2-NEXT:    vinsertf128 $1, (%rdx), %ymm11, %ymm15
1281 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm15[0],ymm12[0],ymm15[2],ymm12[2]
1282 ; AVX2-NEXT:    vmovaps (%r8), %xmm15
1283 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
1284 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1285 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm10[1],xmm13[1]
1286 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
1287 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1288 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm13
1289 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
1290 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3,4,5,6,7]
1291 ; AVX2-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm13
1292 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm13[6,7]
1293 ; AVX2-NEXT:    vmovaps (%r8), %ymm13
1294 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],mem[0],ymm5[2],mem[2]
1295 ; AVX2-NEXT:    vmovaps (%r9), %ymm0
1296 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],ymm0[0],ymm13[2],ymm0[2]
1297 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]
1298 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm5
1299 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1300 ; AVX2-NEXT:    vbroadcastsd 56(%r9), %ymm3
1301 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
1302 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm14[0],mem[0]
1303 ; AVX2-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
1304 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm6
1305 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
1306 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm15[0],mem[0]
1307 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm6, %ymm6
1308 ; AVX2-NEXT:    vbroadcastsd %xmm2, %ymm2
1309 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5],ymm6[6,7]
1310 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm13[1],ymm0[1],ymm13[3],ymm0[3]
1311 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
1312 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
1313 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm6
1314 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
1315 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
1316 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
1317 ; AVX2-NEXT:    vmovaps %ymm1, 128(%rcx)
1318 ; AVX2-NEXT:    vmovaps %ymm10, 64(%rcx)
1319 ; AVX2-NEXT:    vmovaps %ymm8, 320(%rcx)
1320 ; AVX2-NEXT:    vmovaps %ymm12, (%rcx)
1321 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)
1322 ; AVX2-NEXT:    vmovaps %ymm9, 384(%rcx)
1323 ; AVX2-NEXT:    vmovaps %ymm7, 256(%rcx)
1324 ; AVX2-NEXT:    vmovaps %ymm2, 32(%rcx)
1325 ; AVX2-NEXT:    vmovaps %ymm4, 96(%rcx)
1326 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1327 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)
1328 ; AVX2-NEXT:    vmovaps %ymm5, 224(%rcx)
1329 ; AVX2-NEXT:    vmovaps %ymm3, 416(%rcx)
1330 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1331 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)
1332 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1333 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)
1334 ; AVX2-NEXT:    vzeroupper
1335 ; AVX2-NEXT:    retq
1337 ; AVX2-FP-LABEL: store_i64_stride7_vf8:
1338 ; AVX2-FP:       # %bb.0:
1339 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1340 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm8
1341 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm4
1342 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm7
1343 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm10
1344 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm5
1345 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm9
1346 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm3
1347 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm2
1348 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm0
1349 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm13
1350 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm12
1351 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm7[1],ymm4[3],ymm7[3]
1352 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
1353 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]
1354 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1355 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1356 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm15
1357 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
1358 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm6
1359 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
1360 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm11[1],xmm6[1]
1361 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm14
1362 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm14[4,5,6,7]
1363 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm1[6,7]
1364 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1365 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],mem[0],ymm3[2],mem[2]
1366 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm9[0],mem[0],ymm9[2],mem[2]
1367 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm3[2,3]
1368 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1369 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm7[0],ymm4[2],ymm7[2]
1370 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm7 = mem[0,0]
1371 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm7[1],xmm2[1]
1372 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1373 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm11
1374 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm14
1375 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm7
1376 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
1377 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm15, %ymm15
1378 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm15[0,1,2,3,4,5],ymm7[6,7]
1379 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
1380 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,2,3,3]
1381 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
1382 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2,3,4,5,6,7]
1383 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm12
1384 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm12, %ymm12
1385 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm11, %ymm15
1386 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm15[0],ymm12[0],ymm15[2],ymm12[2]
1387 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm15
1388 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
1389 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1390 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm10[1],xmm13[1]
1391 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
1392 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1393 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm13
1394 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
1395 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3,4,5,6,7]
1396 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm13
1397 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm13[6,7]
1398 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm13
1399 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],mem[0],ymm5[2],mem[2]
1400 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm0
1401 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],ymm0[0],ymm13[2],ymm0[2]
1402 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]
1403 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm5
1404 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1405 ; AVX2-FP-NEXT:    vbroadcastsd 56(%r9), %ymm3
1406 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
1407 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm14[0],mem[0]
1408 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
1409 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
1410 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
1411 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm15[0],mem[0]
1412 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm6, %ymm6
1413 ; AVX2-FP-NEXT:    vbroadcastsd %xmm2, %ymm2
1414 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5],ymm6[6,7]
1415 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm13[1],ymm0[1],ymm13[3],ymm0[3]
1416 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
1417 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
1418 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
1419 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
1420 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
1421 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
1422 ; AVX2-FP-NEXT:    vmovaps %ymm1, 128(%rcx)
1423 ; AVX2-FP-NEXT:    vmovaps %ymm10, 64(%rcx)
1424 ; AVX2-FP-NEXT:    vmovaps %ymm8, 320(%rcx)
1425 ; AVX2-FP-NEXT:    vmovaps %ymm12, (%rcx)
1426 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)
1427 ; AVX2-FP-NEXT:    vmovaps %ymm9, 384(%rcx)
1428 ; AVX2-FP-NEXT:    vmovaps %ymm7, 256(%rcx)
1429 ; AVX2-FP-NEXT:    vmovaps %ymm2, 32(%rcx)
1430 ; AVX2-FP-NEXT:    vmovaps %ymm4, 96(%rcx)
1431 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1432 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)
1433 ; AVX2-FP-NEXT:    vmovaps %ymm5, 224(%rcx)
1434 ; AVX2-FP-NEXT:    vmovaps %ymm3, 416(%rcx)
1435 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1436 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)
1437 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1438 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)
1439 ; AVX2-FP-NEXT:    vzeroupper
1440 ; AVX2-FP-NEXT:    retq
1442 ; AVX2-FCP-LABEL: store_i64_stride7_vf8:
1443 ; AVX2-FCP:       # %bb.0:
1444 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1445 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm8
1446 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm4
1447 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm7
1448 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm10
1449 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm5
1450 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm9
1451 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm3
1452 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm2
1453 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm0
1454 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm13
1455 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm12
1456 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm4[1],ymm7[1],ymm4[3],ymm7[3]
1457 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
1458 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm5[6,7]
1459 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
1460 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1461 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm15
1462 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm1
1463 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm6
1464 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm11 = mem[0,0]
1465 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm11 = xmm11[1],xmm6[1]
1466 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm14
1467 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3],ymm14[4,5,6,7]
1468 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm11[0,1,2,3,4,5],ymm1[6,7]
1469 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1470 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],mem[0],ymm3[2],mem[2]
1471 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm9[0],mem[0],ymm9[2],mem[2]
1472 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm11[2,3],ymm3[2,3]
1473 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
1474 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],ymm7[0],ymm4[2],ymm7[2]
1475 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm7 = mem[0,0]
1476 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm7 = xmm7[1],xmm2[1]
1477 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm7[0,1,2,3],ymm4[4,5,6,7]
1478 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm11
1479 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm14
1480 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm7
1481 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
1482 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm15, %ymm15
1483 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm15[0,1,2,3,4,5],ymm7[6,7]
1484 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm15 = ymm8[1],ymm10[1],ymm8[3],ymm10[3]
1485 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm15 = ymm15[0,2,3,3]
1486 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm15[0,1,2,3,4,5],ymm9[6,7]
1487 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm12[0,1],ymm9[2,3,4,5,6,7]
1488 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm12
1489 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm12, %ymm12
1490 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm11, %ymm15
1491 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm12 = ymm15[0],ymm12[0],ymm15[2],ymm12[2]
1492 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm15
1493 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm8[0],ymm10[0],ymm8[2],ymm10[2]
1494 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1495 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm10 = xmm10[1],xmm13[1]
1496 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm10[0,1,2,3],ymm8[4,5,6,7]
1497 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm10 = mem[0,0]
1498 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm13
1499 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm5[0,1,2,3],ymm13[4,5,6,7]
1500 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1],ymm13[2,3,4,5,6,7]
1501 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm15, %ymm0, %ymm13
1502 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm10[0,1,2,3,4,5],ymm13[6,7]
1503 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm13
1504 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],mem[0],ymm5[2],mem[2]
1505 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm0
1506 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm13[0],ymm0[0],ymm13[2],ymm0[2]
1507 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm5[2,3],ymm1[2,3]
1508 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm5
1509 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
1510 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%r9), %ymm3
1511 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1,2,3],ymm3[4,5,6,7]
1512 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm14[0],mem[0]
1513 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
1514 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
1515 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
1516 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm15[0],mem[0]
1517 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm6, %ymm6
1518 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm2, %ymm2
1519 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3],ymm2[4,5],ymm6[6,7]
1520 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm13[1],ymm0[1],ymm13[3],ymm0[3]
1521 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
1522 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
1523 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
1524 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
1525 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
1526 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
1527 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 128(%rcx)
1528 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 64(%rcx)
1529 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 320(%rcx)
1530 ; AVX2-FCP-NEXT:    vmovaps %ymm12, (%rcx)
1531 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)
1532 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 384(%rcx)
1533 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 256(%rcx)
1534 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 32(%rcx)
1535 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 96(%rcx)
1536 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1537 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rcx)
1538 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 224(%rcx)
1539 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 416(%rcx)
1540 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1541 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)
1542 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
1543 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)
1544 ; AVX2-FCP-NEXT:    vzeroupper
1545 ; AVX2-FCP-NEXT:    retq
1547 ; AVX512-LABEL: store_i64_stride7_vf8:
1548 ; AVX512:       # %bb.0:
1549 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1550 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1551 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm5
1552 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm6
1553 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm8
1554 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm7
1555 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm0
1556 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm2
1557 ; AVX512-NEXT:    vmovdqa64 (%r10), %zmm1
1558 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [15,7,15,7,15,7,15,7]
1559 ; AVX512-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1560 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm9
1561 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
1562 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
1563 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm8, %zmm4
1564 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm11
1565 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
1566 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1567 ; AVX512-NEXT:    vpermi2q %zmm8, %zmm7, %zmm10
1568 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm13
1569 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm3, %zmm13
1570 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,8,0,1,0,8,0,1]
1571 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1572 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm5, %zmm8
1573 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,6,14,6,14,6,14]
1574 ; AVX512-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1575 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm14, %zmm9
1576 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm5, %zmm14
1577 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
1578 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1579 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm5, %zmm15
1580 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,5,13,5,13,5,13,5]
1581 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1582 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm12, %zmm11
1583 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [1,0,10,2,1,0,10,2]
1584 ; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
1585 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
1586 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm5, %zmm12
1587 ; AVX512-NEXT:    movb $48, %sil
1588 ; AVX512-NEXT:    kmovw %esi, %k1
1589 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k1} = zmm5[0],zmm6[0],zmm5[2],zmm6[2],zmm5[4],zmm6[4],zmm5[6],zmm6[6]
1590 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm3, %zmm5
1591 ; AVX512-NEXT:    movb $24, %sil
1592 ; AVX512-NEXT:    kmovw %esi, %k1
1593 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm5 {%k1}
1594 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
1595 ; AVX512-NEXT:    movb $96, %sil
1596 ; AVX512-NEXT:    kmovw %esi, %k1
1597 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm5 {%k1}
1598 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
1599 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm5, %zmm3
1600 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm5
1601 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
1602 ; AVX512-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
1603 ; AVX512-NEXT:    movb $12, %sil
1604 ; AVX512-NEXT:    kmovw %esi, %k2
1605 ; AVX512-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm8 {%k2}
1606 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [0,8,0,8,0,8,0,8]
1607 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1608 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm5
1609 ; AVX512-NEXT:    vinserti32x4 $3, (%r10), %zmm5, %zmm5
1610 ; AVX512-NEXT:    movb $112, %sil
1611 ; AVX512-NEXT:    kmovw %esi, %k2
1612 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm8 {%k2}
1613 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm14[0,1,2,3],zmm9[4,5,6,7]
1614 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [5,0,14,6,5,0,14,6]
1615 ; AVX512-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1616 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
1617 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
1618 ; AVX512-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1619 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm6, %zmm9
1620 ; AVX512-NEXT:    movb $-61, %sil
1621 ; AVX512-NEXT:    kmovw %esi, %k2
1622 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm5 {%k2}
1623 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm4 {%k1}
1624 ; AVX512-NEXT:    vmovdqa (%r9), %ymm6
1625 ; AVX512-NEXT:    vmovdqa (%r8), %ymm9
1626 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm13 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
1627 ; AVX512-NEXT:    movb $28, %sil
1628 ; AVX512-NEXT:    kmovw %esi, %k2
1629 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm13[2,3,2,3],zmm1[2,3,2,3]
1630 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm13
1631 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm13 = mem[0,1,2,3],ymm13[4,5,6,7]
1632 ; AVX512-NEXT:    movb $6, %cl
1633 ; AVX512-NEXT:    kmovw %ecx, %k2
1634 ; AVX512-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm7 {%k2}
1635 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [9,1,9,1,9,1,9,1]
1636 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1637 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm13
1638 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [4,9,0,3,4,9,0,3]
1639 ; AVX512-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
1640 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm13, %zmm14
1641 ; AVX512-NEXT:    movb $56, %cl
1642 ; AVX512-NEXT:    kmovw %ecx, %k2
1643 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm7 {%k2}
1644 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
1645 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,12,0,5,4,12,0,5]
1646 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
1647 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm0, %zmm11
1648 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,12,7,0,1,12,7]
1649 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
1650 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm11, %zmm0
1651 ; AVX512-NEXT:    movb $120, %cl
1652 ; AVX512-NEXT:    kmovw %ecx, %k1
1653 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0 {%k1}
1654 ; AVX512-NEXT:    vpunpckhqdq {{.*#+}} ymm1 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
1655 ; AVX512-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,2,3,3]
1656 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
1657 ; AVX512-NEXT:    movb $14, %cl
1658 ; AVX512-NEXT:    kmovw %ecx, %k1
1659 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm10 {%k1}
1660 ; AVX512-NEXT:    vmovdqa64 %zmm0, 256(%rax)
1661 ; AVX512-NEXT:    vmovdqa64 %zmm7, 64(%rax)
1662 ; AVX512-NEXT:    vmovdqa64 %zmm4, 128(%rax)
1663 ; AVX512-NEXT:    vmovdqa64 %zmm5, 320(%rax)
1664 ; AVX512-NEXT:    vmovdqa64 %zmm8, (%rax)
1665 ; AVX512-NEXT:    vmovdqa64 %zmm3, 384(%rax)
1666 ; AVX512-NEXT:    vmovdqa64 %zmm10, 192(%rax)
1667 ; AVX512-NEXT:    vzeroupper
1668 ; AVX512-NEXT:    retq
1670 ; AVX512-FCP-LABEL: store_i64_stride7_vf8:
1671 ; AVX512-FCP:       # %bb.0:
1672 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1673 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1674 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
1675 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
1676 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
1677 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm7
1678 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
1679 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm3
1680 ; AVX512-FCP-NEXT:    vmovdqa64 (%r10), %zmm1
1681 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [15,7,15,7,15,7,15,7]
1682 ; AVX512-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
1684 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm8
1685 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9
1686 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm9
1687 ; AVX512-FCP-NEXT:    movb $24, %sil
1688 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
1689 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
1690 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm6
1691 ; AVX512-FCP-NEXT:    movb $96, %sil
1692 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
1693 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k1}
1694 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [14,1,2,3,4,5,6,15]
1695 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm9, %zmm6
1696 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,8,0,1,0,8,0,1]
1697 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1698 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm8
1699 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm9
1700 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm9 = xmm9[0],mem[0]
1701 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
1702 ; AVX512-FCP-NEXT:    movb $12, %sil
1703 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1704 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm8 {%k2}
1705 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [0,8,0,8,0,8,0,8]
1706 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1707 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
1708 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%r10), %zmm9, %zmm9
1709 ; AVX512-FCP-NEXT:    movb $112, %sil
1710 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1711 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8 {%k2}
1712 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
1713 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1714 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
1715 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm9, %zmm10
1716 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm9
1717 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm9[0,1,2,3],zmm10[4,5,6,7]
1718 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [5,0,14,6,5,0,14,6]
1719 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1720 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm10
1721 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,13,6,7,0,13,6,7]
1722 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
1723 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm10, %zmm11
1724 ; AVX512-FCP-NEXT:    movb $-61, %sil
1725 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1726 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
1727 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
1728 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1729 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm7, %zmm10
1730 ; AVX512-FCP-NEXT:    movb $48, %sil
1731 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1732 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k2} = zmm0[0],zmm5[0],zmm0[2],zmm5[2],zmm0[4],zmm5[4],zmm0[6],zmm5[6]
1733 ; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm11
1734 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm12
1735 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm13 = [1,3,7,0]
1736 ; AVX512-FCP-NEXT:    vpermi2q %ymm11, %ymm12, %ymm13
1737 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
1738 ; AVX512-FCP-NEXT:    movb $14, %sil
1739 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1740 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm10 {%k2}
1741 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [11,3,11,3,11,3,11,3]
1742 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1743 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm13
1744 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [2,10,0,3,2,10,0,3]
1745 ; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
1746 ; AVX512-FCP-NEXT:    vpermi2q %zmm7, %zmm4, %zmm14
1747 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
1748 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
1749 ; AVX512-FCP-NEXT:    movb $28, %sil
1750 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
1751 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm11[2,3,2,3],zmm1[2,3,2,3]
1752 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
1753 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
1754 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm11
1755 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm12
1756 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = mem[0,1,2,3],ymm12[4,5,6,7]
1757 ; AVX512-FCP-NEXT:    movb $6, %cl
1758 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
1759 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm0, %zmm11 {%k2}
1760 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
1761 ; AVX512-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1762 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
1763 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
1764 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
1765 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm12, %zmm13
1766 ; AVX512-FCP-NEXT:    movb $56, %cl
1767 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
1768 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
1769 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,5,13,5,13,5,13,5]
1770 ; AVX512-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1771 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm4
1772 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm0
1773 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
1774 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,12,0,5,4,12,0,5]
1775 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
1776 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm4
1777 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
1778 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
1779 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm2
1780 ; AVX512-FCP-NEXT:    movb $120, %cl
1781 ; AVX512-FCP-NEXT:    kmovw %ecx, %k1
1782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
1783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 256(%rax)
1784 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rax)
1785 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
1786 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 192(%rax)
1787 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
1788 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)
1789 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 384(%rax)
1790 ; AVX512-FCP-NEXT:    vzeroupper
1791 ; AVX512-FCP-NEXT:    retq
1793 ; AVX512DQ-LABEL: store_i64_stride7_vf8:
1794 ; AVX512DQ:       # %bb.0:
1795 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1796 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1797 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm4
1798 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm5
1799 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm7
1800 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm6
1801 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm0
1802 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm2
1803 ; AVX512DQ-NEXT:    vmovdqa64 (%r10), %zmm1
1804 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [6,14,6,14,6,14,6,14]
1805 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1806 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [2,10,0,3,2,10,0,3]
1807 ; AVX512DQ-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
1808 ; AVX512DQ-NEXT:    vpermi2q %zmm6, %zmm7, %zmm3
1809 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm9
1810 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm11
1811 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
1812 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
1813 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
1814 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm8, %zmm7
1815 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1816 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm8[0,1,2,3],zmm7[4,5,6,7]
1817 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [5,0,14,6,5,0,14,6]
1818 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1819 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm8
1820 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,13,6,7,0,13,6,7]
1821 ; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
1822 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm8, %zmm12
1823 ; AVX512DQ-NEXT:    movb $-61, %sil
1824 ; AVX512DQ-NEXT:    kmovw %esi, %k1
1825 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
1826 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
1827 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1828 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
1829 ; AVX512DQ-NEXT:    movb $96, %sil
1830 ; AVX512DQ-NEXT:    kmovw %esi, %k1
1831 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3 {%k1}
1832 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm8
1833 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm12
1834 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm13 = ymm12[0],ymm8[0],ymm12[2],ymm8[2]
1835 ; AVX512DQ-NEXT:    movb $28, %sil
1836 ; AVX512DQ-NEXT:    kmovw %esi, %k2
1837 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm13[2,3,2,3],zmm1[2,3,2,3]
1838 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [15,7,15,7,15,7,15,7]
1839 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1840 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm13, %zmm9
1841 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
1842 ; AVX512DQ-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
1843 ; AVX512DQ-NEXT:    vpermi2q %zmm4, %zmm5, %zmm14
1844 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [13,5,13,5,13,5,13,5]
1845 ; AVX512DQ-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1846 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm15, %zmm11
1847 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,8,0,1,0,8,0,1]
1848 ; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
1849 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
1850 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm4, %zmm15
1851 ; AVX512DQ-NEXT:    movb $48, %sil
1852 ; AVX512DQ-NEXT:    kmovw %esi, %k2
1853 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k2} = zmm4[0],zmm5[0],zmm4[2],zmm5[2],zmm4[4],zmm5[4],zmm4[6],zmm5[6]
1854 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm13, %zmm4
1855 ; AVX512DQ-NEXT:    movb $24, %sil
1856 ; AVX512DQ-NEXT:    kmovw %esi, %k2
1857 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k2}
1858 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm13
1859 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm4 {%k1}
1860 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [14,1,2,3,4,5,6,15]
1861 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm4, %zmm5
1862 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm4
1863 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
1864 ; AVX512DQ-NEXT:    movb $6, %sil
1865 ; AVX512DQ-NEXT:    kmovw %esi, %k2
1866 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
1867 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [9,1,9,1,9,1,9,1]
1868 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1869 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
1870 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,9,0,3,4,9,0,3]
1871 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1872 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm4, %zmm9
1873 ; AVX512DQ-NEXT:    movb $56, %sil
1874 ; AVX512DQ-NEXT:    kmovw %esi, %k2
1875 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k2}
1876 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm4
1877 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
1878 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
1879 ; AVX512DQ-NEXT:    movb $12, %cl
1880 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
1881 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm6 {%k2}
1882 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [0,8,0,8,0,8,0,8]
1883 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1884 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
1885 ; AVX512DQ-NEXT:    movb $112, %cl
1886 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
1887 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%r10), %zmm4, %zmm6 {%k2}
1888 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm15 {%k1}
1889 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,12,0,5,4,12,0,5]
1890 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
1891 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
1892 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,12,7,0,1,12,7]
1893 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
1894 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm4, %zmm0
1895 ; AVX512DQ-NEXT:    movb $120, %cl
1896 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
1897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm0 {%k1}
1898 ; AVX512DQ-NEXT:    vpunpckhqdq {{.*#+}} ymm1 = ymm12[1],ymm8[1],ymm12[3],ymm8[3]
1899 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,2,3,3]
1900 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
1901 ; AVX512DQ-NEXT:    movb $14, %cl
1902 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
1903 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm10 {%k1}
1904 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 256(%rax)
1905 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, (%rax)
1906 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 64(%rax)
1907 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 384(%rax)
1908 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 128(%rax)
1909 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 192(%rax)
1910 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 320(%rax)
1911 ; AVX512DQ-NEXT:    vzeroupper
1912 ; AVX512DQ-NEXT:    retq
1914 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf8:
1915 ; AVX512DQ-FCP:       # %bb.0:
1916 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
1917 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
1918 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
1919 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm6
1920 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm5
1921 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm7
1922 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
1923 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm4
1924 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
1925 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
1926 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1927 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
1928 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm8
1929 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm1
1930 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm1[0,1,2,3],zmm8[4,5,6,7]
1931 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [5,0,14,6,5,0,14,6]
1932 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1933 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm8
1934 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
1935 ; AVX512DQ-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1936 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm8, %zmm9
1937 ; AVX512DQ-FCP-NEXT:    movb $-61, %sil
1938 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
1939 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1 {%k1}
1940 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
1941 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
1942 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm7, %zmm8
1943 ; AVX512DQ-FCP-NEXT:    movb $48, %sil
1944 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
1945 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k1} = zmm0[0],zmm6[0],zmm0[2],zmm6[2],zmm0[4],zmm6[4],zmm0[6],zmm6[6]
1946 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm10
1947 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm11
1948 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm9 = [1,3,7,0]
1949 ; AVX512DQ-FCP-NEXT:    vpermi2q %ymm10, %ymm11, %ymm9
1950 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
1951 ; AVX512DQ-FCP-NEXT:    movb $14, %sil
1952 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
1953 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm8 {%k1}
1954 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [11,3,11,3,11,3,11,3]
1955 ; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1956 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm12
1957 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [2,10,0,3,2,10,0,3]
1958 ; AVX512DQ-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
1959 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm7, %zmm5, %zmm9
1960 ; AVX512DQ-FCP-NEXT:    movb $96, %sil
1961 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
1962 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9 {%k1}
1963 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm10 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
1964 ; AVX512DQ-FCP-NEXT:    movb $28, %sil
1965 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
1966 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 {%k2} = zmm10[2,3,2,3],zmm2[2,3,2,3]
1967 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [15,7,15,7,15,7,15,7]
1968 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1969 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm11
1970 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm10, %zmm11
1971 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
1972 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm12
1973 ; AVX512DQ-FCP-NEXT:    movb $24, %sil
1974 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
1975 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k2}
1976 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm10
1977 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12 {%k1}
1978 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [14,1,2,3,4,5,6,15]
1979 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm12, %zmm10
1980 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
1981 ; AVX512DQ-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
1982 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm6, %zmm11
1983 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm12
1984 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = mem[0,1,2,3],ymm12[4,5,6,7]
1985 ; AVX512DQ-FCP-NEXT:    movb $6, %sil
1986 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
1987 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm0, %zmm11 {%k2}
1988 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
1989 ; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
1990 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm12
1991 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
1992 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
1993 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm12, %zmm13
1994 ; AVX512DQ-FCP-NEXT:    movb $56, %sil
1995 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
1996 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
1997 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,8,0,1,0,8,0,1]
1998 ; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
1999 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm12
2000 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm13
2001 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm13 = xmm13[0],mem[0]
2002 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm13, %ymm0, %ymm13
2003 ; AVX512DQ-FCP-NEXT:    movb $12, %cl
2004 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
2005 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm12 {%k2}
2006 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,0,8,0,8,0,8]
2007 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2008 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm13
2009 ; AVX512DQ-FCP-NEXT:    movb $112, %cl
2010 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
2011 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%r10), %zmm13, %zmm12 {%k2}
2012 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
2013 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2014 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm5
2015 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm13, %zmm0
2016 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
2017 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,12,0,5,4,12,0,5]
2018 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
2019 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm5
2020 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [0,1,12,7,0,1,12,7]
2021 ; AVX512DQ-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
2022 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
2023 ; AVX512DQ-FCP-NEXT:    movb $120, %cl
2024 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k1
2025 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
2026 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 256(%rax)
2027 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
2028 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rax)
2029 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 384(%rax)
2030 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
2031 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 192(%rax)
2032 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 320(%rax)
2033 ; AVX512DQ-FCP-NEXT:    vzeroupper
2034 ; AVX512DQ-FCP-NEXT:    retq
2036 ; AVX512BW-LABEL: store_i64_stride7_vf8:
2037 ; AVX512BW:       # %bb.0:
2038 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2039 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2040 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm5
2041 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm6
2042 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm8
2043 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm7
2044 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
2045 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm2
2046 ; AVX512BW-NEXT:    vmovdqa64 (%r10), %zmm1
2047 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [15,7,15,7,15,7,15,7]
2048 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2049 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm9
2050 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
2051 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
2052 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm8, %zmm4
2053 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11
2054 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
2055 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2056 ; AVX512BW-NEXT:    vpermi2q %zmm8, %zmm7, %zmm10
2057 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm13
2058 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm3, %zmm13
2059 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,8,0,1,0,8,0,1]
2060 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2061 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm5, %zmm8
2062 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [6,14,6,14,6,14,6,14]
2063 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2064 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm14, %zmm9
2065 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm5, %zmm14
2066 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
2067 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2068 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm5, %zmm15
2069 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,5,13,5,13,5,13,5]
2070 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2071 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm12, %zmm11
2072 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [1,0,10,2,1,0,10,2]
2073 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
2074 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm6, %zmm7
2075 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm5, %zmm12
2076 ; AVX512BW-NEXT:    movb $48, %sil
2077 ; AVX512BW-NEXT:    kmovd %esi, %k1
2078 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k1} = zmm5[0],zmm6[0],zmm5[2],zmm6[2],zmm5[4],zmm6[4],zmm5[6],zmm6[6]
2079 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm3, %zmm5
2080 ; AVX512BW-NEXT:    movb $24, %sil
2081 ; AVX512BW-NEXT:    kmovd %esi, %k1
2082 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm5 {%k1}
2083 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm3
2084 ; AVX512BW-NEXT:    movb $96, %sil
2085 ; AVX512BW-NEXT:    kmovd %esi, %k1
2086 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm5 {%k1}
2087 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
2088 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm5, %zmm3
2089 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm5
2090 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
2091 ; AVX512BW-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
2092 ; AVX512BW-NEXT:    movb $12, %sil
2093 ; AVX512BW-NEXT:    kmovd %esi, %k2
2094 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm8 {%k2}
2095 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [0,8,0,8,0,8,0,8]
2096 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2097 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm5
2098 ; AVX512BW-NEXT:    vinserti32x4 $3, (%r10), %zmm5, %zmm5
2099 ; AVX512BW-NEXT:    movb $112, %sil
2100 ; AVX512BW-NEXT:    kmovd %esi, %k2
2101 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm8 {%k2}
2102 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 = zmm14[0,1,2,3],zmm9[4,5,6,7]
2103 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [5,0,14,6,5,0,14,6]
2104 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
2105 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
2106 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
2107 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2108 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm6, %zmm9
2109 ; AVX512BW-NEXT:    movb $-61, %sil
2110 ; AVX512BW-NEXT:    kmovd %esi, %k2
2111 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm5 {%k2}
2112 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm4 {%k1}
2113 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm6
2114 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm9
2115 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm13 = ymm9[0],ymm6[0],ymm9[2],ymm6[2]
2116 ; AVX512BW-NEXT:    movb $28, %sil
2117 ; AVX512BW-NEXT:    kmovd %esi, %k2
2118 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm13[2,3,2,3],zmm1[2,3,2,3]
2119 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm13
2120 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm13 = mem[0,1,2,3],ymm13[4,5,6,7]
2121 ; AVX512BW-NEXT:    movb $6, %cl
2122 ; AVX512BW-NEXT:    kmovd %ecx, %k2
2123 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm7 {%k2}
2124 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [9,1,9,1,9,1,9,1]
2125 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2126 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm13
2127 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [4,9,0,3,4,9,0,3]
2128 ; AVX512BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
2129 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm13, %zmm14
2130 ; AVX512BW-NEXT:    movb $56, %cl
2131 ; AVX512BW-NEXT:    kmovd %ecx, %k2
2132 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm7 {%k2}
2133 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k1}
2134 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,12,0,5,4,12,0,5]
2135 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2136 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm11
2137 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,12,7,0,1,12,7]
2138 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
2139 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm11, %zmm0
2140 ; AVX512BW-NEXT:    movb $120, %cl
2141 ; AVX512BW-NEXT:    kmovd %ecx, %k1
2142 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0 {%k1}
2143 ; AVX512BW-NEXT:    vpunpckhqdq {{.*#+}} ymm1 = ymm9[1],ymm6[1],ymm9[3],ymm6[3]
2144 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,2,3,3]
2145 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
2146 ; AVX512BW-NEXT:    movb $14, %cl
2147 ; AVX512BW-NEXT:    kmovd %ecx, %k1
2148 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm10 {%k1}
2149 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 256(%rax)
2150 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 64(%rax)
2151 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 128(%rax)
2152 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 320(%rax)
2153 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, (%rax)
2154 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 384(%rax)
2155 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
2156 ; AVX512BW-NEXT:    vzeroupper
2157 ; AVX512BW-NEXT:    retq
2159 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf8:
2160 ; AVX512BW-FCP:       # %bb.0:
2161 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2162 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2163 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
2164 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm5
2165 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm4
2166 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm7
2167 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm2
2168 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm3
2169 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm1
2170 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [15,7,15,7,15,7,15,7]
2171 ; AVX512BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2172 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm8
2173 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm8
2174 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9
2175 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm9
2176 ; AVX512BW-FCP-NEXT:    movb $24, %sil
2177 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
2178 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm9 {%k1}
2179 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm6
2180 ; AVX512BW-FCP-NEXT:    movb $96, %sil
2181 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
2182 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k1}
2183 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [14,1,2,3,4,5,6,15]
2184 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm9, %zmm6
2185 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,8,0,1,0,8,0,1]
2186 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2187 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm8
2188 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm9
2189 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm9 = xmm9[0],mem[0]
2190 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm9, %ymm0, %ymm9
2191 ; AVX512BW-FCP-NEXT:    movb $12, %sil
2192 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2193 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm8 {%k2}
2194 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [0,8,0,8,0,8,0,8]
2195 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2196 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm9
2197 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%r10), %zmm9, %zmm9
2198 ; AVX512BW-FCP-NEXT:    movb $112, %sil
2199 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2200 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8 {%k2}
2201 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
2202 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2203 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm10
2204 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm9, %zmm10
2205 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm9
2206 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 = zmm9[0,1,2,3],zmm10[4,5,6,7]
2207 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [5,0,14,6,5,0,14,6]
2208 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2209 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm10
2210 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,13,6,7,0,13,6,7]
2211 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2212 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm10, %zmm11
2213 ; AVX512BW-FCP-NEXT:    movb $-61, %sil
2214 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2215 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm9 {%k2}
2216 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
2217 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2218 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm7, %zmm10
2219 ; AVX512BW-FCP-NEXT:    movb $48, %sil
2220 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2221 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k2} = zmm0[0],zmm5[0],zmm0[2],zmm5[2],zmm0[4],zmm5[4],zmm0[6],zmm5[6]
2222 ; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %ymm11
2223 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm12
2224 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm13 = [1,3,7,0]
2225 ; AVX512BW-FCP-NEXT:    vpermi2q %ymm11, %ymm12, %ymm13
2226 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm13 = ymm13[0,1,2,3,4,5],mem[6,7]
2227 ; AVX512BW-FCP-NEXT:    movb $14, %sil
2228 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2229 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm10 {%k2}
2230 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [11,3,11,3,11,3,11,3]
2231 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2232 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm0, %zmm13
2233 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [2,10,0,3,2,10,0,3]
2234 ; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
2235 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm7, %zmm4, %zmm14
2236 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm14 {%k1}
2237 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm11 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
2238 ; AVX512BW-FCP-NEXT:    movb $28, %sil
2239 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
2240 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm11[2,3,2,3],zmm1[2,3,2,3]
2241 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
2242 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2243 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm5, %zmm11
2244 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm12
2245 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = mem[0,1,2,3],ymm12[4,5,6,7]
2246 ; AVX512BW-FCP-NEXT:    movb $6, %cl
2247 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
2248 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm0, %zmm11 {%k2}
2249 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
2250 ; AVX512BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2251 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
2252 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
2253 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
2254 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm12, %zmm13
2255 ; AVX512BW-FCP-NEXT:    movb $56, %cl
2256 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
2257 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
2258 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [13,5,13,5,13,5,13,5]
2259 ; AVX512BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2260 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm4
2261 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm0
2262 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0 {%k1}
2263 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,12,0,5,4,12,0,5]
2264 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
2265 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm4
2266 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
2267 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
2268 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm2
2269 ; AVX512BW-FCP-NEXT:    movb $120, %cl
2270 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k1
2271 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
2272 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 256(%rax)
2273 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rax)
2274 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 128(%rax)
2275 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 192(%rax)
2276 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
2277 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)
2278 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 384(%rax)
2279 ; AVX512BW-FCP-NEXT:    vzeroupper
2280 ; AVX512BW-FCP-NEXT:    retq
2282 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf8:
2283 ; AVX512DQ-BW:       # %bb.0:
2284 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2285 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2286 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm4
2287 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm5
2288 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm7
2289 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm6
2290 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm0
2291 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm2
2292 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r10), %zmm1
2293 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [6,14,6,14,6,14,6,14]
2294 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2295 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [2,10,0,3,2,10,0,3]
2296 ; AVX512DQ-BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
2297 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm3
2298 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm9
2299 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm11
2300 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [3,0,12,4,3,0,12,4]
2301 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
2302 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
2303 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm7
2304 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
2305 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm7 = zmm8[0,1,2,3],zmm7[4,5,6,7]
2306 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [5,0,14,6,5,0,14,6]
2307 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2308 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm8
2309 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,13,6,7,0,13,6,7]
2310 ; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
2311 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm8, %zmm12
2312 ; AVX512DQ-BW-NEXT:    movb $-61, %sil
2313 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
2314 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
2315 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
2316 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2317 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm8
2318 ; AVX512DQ-BW-NEXT:    movb $96, %sil
2319 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
2320 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3 {%k1}
2321 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm8
2322 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm12
2323 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm13 = ymm12[0],ymm8[0],ymm12[2],ymm8[2]
2324 ; AVX512DQ-BW-NEXT:    movb $28, %sil
2325 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
2326 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm13[2,3,2,3],zmm1[2,3,2,3]
2327 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [15,7,15,7,15,7,15,7]
2328 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2329 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm13, %zmm9
2330 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
2331 ; AVX512DQ-BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
2332 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm4, %zmm5, %zmm14
2333 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [13,5,13,5,13,5,13,5]
2334 ; AVX512DQ-BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2335 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm15, %zmm11
2336 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,8,0,1,0,8,0,1]
2337 ; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
2338 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
2339 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm4, %zmm15
2340 ; AVX512DQ-BW-NEXT:    movb $48, %sil
2341 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
2342 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm10 {%k2} = zmm4[0],zmm5[0],zmm4[2],zmm5[2],zmm4[4],zmm5[4],zmm4[6],zmm5[6]
2343 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm4
2344 ; AVX512DQ-BW-NEXT:    movb $24, %sil
2345 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
2346 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm4 {%k2}
2347 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm13
2348 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm4 {%k1}
2349 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [14,1,2,3,4,5,6,15]
2350 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm4, %zmm5
2351 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm4
2352 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
2353 ; AVX512DQ-BW-NEXT:    movb $6, %sil
2354 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
2355 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
2356 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [9,1,9,1,9,1,9,1]
2357 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2358 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
2359 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,9,0,3,4,9,0,3]
2360 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2361 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm4, %zmm9
2362 ; AVX512DQ-BW-NEXT:    movb $56, %sil
2363 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
2364 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm14 {%k2}
2365 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm4
2366 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
2367 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
2368 ; AVX512DQ-BW-NEXT:    movb $12, %cl
2369 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
2370 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm6 {%k2}
2371 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [0,8,0,8,0,8,0,8]
2372 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2373 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
2374 ; AVX512DQ-BW-NEXT:    movb $112, %cl
2375 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
2376 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%r10), %zmm4, %zmm6 {%k2}
2377 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm15 {%k1}
2378 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,12,0,5,4,12,0,5]
2379 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
2380 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm4
2381 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [0,1,12,7,0,1,12,7]
2382 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
2383 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm4, %zmm0
2384 ; AVX512DQ-BW-NEXT:    movb $120, %cl
2385 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
2386 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm0 {%k1}
2387 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{.*#+}} ymm1 = ymm12[1],ymm8[1],ymm12[3],ymm8[3]
2388 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm1 = ymm1[0,2,3,3]
2389 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
2390 ; AVX512DQ-BW-NEXT:    movb $14, %cl
2391 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
2392 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm10 {%k1}
2393 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 256(%rax)
2394 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, (%rax)
2395 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 64(%rax)
2396 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 384(%rax)
2397 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 128(%rax)
2398 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
2399 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 320(%rax)
2400 ; AVX512DQ-BW-NEXT:    vzeroupper
2401 ; AVX512DQ-BW-NEXT:    retq
2403 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf8:
2404 ; AVX512DQ-BW-FCP:       # %bb.0:
2405 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2406 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %r10
2407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
2408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm6
2409 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm5
2410 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm7
2411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
2412 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm4
2413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r10), %zmm2
2414 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
2415 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm8
2417 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm8
2418 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm1
2419 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm1[0,1,2,3],zmm8[4,5,6,7]
2420 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [5,0,14,6,5,0,14,6]
2421 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2422 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm8
2423 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
2424 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2425 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm8, %zmm9
2426 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %sil
2427 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
2428 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1 {%k1}
2429 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
2430 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
2431 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm7, %zmm8
2432 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %sil
2433 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
2434 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k1} = zmm0[0],zmm6[0],zmm0[2],zmm6[2],zmm0[4],zmm6[4],zmm0[6],zmm6[6]
2435 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %ymm10
2436 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm11
2437 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm9 = [1,3,7,0]
2438 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %ymm10, %ymm11, %ymm9
2439 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
2440 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %sil
2441 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
2442 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm8 {%k1}
2443 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [11,3,11,3,11,3,11,3]
2444 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2445 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm12
2446 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [2,10,0,3,2,10,0,3]
2447 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
2448 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm7, %zmm5, %zmm9
2449 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %sil
2450 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
2451 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9 {%k1}
2452 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm10 = ymm11[0],ymm10[0],ymm11[2],ymm10[2]
2453 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %sil
2454 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
2455 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm9 {%k2} = zmm10[2,3,2,3],zmm2[2,3,2,3]
2456 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [15,7,15,7,15,7,15,7]
2457 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2458 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm11
2459 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm10, %zmm11
2460 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
2461 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm12
2462 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %sil
2463 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
2464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm12 {%k2}
2465 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm10
2466 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm12 {%k1}
2467 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [14,1,2,3,4,5,6,15]
2468 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm12, %zmm10
2469 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
2470 ; AVX512DQ-BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
2471 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm6, %zmm11
2472 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm12
2473 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm12 = mem[0,1,2,3],ymm12[4,5,6,7]
2474 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %sil
2475 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
2476 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm12, %zmm0, %zmm11 {%k2}
2477 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
2478 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2479 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm12
2480 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
2481 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
2482 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm12, %zmm13
2483 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %sil
2484 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
2485 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k2}
2486 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,8,0,1,0,8,0,1]
2487 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
2488 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm6, %zmm0, %zmm12
2489 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm13
2490 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm13 = xmm13[0],mem[0]
2491 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm13, %ymm0, %ymm13
2492 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %cl
2493 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
2494 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm13, %zmm0, %zmm12 {%k2}
2495 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [0,8,0,8,0,8,0,8]
2496 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2497 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm13
2498 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %cl
2499 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
2500 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%r10), %zmm13, %zmm12 {%k2}
2501 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
2502 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
2503 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm5
2504 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm13, %zmm0
2505 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
2506 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,12,0,5,4,12,0,5]
2507 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
2508 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm3, %zmm5
2509 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [0,1,12,7,0,1,12,7]
2510 ; AVX512DQ-BW-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
2511 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
2512 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %cl
2513 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k1
2514 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
2515 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 256(%rax)
2516 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
2517 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 64(%rax)
2518 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 384(%rax)
2519 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 128(%rax)
2520 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 192(%rax)
2521 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 320(%rax)
2522 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
2523 ; AVX512DQ-BW-FCP-NEXT:    retq
2524   %in.vec0 = load <8 x i64>, ptr %in.vecptr0, align 64
2525   %in.vec1 = load <8 x i64>, ptr %in.vecptr1, align 64
2526   %in.vec2 = load <8 x i64>, ptr %in.vecptr2, align 64
2527   %in.vec3 = load <8 x i64>, ptr %in.vecptr3, align 64
2528   %in.vec4 = load <8 x i64>, ptr %in.vecptr4, align 64
2529   %in.vec5 = load <8 x i64>, ptr %in.vecptr5, align 64
2530   %in.vec6 = load <8 x i64>, ptr %in.vecptr6, align 64
2531   %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>
2532   %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>
2533   %3 = shufflevector <8 x i64> %in.vec4, <8 x i64> %in.vec5, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
2534   %4 = 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>
2535   %5 = shufflevector <8 x i64> %in.vec6, <8 x i64> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2536   %6 = shufflevector <16 x i64> %3, <16 x i64> %5, <24 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23>
2537   %7 = shufflevector <24 x i64> %6, <24 x i64> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
2538   %8 = shufflevector <32 x i64> %4, <32 x i64> %7, <56 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>
2539   %interleaved.vec = shufflevector <56 x i64> %8, <56 x i64> poison, <56 x i32> <i32 0, i32 8, i32 16, i32 24, i32 32, i32 40, i32 48, i32 1, i32 9, i32 17, i32 25, i32 33, i32 41, i32 49, i32 2, i32 10, i32 18, i32 26, i32 34, i32 42, i32 50, i32 3, i32 11, i32 19, i32 27, i32 35, i32 43, i32 51, i32 4, i32 12, i32 20, i32 28, i32 36, i32 44, i32 52, i32 5, i32 13, i32 21, i32 29, i32 37, i32 45, i32 53, i32 6, i32 14, i32 22, i32 30, i32 38, i32 46, i32 54, i32 7, i32 15, i32 23, i32 31, i32 39, i32 47, i32 55>
2540   store <56 x i64> %interleaved.vec, ptr %out.vec, align 64
2541   ret void
2544 define void @store_i64_stride7_vf16(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
2545 ; SSE-LABEL: store_i64_stride7_vf16:
2546 ; SSE:       # %bb.0:
2547 ; SSE-NEXT:    subq $536, %rsp # imm = 0x218
2548 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2549 ; SSE-NEXT:    movapd (%rdi), %xmm2
2550 ; SSE-NEXT:    movapd 16(%rdi), %xmm3
2551 ; SSE-NEXT:    movapd 32(%rdi), %xmm6
2552 ; SSE-NEXT:    movapd (%rsi), %xmm4
2553 ; SSE-NEXT:    movapd 16(%rsi), %xmm7
2554 ; SSE-NEXT:    movapd (%rdx), %xmm5
2555 ; SSE-NEXT:    movapd 16(%rdx), %xmm8
2556 ; SSE-NEXT:    movapd (%rcx), %xmm9
2557 ; SSE-NEXT:    movapd 16(%rcx), %xmm11
2558 ; SSE-NEXT:    movapd (%r8), %xmm10
2559 ; SSE-NEXT:    movapd 16(%r8), %xmm12
2560 ; SSE-NEXT:    movapd (%r9), %xmm13
2561 ; SSE-NEXT:    movapd 16(%r9), %xmm15
2562 ; SSE-NEXT:    movapd (%rax), %xmm0
2563 ; SSE-NEXT:    movapd 16(%rax), %xmm1
2564 ; SSE-NEXT:    movapd %xmm2, %xmm14
2565 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm14 = xmm14[0],xmm4[0]
2566 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2567 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
2568 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2569 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm5[1]
2570 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2571 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm5 = xmm5[0],xmm9[0]
2572 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2573 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm10[1]
2574 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2575 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm10 = xmm10[0],xmm13[0]
2576 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2577 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
2578 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2579 ; SSE-NEXT:    movapd %xmm3, %xmm0
2580 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm7[0]
2581 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2582 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
2583 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2584 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm7 = xmm7[1],xmm8[1]
2585 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2586 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm8 = xmm8[0],xmm11[0]
2587 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2588 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm11 = xmm11[1],xmm12[1]
2589 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2590 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm15[0]
2591 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2592 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm15 = xmm15[1],xmm1[1]
2593 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2594 ; SSE-NEXT:    movapd 32(%rsi), %xmm1
2595 ; SSE-NEXT:    movapd %xmm6, %xmm0
2596 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
2597 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2598 ; SSE-NEXT:    movapd 32(%rax), %xmm0
2599 ; SSE-NEXT:    movsd {{.*#+}} xmm6 = xmm0[0],xmm6[1]
2600 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2601 ; SSE-NEXT:    movapd 32(%rdx), %xmm2
2602 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
2603 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2604 ; SSE-NEXT:    movapd 32(%rcx), %xmm3
2605 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
2606 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2607 ; SSE-NEXT:    movapd 32(%r8), %xmm1
2608 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
2609 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2610 ; SSE-NEXT:    movapd 32(%r9), %xmm2
2611 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2612 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2613 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2614 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2615 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
2616 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
2617 ; SSE-NEXT:    movapd %xmm1, %xmm0
2618 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2619 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2620 ; SSE-NEXT:    movapd 48(%rax), %xmm0
2621 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2622 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2623 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
2624 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2625 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2626 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
2627 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2628 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2629 ; SSE-NEXT:    movapd 48(%r8), %xmm1
2630 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2631 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2632 ; SSE-NEXT:    movapd 48(%r9), %xmm2
2633 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2634 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2635 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2636 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2637 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
2638 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
2639 ; SSE-NEXT:    movapd %xmm1, %xmm0
2640 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2641 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2642 ; SSE-NEXT:    movapd 64(%rax), %xmm0
2643 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2644 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2645 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
2646 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2647 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2648 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
2649 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2650 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2651 ; SSE-NEXT:    movapd 64(%r8), %xmm1
2652 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2653 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2654 ; SSE-NEXT:    movapd 64(%r9), %xmm2
2655 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
2656 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
2657 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
2658 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2659 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
2660 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
2661 ; SSE-NEXT:    movapd %xmm1, %xmm0
2662 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
2663 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2664 ; SSE-NEXT:    movapd 80(%rax), %xmm0
2665 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
2666 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2667 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
2668 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2669 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2670 ; SSE-NEXT:    movapd 80(%rcx), %xmm14
2671 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm14[0]
2672 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2673 ; SSE-NEXT:    movapd 80(%r8), %xmm1
2674 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
2675 ; SSE-NEXT:    movapd 80(%r9), %xmm13
2676 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm13[0]
2677 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2678 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
2679 ; SSE-NEXT:    movapd 96(%rdi), %xmm15
2680 ; SSE-NEXT:    movapd 96(%rsi), %xmm12
2681 ; SSE-NEXT:    movapd %xmm15, %xmm0
2682 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm12[0]
2683 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2684 ; SSE-NEXT:    movapd 96(%rax), %xmm3
2685 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm3[0],xmm15[1]
2686 ; SSE-NEXT:    movapd 96(%rdx), %xmm11
2687 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
2688 ; SSE-NEXT:    movapd 96(%rcx), %xmm8
2689 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm8[0]
2690 ; SSE-NEXT:    movapd 96(%r8), %xmm9
2691 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
2692 ; SSE-NEXT:    movapd 96(%r9), %xmm6
2693 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
2694 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
2695 ; SSE-NEXT:    movapd 112(%rdi), %xmm5
2696 ; SSE-NEXT:    movapd 112(%rsi), %xmm4
2697 ; SSE-NEXT:    movapd %xmm5, %xmm7
2698 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm4[0]
2699 ; SSE-NEXT:    movapd 112(%rax), %xmm10
2700 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm10[0],xmm5[1]
2701 ; SSE-NEXT:    movapd 112(%rdx), %xmm3
2702 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
2703 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
2704 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
2705 ; SSE-NEXT:    movapd 112(%r8), %xmm1
2706 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
2707 ; SSE-NEXT:    movapd 112(%r9), %xmm0
2708 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
2709 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
2710 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2711 ; SSE-NEXT:    movapd %xmm0, 880(%rax)
2712 ; SSE-NEXT:    movapd %xmm2, 864(%rax)
2713 ; SSE-NEXT:    movapd %xmm4, 848(%rax)
2714 ; SSE-NEXT:    movapd %xmm5, 832(%rax)
2715 ; SSE-NEXT:    movapd %xmm1, 816(%rax)
2716 ; SSE-NEXT:    movapd %xmm3, 800(%rax)
2717 ; SSE-NEXT:    movapd %xmm7, 784(%rax)
2718 ; SSE-NEXT:    movapd %xmm6, 768(%rax)
2719 ; SSE-NEXT:    movapd %xmm8, 752(%rax)
2720 ; SSE-NEXT:    movapd %xmm12, 736(%rax)
2721 ; SSE-NEXT:    movapd %xmm15, 720(%rax)
2722 ; SSE-NEXT:    movapd %xmm9, 704(%rax)
2723 ; SSE-NEXT:    movapd %xmm11, 688(%rax)
2724 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2725 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
2726 ; SSE-NEXT:    movapd %xmm13, 656(%rax)
2727 ; SSE-NEXT:    movapd %xmm14, 640(%rax)
2728 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2729 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
2730 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2731 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
2732 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2733 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
2734 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2735 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
2736 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2737 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
2738 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2739 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
2740 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2741 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
2742 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2743 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
2744 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2745 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
2746 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
2747 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
2748 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2749 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
2750 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2751 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
2752 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2753 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
2754 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2755 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
2756 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2757 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
2758 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2759 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
2760 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2761 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
2762 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2763 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
2764 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2765 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
2766 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2767 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
2768 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2769 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
2770 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2771 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
2772 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2773 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
2774 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2775 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
2776 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2777 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
2778 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2779 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
2780 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2781 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
2782 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2783 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
2784 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2785 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
2786 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2787 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
2788 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2789 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
2790 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2791 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
2792 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2793 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
2794 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2795 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
2796 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2797 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
2798 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2799 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
2800 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2801 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
2802 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2803 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
2804 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2805 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
2806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
2807 ; SSE-NEXT:    movaps %xmm0, (%rax)
2808 ; SSE-NEXT:    addq $536, %rsp # imm = 0x218
2809 ; SSE-NEXT:    retq
2811 ; AVX-LABEL: store_i64_stride7_vf16:
2812 ; AVX:       # %bb.0:
2813 ; AVX-NEXT:    subq $520, %rsp # imm = 0x208
2814 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
2815 ; AVX-NEXT:    vmovaps (%rsi), %ymm5
2816 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2817 ; AVX-NEXT:    vmovaps (%rdx), %ymm0
2818 ; AVX-NEXT:    vmovaps (%r9), %ymm6
2819 ; AVX-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2820 ; AVX-NEXT:    vmovaps (%r9), %xmm2
2821 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2822 ; AVX-NEXT:    vmovaps (%r8), %xmm1
2823 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm2[0]
2824 ; AVX-NEXT:    vmovaps (%rdi), %xmm3
2825 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2826 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm3
2827 ; AVX-NEXT:    vmovaps (%rax), %xmm7
2828 ; AVX-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2829 ; AVX-NEXT:    vmovaps 16(%rax), %xmm4
2830 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm2, %ymm2
2831 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
2832 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2833 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm2
2834 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3],ymm2[4,5,6,7]
2835 ; AVX-NEXT:    vmovaps (%rsi), %xmm3
2836 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2837 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
2838 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
2839 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2840 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
2841 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2842 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm1
2843 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
2844 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
2845 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1],ymm0[2,3,4,5,6,7]
2846 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2847 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm0
2848 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2849 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
2850 ; AVX-NEXT:    vmovaps 16(%r8), %xmm1
2851 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm6[1],ymm1[1],ymm6[3],ymm1[3]
2852 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
2853 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
2854 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2855 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm0
2856 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm1
2857 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
2858 ; AVX-NEXT:    vinsertf128 $1, 32(%rcx), %ymm2, %ymm3
2859 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm4
2860 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
2861 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
2862 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2863 ; AVX-NEXT:    vmovaps 32(%rax), %xmm12
2864 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
2865 ; AVX-NEXT:    vmovaps 32(%r9), %xmm11
2866 ; AVX-NEXT:    vmovaps 32(%r8), %xmm2
2867 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm11[0]
2868 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm3, %ymm3
2869 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
2870 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2871 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
2872 ; AVX-NEXT:    vbroadcastsd 40(%rcx), %ymm1
2873 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2874 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
2875 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2876 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2877 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm10
2878 ; AVX-NEXT:    vmovaps 48(%rdi), %xmm0
2879 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
2880 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
2881 ; AVX-NEXT:    vmovaps 48(%rax), %xmm1
2882 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
2883 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2884 ; AVX-NEXT:    vmovaps 32(%r9), %ymm9
2885 ; AVX-NEXT:    vmovaps 48(%r8), %xmm0
2886 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm9[1],ymm0[1],ymm9[3],ymm0[3]
2887 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
2888 ; AVX-NEXT:    vmovaps 48(%rcx), %xmm7
2889 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm7[2,3,2,3]
2890 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
2891 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2892 ; AVX-NEXT:    vmovaps 64(%r9), %xmm8
2893 ; AVX-NEXT:    vmovaps 64(%r8), %xmm0
2894 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm8[0]
2895 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm2
2896 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
2897 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
2898 ; AVX-NEXT:    vmovaps 64(%rax), %xmm6
2899 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm1, %ymm1
2900 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
2901 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2902 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm1
2903 ; AVX-NEXT:    vbroadcastsd 72(%rcx), %ymm2
2904 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
2905 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm15
2906 ; AVX-NEXT:    vshufps {{.*#+}} xmm13 = xmm15[2,3,2,3]
2907 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm13[0,1],ymm2[2,3,4,5,6,7]
2908 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
2909 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
2910 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2911 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm5
2912 ; AVX-NEXT:    vmovaps 80(%rdi), %xmm0
2913 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm0[1],ymm5[3],ymm0[3]
2914 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2915 ; AVX-NEXT:    vmovaps 80(%rax), %xmm1
2916 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
2917 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2918 ; AVX-NEXT:    vmovaps 64(%r9), %ymm4
2919 ; AVX-NEXT:    vmovaps 80(%r8), %xmm0
2920 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm4[1],ymm0[1],ymm4[3],ymm0[3]
2921 ; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3,4,5],mem[6,7]
2922 ; AVX-NEXT:    vmovaps 80(%rcx), %xmm3
2923 ; AVX-NEXT:    vshufps {{.*#+}} xmm14 = xmm3[2,3,2,3]
2924 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1],ymm13[2,3,4,5,6,7]
2925 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2926 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm13
2927 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm14
2928 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm0 = xmm14[0],xmm13[0]
2929 ; AVX-NEXT:    vinsertf128 $1, 96(%rcx), %ymm0, %ymm2
2930 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm1
2931 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm0
2932 ; AVX-NEXT:    vshufpd {{.*#+}} ymm0 = ymm0[0],ymm2[1],ymm0[2],ymm2[2]
2933 ; AVX-NEXT:    vmovupd %ymm0, (%rsp) # 32-byte Spill
2934 ; AVX-NEXT:    vinsertf128 $1, %xmm14, %ymm0, %ymm0
2935 ; AVX-NEXT:    vmovaps 96(%r8), %xmm2
2936 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm2[0],mem[0]
2937 ; AVX-NEXT:    vinsertf128 $1, 96(%rax), %ymm14, %ymm14
2938 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm14[0,1,2,3,4,5],ymm0[6,7]
2939 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
2940 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm13[1],xmm1[1]
2941 ; AVX-NEXT:    vbroadcastsd 104(%rcx), %ymm1
2942 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
2943 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
2944 ; AVX-NEXT:    vblendps {{.*#+}} ymm13 = ymm0[0,1,2,3,4,5],ymm1[6,7]
2945 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
2946 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2947 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
2948 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
2949 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2950 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
2951 ; AVX-NEXT:    vblendps {{.*#+}} ymm14 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2952 ; AVX-NEXT:    vmovaps (%r8), %ymm0
2953 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
2954 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
2955 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm1
2956 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
2957 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
2958 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm0[4,5,6,7]
2959 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
2960 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
2961 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm2 = xmm11[1],xmm12[1]
2962 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm0[4,5,6,7]
2963 ; AVX-NEXT:    vmovaps 32(%r8), %ymm0
2964 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm9[0],ymm0[2],ymm9[2]
2965 ; AVX-NEXT:    vmovaps 48(%rdx), %xmm9
2966 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm7 = xmm9[0],xmm7[0]
2967 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm7[0,1,2,3],ymm0[4,5,6,7]
2968 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm0
2969 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]
2970 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm5 = xmm8[1],xmm6[1]
2971 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm0[4,5,6,7]
2972 ; AVX-NEXT:    vmovaps 64(%r8), %ymm0
2973 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm4[0],ymm0[2],ymm4[2]
2974 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm4
2975 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm4[0],xmm3[0]
2976 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1,2,3],ymm0[4,5,6,7]
2977 ; AVX-NEXT:    vmovapd 96(%rdi), %ymm3
2978 ; AVX-NEXT:    vmovapd 96(%rsi), %ymm4
2979 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],ymm4[0],ymm3[2],ymm4[2]
2980 ; AVX-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
2981 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3]
2982 ; AVX-NEXT:    vmovapd 112(%rdi), %xmm6
2983 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],mem[2,3]
2984 ; AVX-NEXT:    vshufpd {{.*#+}} ymm4 = ymm4[0,0,3,2]
2985 ; AVX-NEXT:    vmovapd 96(%rax), %ymm8
2986 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm8[2,3],ymm4[2,3]
2987 ; AVX-NEXT:    vblendpd {{.*#+}} ymm4 = ymm4[0],ymm6[1],ymm4[2],ymm6[3]
2988 ; AVX-NEXT:    vmovapd 112(%rcx), %xmm6
2989 ; AVX-NEXT:    vmovapd 112(%rdx), %xmm9
2990 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
2991 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1],mem[2,3]
2992 ; AVX-NEXT:    vbroadcastsd 112(%r9), %ymm10
2993 ; AVX-NEXT:    vblendpd {{.*#+}} ymm9 = ymm9[0,1,2],ymm10[3]
2994 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],mem[1]
2995 ; AVX-NEXT:    vbroadcastsd 120(%r9), %ymm10
2996 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1],ymm10[2,3]
2997 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0],ymm8[1],ymm3[2,3]
2998 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0,1,2],ymm8[3]
2999 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm8 # 16-byte Reload
3000 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm8 = xmm8[0],xmm15[0]
3001 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
3002 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm10, %xmm10 # 16-byte Folded Reload
3003 ; AVX-NEXT:    # xmm10 = xmm10[0],mem[0]
3004 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3005 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm11
3006 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
3007 ; AVX-NEXT:    vmovaps (%rdx), %xmm12
3008 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
3009 ; AVX-NEXT:    vmovaps %xmm12, 16(%rax)
3010 ; AVX-NEXT:    vmovaps %xmm10, (%rax)
3011 ; AVX-NEXT:    vmovaps %xmm11, 464(%rax)
3012 ; AVX-NEXT:    vmovaps %xmm8, 448(%rax)
3013 ; AVX-NEXT:    vmovapd %ymm4, 832(%rax)
3014 ; AVX-NEXT:    vmovapd %ymm3, 768(%rax)
3015 ; AVX-NEXT:    vmovaps %ymm0, 576(%rax)
3016 ; AVX-NEXT:    vmovaps %ymm5, 544(%rax)
3017 ; AVX-NEXT:    vmovaps %ymm7, 352(%rax)
3018 ; AVX-NEXT:    vmovaps %ymm2, 320(%rax)
3019 ; AVX-NEXT:    vmovaps %ymm1, 128(%rax)
3020 ; AVX-NEXT:    vmovaps %ymm14, 96(%rax)
3021 ; AVX-NEXT:    vmovapd %ymm6, 864(%rax)
3022 ; AVX-NEXT:    vmovapd %ymm9, 800(%rax)
3023 ; AVX-NEXT:    vmovaps %ymm13, 736(%rax)
3024 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3025 ; AVX-NEXT:    vmovaps %ymm0, 704(%rax)
3026 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
3027 ; AVX-NEXT:    vmovaps %ymm0, 672(%rax)
3028 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3029 ; AVX-NEXT:    vmovaps %ymm0, 640(%rax)
3030 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3031 ; AVX-NEXT:    vmovaps %ymm0, 608(%rax)
3032 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3033 ; AVX-NEXT:    vmovaps %ymm0, 512(%rax)
3034 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3035 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
3036 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3037 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
3038 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3039 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
3040 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3041 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
3042 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3043 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
3044 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3045 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
3046 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3047 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
3048 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3049 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
3050 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3051 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
3052 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
3053 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
3054 ; AVX-NEXT:    addq $520, %rsp # imm = 0x208
3055 ; AVX-NEXT:    vzeroupper
3056 ; AVX-NEXT:    retq
3058 ; AVX2-LABEL: store_i64_stride7_vf16:
3059 ; AVX2:       # %bb.0:
3060 ; AVX2-NEXT:    subq $552, %rsp # imm = 0x228
3061 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3062 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm8
3063 ; AVX2-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3064 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm2
3065 ; AVX2-NEXT:    vmovaps (%rdi), %ymm7
3066 ; AVX2-NEXT:    vmovaps (%rsi), %ymm14
3067 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm10
3068 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm15
3069 ; AVX2-NEXT:    vmovaps (%rdx), %ymm4
3070 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm3
3071 ; AVX2-NEXT:    vmovaps 16(%rax), %xmm0
3072 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm1
3073 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm7[1],ymm14[1],ymm7[3],ymm14[3]
3074 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3075 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
3076 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3,4,5,6,7]
3077 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3078 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm0
3079 ; AVX2-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3080 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3081 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm5
3082 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3083 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm6, %ymm6
3084 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
3085 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3086 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm6
3087 ; AVX2-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3088 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3089 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
3090 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm6
3091 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
3092 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm6
3093 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3094 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
3095 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3096 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm10[1],ymm2[3],ymm10[3]
3097 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
3098 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3099 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
3100 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3101 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm8[1],ymm15[1],ymm8[3],ymm15[3]
3102 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm0[0,2,3,3]
3103 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm0
3104 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm0[6,7]
3105 ; AVX2-NEXT:    vmovaps 80(%rax), %xmm6
3106 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3107 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3108 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm5
3109 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3110 ; AVX2-NEXT:    vinsertf128 $1, 96(%rax), %ymm6, %ymm6
3111 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm8
3112 ; AVX2-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3113 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
3114 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm8[6,7]
3115 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3116 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm8
3117 ; AVX2-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3118 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3119 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
3120 ; AVX2-NEXT:    vbroadcastsd 104(%rcx), %ymm8
3121 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
3122 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3123 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3124 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3125 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm12
3126 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm11
3127 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
3128 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3129 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm6
3130 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3131 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3132 ; AVX2-NEXT:    vmovaps 112(%rax), %xmm6
3133 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3134 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3135 ; AVX2-NEXT:    vmovaps (%rsi), %xmm5
3136 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm5, %ymm5
3137 ; AVX2-NEXT:    vmovaps (%rdi), %xmm6
3138 ; AVX2-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
3139 ; AVX2-NEXT:    vinsertf128 $1, (%rdx), %ymm6, %ymm6
3140 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
3141 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3142 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm5
3143 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm4[0,1,2,3],ymm5[4,5,6,7]
3144 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3145 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3146 ; AVX2-NEXT:    vmovaps (%r8), %xmm13
3147 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm6
3148 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3149 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3150 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm7[0],ymm14[0],ymm7[2],ymm14[2]
3151 ; AVX2-NEXT:    vmovaps (%rax), %xmm9
3152 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3153 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
3154 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3155 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3156 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3157 ; AVX2-NEXT:    vmovaps (%r8), %ymm8
3158 ; AVX2-NEXT:    vmovaps (%r9), %ymm6
3159 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm8[0],ymm6[0],ymm8[2],ymm6[2]
3160 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm5[2,3]
3161 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3162 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm10[0],ymm2[2],ymm10[2]
3163 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
3164 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
3165 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3166 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3167 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],mem[0],ymm3[2],mem[2]
3168 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm10
3169 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm5
3170 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm10[0],ymm5[0],ymm10[2],ymm5[2]
3171 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3172 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3173 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm1
3174 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
3175 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm7
3176 ; AVX2-NEXT:    vinsertf128 $1, 64(%rdx), %ymm7, %ymm2
3177 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3178 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3179 ; AVX2-NEXT:    vbroadcastsd 72(%rcx), %ymm1
3180 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3181 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
3182 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3183 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm4
3184 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
3185 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
3186 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3187 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3188 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[2],ymm15[2]
3189 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm3
3190 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm14 = mem[0,0]
3191 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm14 = xmm14[1],xmm3[1]
3192 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
3193 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3194 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm0[0],mem[0],ymm0[2],mem[2]
3195 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm2
3196 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm1
3197 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3198 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm14[2,3],ymm15[2,3]
3199 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
3200 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm12 = mem[0,0]
3201 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3202 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm12
3203 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3204 ; AVX2-NEXT:    vbroadcastsd 120(%r9), %ymm15
3205 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm12[0,1,2,3],ymm15[4,5,6,7]
3206 ; AVX2-NEXT:    vmovaps 96(%rax), %ymm0
3207 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm0[2,3],ymm11[4,5,6,7]
3208 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm0[6,7]
3209 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm13[0],mem[0]
3210 ; AVX2-NEXT:    vinsertf128 $1, (%rsp), %ymm0, %ymm0 # 16-byte Folded Reload
3211 ; AVX2-NEXT:    vbroadcastsd %xmm9, %ymm9
3212 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]
3213 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm8[1],ymm6[1],ymm8[3],ymm6[3]
3214 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
3215 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
3216 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm8
3217 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3,4,5,6,7]
3218 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3219 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
3220 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 16-byte Folded Reload
3221 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm9
3222 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm9[6,7]
3223 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm10[1],ymm5[1],ymm10[3],ymm5[3]
3224 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3225 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
3226 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm9
3227 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3,4,5,6,7]
3228 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
3229 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm4, %ymm4
3230 ; AVX2-NEXT:    vbroadcastsd %xmm3, %ymm3
3231 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]
3232 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
3233 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
3234 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
3235 ; AVX2-NEXT:    vbroadcastsd 88(%rcx), %ymm2
3236 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3237 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3238 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
3239 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 16-byte Folded Reload
3240 ; AVX2-NEXT:    vbroadcastsd 96(%rcx), %ymm4
3241 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
3242 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3243 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3244 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],mem[2,3]
3245 ; AVX2-NEXT:    vbroadcastsd 112(%r9), %ymm7
3246 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm7[6,7]
3247 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3248 ; AVX2-NEXT:    vmovaps %ymm4, 800(%rax)
3249 ; AVX2-NEXT:    vmovaps %ymm12, 768(%rax)
3250 ; AVX2-NEXT:    vmovaps %ymm14, 576(%rax)
3251 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3252 ; AVX2-NEXT:    vmovaps %ymm4, 544(%rax)
3253 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3254 ; AVX2-NEXT:    vmovaps %ymm4, 512(%rax)
3255 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3256 ; AVX2-NEXT:    vmovaps %ymm4, 448(%rax)
3257 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3258 ; AVX2-NEXT:    vmovaps %ymm4, 352(%rax)
3259 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3260 ; AVX2-NEXT:    vmovaps %ymm4, 320(%rax)
3261 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3262 ; AVX2-NEXT:    vmovaps %ymm4, 128(%rax)
3263 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3264 ; AVX2-NEXT:    vmovaps %ymm4, 96(%rax)
3265 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3266 ; AVX2-NEXT:    vmovaps %ymm4, 64(%rax)
3267 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3268 ; AVX2-NEXT:    vmovaps %ymm4, (%rax)
3269 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3270 ; AVX2-NEXT:    vmovaps %ymm4, 832(%rax)
3271 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3272 ; AVX2-NEXT:    vmovaps %ymm4, 736(%rax)
3273 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3274 ; AVX2-NEXT:    vmovaps %ymm4, 704(%rax)
3275 ; AVX2-NEXT:    vmovaps %ymm2, 672(%rax)
3276 ; AVX2-NEXT:    vmovaps %ymm1, 640(%rax)
3277 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3278 ; AVX2-NEXT:    vmovaps %ymm1, 608(%rax)
3279 ; AVX2-NEXT:    vmovaps %ymm3, 480(%rax)
3280 ; AVX2-NEXT:    vmovaps %ymm5, 416(%rax)
3281 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3282 ; AVX2-NEXT:    vmovaps %ymm1, 384(%rax)
3283 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3284 ; AVX2-NEXT:    vmovaps %ymm1, 288(%rax)
3285 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3286 ; AVX2-NEXT:    vmovaps %ymm1, 256(%rax)
3287 ; AVX2-NEXT:    vmovaps %ymm6, 224(%rax)
3288 ; AVX2-NEXT:    vmovaps %ymm8, 192(%rax)
3289 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3290 ; AVX2-NEXT:    vmovaps %ymm1, 160(%rax)
3291 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rax)
3292 ; AVX2-NEXT:    vmovaps %ymm11, 864(%rax)
3293 ; AVX2-NEXT:    addq $552, %rsp # imm = 0x228
3294 ; AVX2-NEXT:    vzeroupper
3295 ; AVX2-NEXT:    retq
3297 ; AVX2-FP-LABEL: store_i64_stride7_vf16:
3298 ; AVX2-FP:       # %bb.0:
3299 ; AVX2-FP-NEXT:    subq $552, %rsp # imm = 0x228
3300 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3301 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm8
3302 ; AVX2-FP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3303 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm2
3304 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm7
3305 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm14
3306 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm10
3307 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm15
3308 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm4
3309 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm3
3310 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm0
3311 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm1
3312 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm7[1],ymm14[1],ymm7[3],ymm14[3]
3313 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3314 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
3315 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3,4,5,6,7]
3316 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3317 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm0
3318 ; AVX2-FP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3319 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3320 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm5
3321 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3322 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm6, %ymm6
3323 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
3324 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3325 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm6
3326 ; AVX2-FP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3327 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3328 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
3329 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm6
3330 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
3331 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm6
3332 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3333 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
3334 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3335 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm10[1],ymm2[3],ymm10[3]
3336 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
3337 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3338 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
3339 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3340 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm8[1],ymm15[1],ymm8[3],ymm15[3]
3341 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm0[0,2,3,3]
3342 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm0
3343 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm0[6,7]
3344 ; AVX2-FP-NEXT:    vmovaps 80(%rax), %xmm6
3345 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3346 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3347 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm5
3348 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3349 ; AVX2-FP-NEXT:    vinsertf128 $1, 96(%rax), %ymm6, %ymm6
3350 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm8
3351 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3352 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
3353 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm8[6,7]
3354 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3355 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm8
3356 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3357 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3358 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
3359 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rcx), %ymm8
3360 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
3361 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3362 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3363 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3364 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm12
3365 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm11
3366 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
3367 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3368 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm6
3369 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3370 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3371 ; AVX2-FP-NEXT:    vmovaps 112(%rax), %xmm6
3372 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3373 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3374 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm5
3375 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm5, %ymm5
3376 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm6
3377 ; AVX2-FP-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
3378 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm6, %ymm6
3379 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
3380 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3381 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm5
3382 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm4[0,1,2,3],ymm5[4,5,6,7]
3383 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3384 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3385 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm13
3386 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm6
3387 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3388 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3389 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm7[0],ymm14[0],ymm7[2],ymm14[2]
3390 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm9
3391 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3392 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
3393 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3394 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3395 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3396 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm8
3397 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm6
3398 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm8[0],ymm6[0],ymm8[2],ymm6[2]
3399 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm5[2,3]
3400 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3401 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm10[0],ymm2[2],ymm10[2]
3402 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
3403 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
3404 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3405 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3406 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],mem[0],ymm3[2],mem[2]
3407 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm10
3408 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm5
3409 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm10[0],ymm5[0],ymm10[2],ymm5[2]
3410 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3411 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3412 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm1
3413 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
3414 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm7
3415 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm7, %ymm2
3416 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3417 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3418 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
3419 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3420 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
3421 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3422 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm4
3423 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
3424 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
3425 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3426 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3427 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[2],ymm15[2]
3428 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm3
3429 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm14 = mem[0,0]
3430 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm14 = xmm14[1],xmm3[1]
3431 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
3432 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3433 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm0[0],mem[0],ymm0[2],mem[2]
3434 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm2
3435 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm1
3436 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3437 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm14[2,3],ymm15[2,3]
3438 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
3439 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm12 = mem[0,0]
3440 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3441 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm12
3442 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3443 ; AVX2-FP-NEXT:    vbroadcastsd 120(%r9), %ymm15
3444 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm12[0,1,2,3],ymm15[4,5,6,7]
3445 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %ymm0
3446 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm0[2,3],ymm11[4,5,6,7]
3447 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm0[6,7]
3448 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm13[0],mem[0]
3449 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rsp), %ymm0, %ymm0 # 16-byte Folded Reload
3450 ; AVX2-FP-NEXT:    vbroadcastsd %xmm9, %ymm9
3451 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]
3452 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm8[1],ymm6[1],ymm8[3],ymm6[3]
3453 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
3454 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
3455 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm8
3456 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3,4,5,6,7]
3457 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3458 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
3459 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 16-byte Folded Reload
3460 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm9
3461 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm9[6,7]
3462 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm10[1],ymm5[1],ymm10[3],ymm5[3]
3463 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3464 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
3465 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm9
3466 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3,4,5,6,7]
3467 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
3468 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm4, %ymm4
3469 ; AVX2-FP-NEXT:    vbroadcastsd %xmm3, %ymm3
3470 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]
3471 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
3472 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
3473 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
3474 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rcx), %ymm2
3475 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3476 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3477 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
3478 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 16-byte Folded Reload
3479 ; AVX2-FP-NEXT:    vbroadcastsd 96(%rcx), %ymm4
3480 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
3481 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3482 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3483 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],mem[2,3]
3484 ; AVX2-FP-NEXT:    vbroadcastsd 112(%r9), %ymm7
3485 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm7[6,7]
3486 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3487 ; AVX2-FP-NEXT:    vmovaps %ymm4, 800(%rax)
3488 ; AVX2-FP-NEXT:    vmovaps %ymm12, 768(%rax)
3489 ; AVX2-FP-NEXT:    vmovaps %ymm14, 576(%rax)
3490 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3491 ; AVX2-FP-NEXT:    vmovaps %ymm4, 544(%rax)
3492 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3493 ; AVX2-FP-NEXT:    vmovaps %ymm4, 512(%rax)
3494 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3495 ; AVX2-FP-NEXT:    vmovaps %ymm4, 448(%rax)
3496 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3497 ; AVX2-FP-NEXT:    vmovaps %ymm4, 352(%rax)
3498 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3499 ; AVX2-FP-NEXT:    vmovaps %ymm4, 320(%rax)
3500 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3501 ; AVX2-FP-NEXT:    vmovaps %ymm4, 128(%rax)
3502 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3503 ; AVX2-FP-NEXT:    vmovaps %ymm4, 96(%rax)
3504 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3505 ; AVX2-FP-NEXT:    vmovaps %ymm4, 64(%rax)
3506 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3507 ; AVX2-FP-NEXT:    vmovaps %ymm4, (%rax)
3508 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3509 ; AVX2-FP-NEXT:    vmovaps %ymm4, 832(%rax)
3510 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3511 ; AVX2-FP-NEXT:    vmovaps %ymm4, 736(%rax)
3512 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3513 ; AVX2-FP-NEXT:    vmovaps %ymm4, 704(%rax)
3514 ; AVX2-FP-NEXT:    vmovaps %ymm2, 672(%rax)
3515 ; AVX2-FP-NEXT:    vmovaps %ymm1, 640(%rax)
3516 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3517 ; AVX2-FP-NEXT:    vmovaps %ymm1, 608(%rax)
3518 ; AVX2-FP-NEXT:    vmovaps %ymm3, 480(%rax)
3519 ; AVX2-FP-NEXT:    vmovaps %ymm5, 416(%rax)
3520 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3521 ; AVX2-FP-NEXT:    vmovaps %ymm1, 384(%rax)
3522 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3523 ; AVX2-FP-NEXT:    vmovaps %ymm1, 288(%rax)
3524 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3525 ; AVX2-FP-NEXT:    vmovaps %ymm1, 256(%rax)
3526 ; AVX2-FP-NEXT:    vmovaps %ymm6, 224(%rax)
3527 ; AVX2-FP-NEXT:    vmovaps %ymm8, 192(%rax)
3528 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3529 ; AVX2-FP-NEXT:    vmovaps %ymm1, 160(%rax)
3530 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rax)
3531 ; AVX2-FP-NEXT:    vmovaps %ymm11, 864(%rax)
3532 ; AVX2-FP-NEXT:    addq $552, %rsp # imm = 0x228
3533 ; AVX2-FP-NEXT:    vzeroupper
3534 ; AVX2-FP-NEXT:    retq
3536 ; AVX2-FCP-LABEL: store_i64_stride7_vf16:
3537 ; AVX2-FCP:       # %bb.0:
3538 ; AVX2-FCP-NEXT:    subq $552, %rsp # imm = 0x228
3539 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3540 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm8
3541 ; AVX2-FCP-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3542 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm2
3543 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm7
3544 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm14
3545 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm10
3546 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm15
3547 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm4
3548 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm3
3549 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm0
3550 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm1
3551 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm7[1],ymm14[1],ymm7[3],ymm14[3]
3552 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3553 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm4[6,7]
3554 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm5[2,3,4,5,6,7]
3555 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3556 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm0
3557 ; AVX2-FCP-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3558 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
3559 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm5
3560 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3561 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm6, %ymm6
3562 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3,4,5],ymm0[6,7]
3563 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3564 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm6
3565 ; AVX2-FCP-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3566 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
3567 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm6[1]
3568 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm6
3569 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm6[4,5,6,7]
3570 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm6
3571 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3572 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm5[6,7]
3573 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3574 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm10[1],ymm2[3],ymm10[3]
3575 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
3576 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
3577 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1],ymm0[2,3,4,5,6,7]
3578 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3579 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm8[1],ymm15[1],ymm8[3],ymm15[3]
3580 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm0[0,2,3,3]
3581 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm0
3582 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm0[6,7]
3583 ; AVX2-FCP-NEXT:    vmovaps 80(%rax), %xmm6
3584 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3585 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3586 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm5
3587 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm5[0],mem[0]
3588 ; AVX2-FCP-NEXT:    vinsertf128 $1, 96(%rax), %ymm6, %ymm6
3589 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm8
3590 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3591 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm0, %ymm8
3592 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm8[6,7]
3593 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3594 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm8
3595 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
3596 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3597 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
3598 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rcx), %ymm8
3599 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
3600 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
3601 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3,4,5],ymm5[6,7]
3602 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3603 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm12
3604 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm11
3605 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm12[1],ymm11[1],ymm12[3],ymm11[3]
3606 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3607 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm6
3608 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3609 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3610 ; AVX2-FCP-NEXT:    vmovaps 112(%rax), %xmm6
3611 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3612 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3613 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm5
3614 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm5, %ymm5
3615 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm6
3616 ; AVX2-FCP-NEXT:    vmovups %ymm6, (%rsp) # 32-byte Spill
3617 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm6, %ymm6
3618 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
3619 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3620 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm5
3621 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm4[0,1,2,3],ymm5[4,5,6,7]
3622 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3623 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3,4,5,6,7]
3624 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm13
3625 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm6
3626 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],ymm6[6,7]
3627 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3628 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm7[0],ymm14[0],ymm7[2],ymm14[2]
3629 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm9
3630 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
3631 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm9[1]
3632 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1,2,3],ymm5[4,5,6,7]
3633 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3634 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3635 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm8
3636 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm6
3637 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm8[0],ymm6[0],ymm8[2],ymm6[2]
3638 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],ymm5[2,3]
3639 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3640 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm10[0],ymm2[2],ymm10[2]
3641 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
3642 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm4[1],xmm1[1]
3643 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
3644 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3645 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm3[0],mem[0],ymm3[2],mem[2]
3646 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm10
3647 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm5
3648 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm10[0],ymm5[0],ymm10[2],ymm5[2]
3649 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm1[2,3],ymm2[2,3]
3650 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3651 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm1
3652 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm1, %ymm1
3653 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm7
3654 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm7, %ymm2
3655 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3656 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3657 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
3658 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
3659 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
3660 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3661 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm4
3662 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm2
3663 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
3664 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3665 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3666 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm15[0],ymm1[2],ymm15[2]
3667 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm3
3668 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm14 = mem[0,0]
3669 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm14 = xmm14[1],xmm3[1]
3670 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm14[0,1,2,3],ymm1[4,5,6,7]
3671 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
3672 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm14 = ymm0[0],mem[0],ymm0[2],mem[2]
3673 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm2
3674 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm1
3675 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm15 = ymm2[0],ymm1[0],ymm2[2],ymm1[2]
3676 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm14 = ymm14[2,3],ymm15[2,3]
3677 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm11 = ymm12[0],ymm11[0],ymm12[2],ymm11[2]
3678 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm12 = mem[0,0]
3679 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm12[0,1,2,3],ymm11[4,5,6,7]
3680 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm12
3681 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
3682 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%r9), %ymm15
3683 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm12[0,1,2,3],ymm15[4,5,6,7]
3684 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %ymm0
3685 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm11[0,1],ymm0[2,3],ymm11[4,5,6,7]
3686 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm15[0,1,2,3,4,5],ymm0[6,7]
3687 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm13[0],mem[0]
3688 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsp), %ymm0, %ymm0 # 16-byte Folded Reload
3689 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm9, %ymm9
3690 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm9[4,5],ymm0[6,7]
3691 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm6 = ymm8[1],ymm6[1],ymm8[3],ymm6[3]
3692 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm6 = ymm6[0,2,3,3]
3693 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
3694 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm8
3695 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm6[2,3,4,5,6,7]
3696 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm6 # 16-byte Reload
3697 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
3698 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 16-byte Folded Reload
3699 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm9
3700 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm9[6,7]
3701 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm5 = ymm10[1],ymm5[1],ymm10[3],ymm5[3]
3702 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm5 = ymm5[0,2,3,3]
3703 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
3704 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm9
3705 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm9[0,1],ymm5[2,3,4,5,6,7]
3706 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
3707 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm4, %ymm4
3708 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm3, %ymm3
3709 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5],ymm4[6,7]
3710 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm1[1],ymm2[3],ymm1[3]
3711 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
3712 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
3713 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rcx), %ymm2
3714 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
3715 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 # 16-byte Reload
3716 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],mem[0]
3717 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm2, %ymm2 # 16-byte Folded Reload
3718 ; AVX2-FCP-NEXT:    vbroadcastsd 96(%rcx), %ymm4
3719 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm4[6,7]
3720 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3721 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm4[0],mem[0],ymm4[2],mem[2]
3722 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm4[2,3],mem[2,3]
3723 ; AVX2-FCP-NEXT:    vbroadcastsd 112(%r9), %ymm7
3724 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm7[6,7]
3725 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3726 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 800(%rax)
3727 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 768(%rax)
3728 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 576(%rax)
3729 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3730 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 544(%rax)
3731 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3732 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 512(%rax)
3733 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3734 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 448(%rax)
3735 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3736 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 352(%rax)
3737 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3738 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 320(%rax)
3739 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3740 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 128(%rax)
3741 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3742 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 96(%rax)
3743 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3744 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 64(%rax)
3745 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3746 ; AVX2-FCP-NEXT:    vmovaps %ymm4, (%rax)
3747 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3748 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 832(%rax)
3749 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3750 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 736(%rax)
3751 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm4 # 32-byte Reload
3752 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 704(%rax)
3753 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 672(%rax)
3754 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 640(%rax)
3755 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3756 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 608(%rax)
3757 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 480(%rax)
3758 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 416(%rax)
3759 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3760 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 384(%rax)
3761 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3762 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 288(%rax)
3763 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3764 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 256(%rax)
3765 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 224(%rax)
3766 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 192(%rax)
3767 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
3768 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 160(%rax)
3769 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rax)
3770 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 864(%rax)
3771 ; AVX2-FCP-NEXT:    addq $552, %rsp # imm = 0x228
3772 ; AVX2-FCP-NEXT:    vzeroupper
3773 ; AVX2-FCP-NEXT:    retq
3775 ; AVX512-LABEL: store_i64_stride7_vf16:
3776 ; AVX512:       # %bb.0:
3777 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3778 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm6
3779 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm18
3780 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm7
3781 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm9
3782 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm11
3783 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm20
3784 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm1
3785 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm2
3786 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm3
3787 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [6,14,6,14,6,14,6,14]
3788 ; AVX512-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3789 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm19
3790 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
3791 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [15,7,15,7,15,7,15,7]
3792 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3793 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm21
3794 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm8, %zmm21
3795 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm22
3796 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,8,0,1,0,8,0,1]
3797 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
3798 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
3799 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm5, %zmm4
3800 ; AVX512-NEXT:    vpermi2q %zmm9, %zmm18, %zmm5
3801 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
3802 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3803 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm0
3804 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm10, %zmm0
3805 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
3806 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm15
3807 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm23
3808 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [2,10,0,3,2,10,0,3]
3809 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
3810 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm12
3811 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm13, %zmm12
3812 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [1,0,10,2,1,0,10,2]
3813 ; AVX512-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
3814 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm14
3815 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm17, %zmm14
3816 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [3,0,12,4,3,0,12,4]
3817 ; AVX512-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
3818 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm29, %zmm2
3819 ; AVX512-NEXT:    movb $48, %sil
3820 ; AVX512-NEXT:    kmovw %esi, %k3
3821 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm18[0],zmm9[0],zmm18[2],zmm9[2],zmm18[4],zmm9[4],zmm18[6],zmm9[6]
3822 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm16, %zmm18
3823 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm18[0,1,2,3],zmm19[4,5,6,7]
3824 ; AVX512-NEXT:    movb $64, %sil
3825 ; AVX512-NEXT:    kmovw %esi, %k1
3826 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm19 {%k1}
3827 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm20
3828 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm30
3829 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm31
3830 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm28
3831 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm8, %zmm22
3832 ; AVX512-NEXT:    movb $24, %sil
3833 ; AVX512-NEXT:    kmovw %esi, %k1
3834 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
3835 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [0,1,2,3,4,15,0,0]
3836 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm22, %zmm18
3837 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,5,15,0]
3838 ; AVX512-NEXT:    vpermi2q %zmm31, %zmm18, %zmm21
3839 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [14,1,2,3,4,5,6,15]
3840 ; AVX512-NEXT:    vpermi2q %zmm28, %zmm21, %zmm18
3841 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [13,0,2,3,4,5,6,14]
3842 ; AVX512-NEXT:    vpermi2q %zmm31, %zmm19, %zmm21
3843 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,13,2,3,4,5,6,7]
3844 ; AVX512-NEXT:    vpermi2q %zmm28, %zmm21, %zmm19
3845 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm26 = [0,8,0,8,0,8,0,8]
3846 ; AVX512-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3847 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm27
3848 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm26, %zmm27
3849 ; AVX512-NEXT:    vpermi2q %zmm31, %zmm3, %zmm26
3850 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm10, %zmm15
3851 ; AVX512-NEXT:    movb $96, %sil
3852 ; AVX512-NEXT:    kmovw %esi, %k2
3853 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
3854 ; AVX512-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
3855 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm25
3856 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm8, %zmm25
3857 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm24
3858 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm16, %zmm24
3859 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm22
3860 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm22
3861 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm11, %zmm13
3862 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm29, %zmm1
3863 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm11
3864 ; AVX512-NEXT:    vpermt2q %zmm31, %zmm21, %zmm11
3865 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
3866 ; AVX512-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3867 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm29, %zmm23
3868 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,1,12,7,0,1,12,7]
3869 ; AVX512-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
3870 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm9, %zmm11
3871 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm12 {%k2}
3872 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [9,1,9,1,9,1,9,1]
3873 ; AVX512-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3874 ; AVX512-NEXT:    vpermt2q %zmm31, %zmm23, %zmm3
3875 ; AVX512-NEXT:    vmovdqa64 64(%r9), %ymm31
3876 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm6, %zmm16
3877 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
3878 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm6, %zmm29
3879 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm7, %zmm17
3880 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm1 {%k3} = zmm6[0],zmm7[0],zmm6[2],zmm7[2],zmm6[4],zmm7[4],zmm6[6],zmm7[6]
3881 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm8, %zmm6
3882 ; AVX512-NEXT:    vpermi2q %zmm30, %zmm20, %zmm8
3883 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [5,0,14,6,5,0,14,6]
3884 ; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
3885 ; AVX512-NEXT:    vpermi2q %zmm20, %zmm30, %zmm7
3886 ; AVX512-NEXT:    vpermi2q %zmm30, %zmm20, %zmm21
3887 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm23, %zmm20
3888 ; AVX512-NEXT:    vmovdqa64 64(%r8), %ymm23
3889 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm30 = ymm23[0],ymm31[0],ymm23[2],ymm31[2]
3890 ; AVX512-NEXT:    movb $28, %sil
3891 ; AVX512-NEXT:    kmovw %esi, %k3
3892 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k3} = zmm30[2,3,2,3],zmm28[2,3,2,3]
3893 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [4,9,0,3,4,9,0,3]
3894 ; AVX512-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
3895 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm30, %zmm3
3896 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm28
3897 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [6,13,14,7,6,13,14,7]
3898 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
3899 ; AVX512-NEXT:    vpermi2q %zmm8, %zmm28, %zmm0
3900 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,13,6,7,0,13,6,7]
3901 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
3902 ; AVX512-NEXT:    vpermi2q %zmm28, %zmm7, %zmm8
3903 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm9, %zmm21
3904 ; AVX512-NEXT:    vmovdqa (%r9), %ymm7
3905 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm13 {%k2}
3906 ; AVX512-NEXT:    vmovdqa (%r8), %ymm9
3907 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm29 = ymm9[0],ymm7[0],ymm9[2],ymm7[2]
3908 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm13 {%k3} = zmm29[2,3,2,3],zmm28[2,3,2,3]
3909 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm30, %zmm20
3910 ; AVX512-NEXT:    vmovdqa64 (%rdx), %xmm28
3911 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm28 = xmm28[0],mem[0]
3912 ; AVX512-NEXT:    vinserti32x4 $1, %xmm28, %ymm0, %ymm28
3913 ; AVX512-NEXT:    movb $12, %sil
3914 ; AVX512-NEXT:    kmovw %esi, %k3
3915 ; AVX512-NEXT:    vinserti64x4 $0, %ymm28, %zmm0, %zmm4 {%k3}
3916 ; AVX512-NEXT:    vinserti32x4 $3, (%rax), %zmm27, %zmm27
3917 ; AVX512-NEXT:    movb $112, %sil
3918 ; AVX512-NEXT:    kmovw %esi, %k4
3919 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm4 {%k4}
3920 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %xmm27
3921 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm27 = xmm27[0],mem[0]
3922 ; AVX512-NEXT:    vinserti32x4 $1, %xmm27, %ymm0, %ymm27
3923 ; AVX512-NEXT:    vinserti64x4 $0, %ymm27, %zmm0, %zmm5 {%k3}
3924 ; AVX512-NEXT:    vinserti32x4 $3, 64(%rax), %zmm26, %zmm26
3925 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k4}
3926 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
3927 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm15 {%k2}
3928 ; AVX512-NEXT:    movb $120, %sil
3929 ; AVX512-NEXT:    kmovw %esi, %k3
3930 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k3}
3931 ; AVX512-NEXT:    vpbroadcastq 72(%rcx), %ymm15
3932 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm15 = mem[0,1,2,3],ymm15[4,5,6,7]
3933 ; AVX512-NEXT:    movb $6, %sil
3934 ; AVX512-NEXT:    kmovw %esi, %k4
3935 ; AVX512-NEXT:    vinserti64x4 $0, %ymm15, %zmm0, %zmm14 {%k4}
3936 ; AVX512-NEXT:    movb $56, %sil
3937 ; AVX512-NEXT:    kmovw %esi, %k5
3938 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k5}
3939 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm6 {%k1}
3940 ; AVX512-NEXT:    movb $-31, %sil
3941 ; AVX512-NEXT:    kmovw %esi, %k1
3942 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
3943 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm16[0,1,2,3],zmm24[4,5,6,7]
3944 ; AVX512-NEXT:    movb $-61, %sil
3945 ; AVX512-NEXT:    kmovw %esi, %k1
3946 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k1}
3947 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm10 {%k2}
3948 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm21 {%k3}
3949 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm3
3950 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
3951 ; AVX512-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm17 {%k4}
3952 ; AVX512-NEXT:    vmovdqa64 %zmm20, %zmm17 {%k5}
3953 ; AVX512-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm23[1],ymm31[1],ymm23[3],ymm31[3]
3954 ; AVX512-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
3955 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
3956 ; AVX512-NEXT:    movb $14, %cl
3957 ; AVX512-NEXT:    kmovw %ecx, %k1
3958 ; AVX512-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm2 {%k1}
3959 ; AVX512-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm9[1],ymm7[1],ymm9[3],ymm7[3]
3960 ; AVX512-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
3961 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
3962 ; AVX512-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k1}
3963 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3964 ; AVX512-NEXT:    vmovdqa64 %zmm17, 64(%rax)
3965 ; AVX512-NEXT:    vmovdqa64 %zmm13, 128(%rax)
3966 ; AVX512-NEXT:    vmovdqa64 %zmm21, 256(%rax)
3967 ; AVX512-NEXT:    vmovdqa64 %zmm0, 320(%rax)
3968 ; AVX512-NEXT:    vmovdqa64 %zmm6, 384(%rax)
3969 ; AVX512-NEXT:    vmovdqa64 %zmm14, 512(%rax)
3970 ; AVX512-NEXT:    vmovdqa64 %zmm12, 576(%rax)
3971 ; AVX512-NEXT:    vmovdqa64 %zmm11, 704(%rax)
3972 ; AVX512-NEXT:    vmovdqa64 %zmm1, 192(%rax)
3973 ; AVX512-NEXT:    vmovdqa64 %zmm5, 448(%rax)
3974 ; AVX512-NEXT:    vmovdqa64 %zmm2, 640(%rax)
3975 ; AVX512-NEXT:    vmovdqa64 %zmm4, (%rax)
3976 ; AVX512-NEXT:    vmovdqa64 %zmm19, 768(%rax)
3977 ; AVX512-NEXT:    vmovdqa64 %zmm18, 832(%rax)
3978 ; AVX512-NEXT:    vzeroupper
3979 ; AVX512-NEXT:    retq
3981 ; AVX512-FCP-LABEL: store_i64_stride7_vf16:
3982 ; AVX512-FCP:       # %bb.0:
3983 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
3984 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm18
3985 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm26
3986 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
3987 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm19
3988 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm3
3989 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm1
3990 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm15
3991 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
3992 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm6
3993 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [6,14,6,14,6,14,6,14]
3994 ; AVX512-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
3995 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
3996 ; AVX512-FCP-NEXT:    vpermt2q %zmm21, %zmm17, %zmm0
3997 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
3998 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm17, %zmm4
3999 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm4[0,1,2,3],zmm0[4,5,6,7]
4000 ; AVX512-FCP-NEXT:    movb $64, %sil
4001 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
4002 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8 {%k1}
4003 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
4004 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm5
4005 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm23
4006 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm12
4007 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [15,7,15,7,15,7,15,7]
4008 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4009 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
4010 ; AVX512-FCP-NEXT:    vpermt2q %zmm21, %zmm11, %zmm7
4011 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9
4012 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm11, %zmm9
4013 ; AVX512-FCP-NEXT:    movb $24, %sil
4014 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
4015 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9 {%k1}
4016 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,1,2,3,4,15,0,0]
4017 ; AVX512-FCP-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
4018 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
4019 ; AVX512-FCP-NEXT:    vpermi2q %zmm23, %zmm7, %zmm9
4020 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [14,1,2,3,4,5,6,15]
4021 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
4022 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4023 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
4024 ; AVX512-FCP-NEXT:    vpermi2q %zmm23, %zmm8, %zmm9
4025 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,13,2,3,4,5,6,7]
4026 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm8
4027 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,8,0,1,0,8,0,1]
4028 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
4029 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9
4030 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm10, %zmm9
4031 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [0,8,0,8,0,8,0,8]
4032 ; AVX512-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4033 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm22
4034 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm7, %zmm22
4035 ; AVX512-FCP-NEXT:    vpermi2q %zmm19, %zmm26, %zmm10
4036 ; AVX512-FCP-NEXT:    vpermi2q %zmm23, %zmm6, %zmm7
4037 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [13,5,13,5,13,5,13,5]
4038 ; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4039 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm25
4040 ; AVX512-FCP-NEXT:    vpermt2q %zmm21, %zmm14, %zmm25
4041 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm24
4042 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm14, %zmm24
4043 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,12,0,5,4,12,0,5]
4044 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
4045 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [3,0,12,4,3,0,12,4]
4046 ; AVX512-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4047 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm16
4048 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm16
4049 ; AVX512-FCP-NEXT:    movb $48, %sil
4050 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
4051 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k2} = zmm26[0],zmm19[0],zmm26[2],zmm19[2],zmm26[4],zmm19[4],zmm26[6],zmm19[6]
4052 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm27 = [11,3,11,3,11,3,11,3]
4053 ; AVX512-FCP-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4054 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm29
4055 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm27, %zmm29
4056 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [1,0,10,2,1,0,10,2]
4057 ; AVX512-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4058 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm19
4059 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm26
4060 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm26
4061 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm28
4062 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm17, %zmm28
4063 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm17
4064 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30
4065 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm14, %zmm30
4066 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm14
4067 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm15, %zmm20
4068 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k2} = zmm18[0],zmm2[0],zmm18[2],zmm2[2],zmm18[4],zmm2[4],zmm18[6],zmm2[6]
4069 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm27
4070 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
4071 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18
4072 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm18
4073 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
4074 ; AVX512-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4075 ; AVX512-FCP-NEXT:    vpermt2q %zmm21, %zmm31, %zmm1
4076 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
4077 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4078 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm6
4079 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm21
4080 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm31, %zmm3
4081 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %ymm23
4082 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm21
4083 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm11
4084 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [5,0,14,6,5,0,14,6]
4085 ; AVX512-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4086 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm31
4087 ; AVX512-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm13
4088 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm4
4089 ; AVX512-FCP-NEXT:    vmovdqa 64(%r8), %ymm0
4090 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm23[0],ymm0[2],ymm23[2]
4091 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm15 = [1,3,7,7]
4092 ; AVX512-FCP-NEXT:    vpermt2q %ymm23, %ymm15, %ymm0
4093 ; AVX512-FCP-NEXT:    movb $96, %sil
4094 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
4095 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k2}
4096 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,1,12,7,0,1,12,7]
4097 ; AVX512-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
4098 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm18
4099 ; AVX512-FCP-NEXT:    movb $28, %sil
4100 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
4101 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k3} = zmm5[2,3,2,3],zmm12[2,3,2,3]
4102 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,9,0,3,4,9,0,3]
4103 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
4104 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm6
4105 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm12
4106 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [6,13,14,7,6,13,14,7]
4107 ; AVX512-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
4108 ; AVX512-FCP-NEXT:    vpermi2q %zmm11, %zmm12, %zmm29
4109 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,13,6,7,0,13,6,7]
4110 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
4111 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm31, %zmm11
4112 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm13
4113 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %ymm23
4114 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3 {%k2}
4115 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %ymm27
4116 ; AVX512-FCP-NEXT:    vpermi2q %ymm23, %ymm27, %ymm15
4117 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm23 = ymm27[0],ymm23[0],ymm27[2],ymm23[2]
4118 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k3} = zmm23[2,3,2,3],zmm12[2,3,2,3]
4119 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm4
4120 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm5
4121 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
4122 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
4123 ; AVX512-FCP-NEXT:    movb $12, %sil
4124 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
4125 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm9 {%k3}
4126 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm5
4127 ; AVX512-FCP-NEXT:    movb $112, %sil
4128 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
4129 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k4}
4130 ; AVX512-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
4131 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
4132 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
4133 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k3}
4134 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm7, %zmm5
4135 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
4136 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm24 {%k2}
4137 ; AVX512-FCP-NEXT:    movb $120, %sil
4138 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
4139 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18 {%k3}
4140 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
4141 ; AVX512-FCP-NEXT:    movb $14, %sil
4142 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
4143 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
4144 ; AVX512-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
4145 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
4146 ; AVX512-FCP-NEXT:    movb $6, %sil
4147 ; AVX512-FCP-NEXT:    kmovw %esi, %k5
4148 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm19 {%k5}
4149 ; AVX512-FCP-NEXT:    movb $56, %sil
4150 ; AVX512-FCP-NEXT:    kmovw %esi, %k6
4151 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k6}
4152 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, %zmm26 {%k1}
4153 ; AVX512-FCP-NEXT:    movb $-31, %sil
4154 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
4155 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm26 {%k1}
4156 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm28[4,5,6,7]
4157 ; AVX512-FCP-NEXT:    movb $-61, %sil
4158 ; AVX512-FCP-NEXT:    kmovw %esi, %k1
4159 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
4160 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm14 {%k2}
4161 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13 {%k3}
4162 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],mem[6,7]
4163 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm20 {%k4}
4164 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm5
4165 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = mem[0,1,2,3],ymm5[4,5,6,7]
4166 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm2 {%k5}
4167 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k6}
4168 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4169 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4170 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
4171 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
4172 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rax)
4173 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 320(%rax)
4174 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 384(%rax)
4175 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
4176 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 576(%rax)
4177 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
4178 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 704(%rax)
4179 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 448(%rax)
4180 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, (%rax)
4181 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 768(%rax)
4182 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
4183 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
4184 ; AVX512-FCP-NEXT:    vzeroupper
4185 ; AVX512-FCP-NEXT:    retq
4187 ; AVX512DQ-LABEL: store_i64_stride7_vf16:
4188 ; AVX512DQ:       # %bb.0:
4189 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4190 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm6
4191 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm18
4192 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm7
4193 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm12
4194 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm13
4195 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm20
4196 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm1
4197 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm0
4198 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm16
4199 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [6,14,6,14,6,14,6,14]
4200 ; AVX512DQ-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4201 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm19
4202 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm19
4203 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
4204 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4205 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm21
4206 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm21
4207 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm22
4208 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,8,0,1,0,8,0,1]
4209 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
4210 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm4
4211 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm5, %zmm4
4212 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
4213 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4214 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm2
4215 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
4216 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4217 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
4218 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm23
4219 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [2,10,0,3,2,10,0,3]
4220 ; AVX512DQ-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
4221 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm8
4222 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm8
4223 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
4224 ; AVX512DQ-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
4225 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm14
4226 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm15, %zmm14
4227 ; AVX512DQ-NEXT:    vpermi2q %zmm12, %zmm18, %zmm5
4228 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [3,0,12,4,3,0,12,4]
4229 ; AVX512DQ-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
4230 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm29, %zmm0
4231 ; AVX512DQ-NEXT:    movb $48, %sil
4232 ; AVX512DQ-NEXT:    kmovw %esi, %k3
4233 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k3} = zmm18[0],zmm12[0],zmm18[2],zmm12[2],zmm18[4],zmm12[4],zmm18[6],zmm12[6]
4234 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm17, %zmm18
4235 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm18[0,1,2,3],zmm19[4,5,6,7]
4236 ; AVX512DQ-NEXT:    movb $64, %sil
4237 ; AVX512DQ-NEXT:    kmovw %esi, %k1
4238 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm19 {%k1}
4239 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm20
4240 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm28
4241 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm30
4242 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm27
4243 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm9, %zmm22
4244 ; AVX512DQ-NEXT:    movb $24, %sil
4245 ; AVX512DQ-NEXT:    kmovw %esi, %k1
4246 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
4247 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [0,1,2,3,4,15,0,0]
4248 ; AVX512DQ-NEXT:    vpermi2q %zmm16, %zmm22, %zmm18
4249 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,5,15,0]
4250 ; AVX512DQ-NEXT:    vpermi2q %zmm30, %zmm18, %zmm21
4251 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [14,1,2,3,4,5,6,15]
4252 ; AVX512DQ-NEXT:    vpermi2q %zmm27, %zmm21, %zmm18
4253 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [13,0,2,3,4,5,6,14]
4254 ; AVX512DQ-NEXT:    vpermi2q %zmm30, %zmm19, %zmm21
4255 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,13,2,3,4,5,6,7]
4256 ; AVX512DQ-NEXT:    vpermi2q %zmm27, %zmm21, %zmm19
4257 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [0,8,0,8,0,8,0,8]
4258 ; AVX512DQ-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4259 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm26
4260 ; AVX512DQ-NEXT:    vpermt2q %zmm28, %zmm31, %zmm26
4261 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm10, %zmm2
4262 ; AVX512DQ-NEXT:    movb $96, %sil
4263 ; AVX512DQ-NEXT:    kmovw %esi, %k2
4264 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
4265 ; AVX512DQ-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4266 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm25
4267 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm9, %zmm25
4268 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm24
4269 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm24
4270 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm22
4271 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm10, %zmm22
4272 ; AVX512DQ-NEXT:    vpermi2q %zmm1, %zmm13, %zmm11
4273 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm29, %zmm1
4274 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm13
4275 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm21, %zmm13
4276 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
4277 ; AVX512DQ-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4278 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm29, %zmm23
4279 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,1,12,7,0,1,12,7]
4280 ; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
4281 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm12, %zmm13
4282 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm8 {%k2}
4283 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm3
4284 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm31, %zmm16
4285 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [9,1,9,1,9,1,9,1]
4286 ; AVX512DQ-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4287 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm31, %zmm3
4288 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %ymm23
4289 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm6, %zmm17
4290 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
4291 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm6, %zmm29
4292 ; AVX512DQ-NEXT:    vpermi2q %zmm6, %zmm7, %zmm15
4293 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm1 {%k3} = zmm6[0],zmm7[0],zmm6[2],zmm7[2],zmm6[4],zmm7[4],zmm6[6],zmm7[6]
4294 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm9, %zmm6
4295 ; AVX512DQ-NEXT:    vpermi2q %zmm28, %zmm20, %zmm9
4296 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [5,0,14,6,5,0,14,6]
4297 ; AVX512DQ-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
4298 ; AVX512DQ-NEXT:    vpermi2q %zmm20, %zmm28, %zmm7
4299 ; AVX512DQ-NEXT:    vpermi2q %zmm28, %zmm20, %zmm21
4300 ; AVX512DQ-NEXT:    vpermt2q %zmm28, %zmm31, %zmm20
4301 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %ymm28
4302 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm30 = ymm28[0],ymm23[0],ymm28[2],ymm23[2]
4303 ; AVX512DQ-NEXT:    movb $28, %sil
4304 ; AVX512DQ-NEXT:    kmovw %esi, %k3
4305 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm8 {%k3} = zmm30[2,3,2,3],zmm27[2,3,2,3]
4306 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [4,9,0,3,4,9,0,3]
4307 ; AVX512DQ-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4308 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm30, %zmm3
4309 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm27
4310 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [6,13,14,7,6,13,14,7]
4311 ; AVX512DQ-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4312 ; AVX512DQ-NEXT:    vpermi2q %zmm9, %zmm27, %zmm31
4313 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
4314 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
4315 ; AVX512DQ-NEXT:    vpermi2q %zmm27, %zmm7, %zmm9
4316 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm12, %zmm21
4317 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm7
4318 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm11 {%k2}
4319 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm12
4320 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm29 = ymm12[0],ymm7[0],ymm12[2],ymm7[2]
4321 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k3} = zmm29[2,3,2,3],zmm27[2,3,2,3]
4322 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm30, %zmm20
4323 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %xmm27
4324 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm27 = xmm27[0],mem[0]
4325 ; AVX512DQ-NEXT:    vinserti32x4 $1, %xmm27, %ymm0, %ymm27
4326 ; AVX512DQ-NEXT:    movb $12, %sil
4327 ; AVX512DQ-NEXT:    kmovw %esi, %k5
4328 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm27, %zmm0, %zmm4 {%k5}
4329 ; AVX512DQ-NEXT:    movb $112, %sil
4330 ; AVX512DQ-NEXT:    kmovw %esi, %k7
4331 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%rax), %zmm26, %zmm4 {%k7}
4332 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
4333 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm2 {%k2}
4334 ; AVX512DQ-NEXT:    movb $120, %sil
4335 ; AVX512DQ-NEXT:    kmovw %esi, %k3
4336 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
4337 ; AVX512DQ-NEXT:    vpbroadcastq 72(%rcx), %ymm2
4338 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
4339 ; AVX512DQ-NEXT:    movb $6, %sil
4340 ; AVX512DQ-NEXT:    kmovw %esi, %k4
4341 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm14 {%k4}
4342 ; AVX512DQ-NEXT:    movb $56, %sil
4343 ; AVX512DQ-NEXT:    kmovw %esi, %k6
4344 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k6}
4345 ; AVX512DQ-NEXT:    vmovdqa 64(%rdx), %xmm2
4346 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
4347 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
4348 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm5 {%k5}
4349 ; AVX512DQ-NEXT:    vinserti64x2 $3, 64(%rax), %zmm16, %zmm5 {%k7}
4350 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm6 {%k1}
4351 ; AVX512DQ-NEXT:    movb $-31, %sil
4352 ; AVX512DQ-NEXT:    kmovw %esi, %k1
4353 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, %zmm6 {%k1}
4354 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm17[0,1,2,3],zmm24[4,5,6,7]
4355 ; AVX512DQ-NEXT:    movb $-61, %sil
4356 ; AVX512DQ-NEXT:    kmovw %esi, %k1
4357 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
4358 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm10 {%k2}
4359 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm21 {%k3}
4360 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm3
4361 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
4362 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm15 {%k4}
4363 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm15 {%k6}
4364 ; AVX512DQ-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm28[1],ymm23[1],ymm28[3],ymm23[3]
4365 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
4366 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
4367 ; AVX512DQ-NEXT:    movb $14, %cl
4368 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
4369 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm0 {%k1}
4370 ; AVX512DQ-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm12[1],ymm7[1],ymm12[3],ymm7[3]
4371 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
4372 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
4373 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k1}
4374 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4375 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 64(%rax)
4376 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 128(%rax)
4377 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 192(%rax)
4378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 256(%rax)
4379 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 320(%rax)
4380 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 384(%rax)
4381 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 448(%rax)
4382 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 512(%rax)
4383 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 576(%rax)
4384 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 640(%rax)
4385 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 704(%rax)
4386 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, (%rax)
4387 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 768(%rax)
4388 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 832(%rax)
4389 ; AVX512DQ-NEXT:    vzeroupper
4390 ; AVX512DQ-NEXT:    retq
4392 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf16:
4393 ; AVX512DQ-FCP:       # %bb.0:
4394 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4395 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm10
4396 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
4397 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
4398 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm13
4399 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm3
4400 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm1
4401 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm14
4402 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm15
4403 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm21
4404 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [6,14,6,14,6,14,6,14]
4405 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4406 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
4407 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm18, %zmm4
4408 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
4409 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm5
4410 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm4[4,5,6,7]
4411 ; AVX512DQ-FCP-NEXT:    movb $64, %sil
4412 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
4413 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm4 {%k1}
4414 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4415 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm7
4416 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm12
4417 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
4418 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm9
4419 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
4420 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [15,7,15,7,15,7,15,7]
4421 ; AVX512DQ-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4422 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
4423 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm20, %zmm8
4424 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
4425 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm20, %zmm16
4426 ; AVX512DQ-FCP-NEXT:    movb $24, %sil
4427 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
4428 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm16 {%k1}
4429 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,2,3,4,15,0,0]
4430 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm21, %zmm16, %zmm31
4431 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [0,8,0,1,0,8,0,1]
4432 ; AVX512DQ-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
4433 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
4434 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm22, %zmm8
4435 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %xmm16
4436 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %xmm27
4437 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm16 = xmm16[0],mem[0]
4438 ; AVX512DQ-FCP-NEXT:    vinserti32x4 $1, %xmm16, %ymm0, %ymm16
4439 ; AVX512DQ-FCP-NEXT:    movb $12, %sil
4440 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
4441 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm16, %zmm0, %zmm8 {%k3}
4442 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm26 = [0,8,0,8,0,8,0,8]
4443 ; AVX512DQ-FCP-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4444 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm28
4445 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm26, %zmm28
4446 ; AVX512DQ-FCP-NEXT:    movb $112, %sil
4447 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
4448 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [3,0,12,4,3,0,12,4]
4449 ; AVX512DQ-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4450 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
4451 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm17, %zmm16
4452 ; AVX512DQ-FCP-NEXT:    movb $48, %dil
4453 ; AVX512DQ-FCP-NEXT:    kmovw %edi, %k2
4454 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k2} = zmm0[0],zmm13[0],zmm0[2],zmm13[2],zmm0[4],zmm13[4],zmm0[6],zmm13[6]
4455 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
4456 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [1,0,10,2,1,0,10,2]
4457 ; AVX512DQ-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
4458 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm19
4459 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm25, %zmm19
4460 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm22, %zmm0
4461 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm22 = xmm27[0],mem[0]
4462 ; AVX512DQ-FCP-NEXT:    vinserti32x4 $1, %xmm22, %ymm0, %ymm22
4463 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm22, %zmm0, %zmm0 {%k3}
4464 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
4465 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm28, %zmm8 {%k3}
4466 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm28 = [13,5,13,5,13,5,13,5]
4467 ; AVX512DQ-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4468 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm29
4469 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm28, %zmm29
4470 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm28, %zmm24
4471 ; AVX512DQ-FCP-NEXT:    movb $96, %sil
4472 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22
4473 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm27
4474 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm26, %zmm21
4475 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm21, %zmm0 {%k3}
4476 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
4477 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24 {%k3}
4478 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
4479 ; AVX512DQ-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4480 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm22
4481 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [0,1,12,7,0,1,12,7]
4482 ; AVX512DQ-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
4483 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm29, %zmm22
4484 ; AVX512DQ-FCP-NEXT:    movb $120, %sil
4485 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30
4486 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm30
4487 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm26
4488 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm26
4489 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm26 {%k1}
4490 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm20
4491 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [6,13,14,7,6,13,14,7]
4492 ; AVX512DQ-FCP-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4493 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm20, %zmm9, %zmm30
4494 ; AVX512DQ-FCP-NEXT:    movb $-31, %dil
4495 ; AVX512DQ-FCP-NEXT:    kmovw %edi, %k1
4496 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm26 {%k1}
4497 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20
4498 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm18, %zmm20
4499 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm18
4500 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm18[0,1,2,3],zmm20[4,5,6,7]
4501 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
4502 ; AVX512DQ-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4503 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm7, %zmm12, %zmm20
4504 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,13,6,7,0,13,6,7]
4505 ; AVX512DQ-FCP-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4506 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm9, %zmm20, %zmm30
4507 ; AVX512DQ-FCP-NEXT:    movb $-61, %dil
4508 ; AVX512DQ-FCP-NEXT:    kmovw %edi, %k1
4509 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k1}
4510 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
4511 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm22 {%k1}
4512 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20
4513 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm28, %zmm20
4514 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm28
4515 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm28 {%k3}
4516 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm21
4517 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm29, %zmm21
4518 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm21 {%k1}
4519 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %ymm20
4520 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %ymm24
4521 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %ymm28
4522 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm4 = [1,3,7,7]
4523 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm28, %ymm11
4524 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm24, %ymm4, %ymm11
4525 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],mem[6,7]
4526 ; AVX512DQ-FCP-NEXT:    movb $14, %sil
4527 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm14, %zmm17
4528 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k2} = zmm10[0],zmm2[0],zmm10[2],zmm2[2],zmm10[4],zmm2[4],zmm10[6],zmm2[6]
4529 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k1
4530 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm0, %zmm16 {%k1}
4531 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm11
4532 ; AVX512DQ-FCP-NEXT:    vpermi2q %ymm20, %ymm11, %ymm4
4533 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],mem[6,7]
4534 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k1}
4535 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
4536 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4537 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm1
4538 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm3
4539 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [11,3,11,3,11,3,11,3]
4540 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4541 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm23
4542 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm4
4543 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm2
4544 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm10 = ymm28[0],ymm24[0],ymm28[2],ymm24[2]
4545 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1 {%k3}
4546 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k3}
4547 ; AVX512DQ-FCP-NEXT:    movb $28, %al
4548 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
4549 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm10[2,3,2,3],zmm5[2,3,2,3]
4550 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm11[0],ymm20[0],ymm11[2],ymm20[2]
4551 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm4[2,3,2,3],zmm9[2,3,2,3]
4552 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm4
4553 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
4554 ; AVX512DQ-FCP-NEXT:    movb $6, %al
4555 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
4556 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm19 {%k1}
4557 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [9,1,9,1,9,1,9,1]
4558 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4559 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm4, %zmm7
4560 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
4561 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,9,0,3,4,9,0,3]
4562 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
4563 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm7
4564 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm4, %zmm27
4565 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm4
4566 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
4567 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm2 {%k1}
4568 ; AVX512DQ-FCP-NEXT:    movb $56, %al
4569 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
4570 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm19 {%k1}
4571 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
4572 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,5,15,0]
4573 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm6, %zmm31, %zmm4
4574 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
4575 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
4576 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
4577 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [14,1,2,3,4,5,6,15]
4578 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
4579 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,13,2,3,4,5,6,7]
4580 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm5, %zmm7, %zmm4
4581 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4582 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4583 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
4584 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
4585 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 256(%rax)
4586 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 320(%rax)
4587 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 384(%rax)
4588 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 448(%rax)
4589 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
4590 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 576(%rax)
4591 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
4592 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 704(%rax)
4593 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)
4594 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
4595 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
4596 ; AVX512DQ-FCP-NEXT:    vzeroupper
4597 ; AVX512DQ-FCP-NEXT:    retq
4599 ; AVX512BW-LABEL: store_i64_stride7_vf16:
4600 ; AVX512BW:       # %bb.0:
4601 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4602 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm6
4603 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm18
4604 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm7
4605 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm9
4606 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm11
4607 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm20
4608 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm1
4609 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm2
4610 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm3
4611 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm16 = [6,14,6,14,6,14,6,14]
4612 ; AVX512BW-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4613 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm19
4614 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm16, %zmm19
4615 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [15,7,15,7,15,7,15,7]
4616 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4617 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm21
4618 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm21
4619 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm22
4620 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,8,0,1,0,8,0,1]
4621 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
4622 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
4623 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm5, %zmm4
4624 ; AVX512BW-NEXT:    vpermi2q %zmm9, %zmm18, %zmm5
4625 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
4626 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4627 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm0
4628 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm10, %zmm0
4629 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4630 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm15
4631 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm23
4632 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [2,10,0,3,2,10,0,3]
4633 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
4634 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm12
4635 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm12
4636 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [1,0,10,2,1,0,10,2]
4637 ; AVX512BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
4638 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm14
4639 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm17, %zmm14
4640 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [3,0,12,4,3,0,12,4]
4641 ; AVX512BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
4642 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm29, %zmm2
4643 ; AVX512BW-NEXT:    movb $48, %sil
4644 ; AVX512BW-NEXT:    kmovd %esi, %k3
4645 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm18[0],zmm9[0],zmm18[2],zmm9[2],zmm18[4],zmm9[4],zmm18[6],zmm9[6]
4646 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm16, %zmm18
4647 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm18[0,1,2,3],zmm19[4,5,6,7]
4648 ; AVX512BW-NEXT:    movb $64, %sil
4649 ; AVX512BW-NEXT:    kmovd %esi, %k1
4650 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm19 {%k1}
4651 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm20
4652 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm30
4653 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm31
4654 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm28
4655 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm8, %zmm22
4656 ; AVX512BW-NEXT:    movb $24, %sil
4657 ; AVX512BW-NEXT:    kmovd %esi, %k1
4658 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
4659 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [0,1,2,3,4,15,0,0]
4660 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm22, %zmm18
4661 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,5,15,0]
4662 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm18, %zmm21
4663 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [14,1,2,3,4,5,6,15]
4664 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm21, %zmm18
4665 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [13,0,2,3,4,5,6,14]
4666 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm19, %zmm21
4667 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,13,2,3,4,5,6,7]
4668 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm21, %zmm19
4669 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm26 = [0,8,0,8,0,8,0,8]
4670 ; AVX512BW-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4671 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm27
4672 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm26, %zmm27
4673 ; AVX512BW-NEXT:    vpermi2q %zmm31, %zmm3, %zmm26
4674 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm10, %zmm15
4675 ; AVX512BW-NEXT:    movb $96, %sil
4676 ; AVX512BW-NEXT:    kmovd %esi, %k2
4677 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
4678 ; AVX512BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
4679 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm25
4680 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm8, %zmm25
4681 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm24
4682 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm16, %zmm24
4683 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm22
4684 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm22
4685 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm11, %zmm13
4686 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm29, %zmm1
4687 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm11
4688 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm21, %zmm11
4689 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
4690 ; AVX512BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4691 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm29, %zmm23
4692 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,1,12,7,0,1,12,7]
4693 ; AVX512BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
4694 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm9, %zmm11
4695 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm12 {%k2}
4696 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [9,1,9,1,9,1,9,1]
4697 ; AVX512BW-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4698 ; AVX512BW-NEXT:    vpermt2q %zmm31, %zmm23, %zmm3
4699 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %ymm31
4700 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm16
4701 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
4702 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm29
4703 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm17
4704 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm1 {%k3} = zmm6[0],zmm7[0],zmm6[2],zmm7[2],zmm6[4],zmm7[4],zmm6[6],zmm7[6]
4705 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm8, %zmm6
4706 ; AVX512BW-NEXT:    vpermi2q %zmm30, %zmm20, %zmm8
4707 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [5,0,14,6,5,0,14,6]
4708 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
4709 ; AVX512BW-NEXT:    vpermi2q %zmm20, %zmm30, %zmm7
4710 ; AVX512BW-NEXT:    vpermi2q %zmm30, %zmm20, %zmm21
4711 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm23, %zmm20
4712 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %ymm23
4713 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm30 = ymm23[0],ymm31[0],ymm23[2],ymm31[2]
4714 ; AVX512BW-NEXT:    movb $28, %sil
4715 ; AVX512BW-NEXT:    kmovd %esi, %k3
4716 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k3} = zmm30[2,3,2,3],zmm28[2,3,2,3]
4717 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [4,9,0,3,4,9,0,3]
4718 ; AVX512BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
4719 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm30, %zmm3
4720 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm28
4721 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [6,13,14,7,6,13,14,7]
4722 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
4723 ; AVX512BW-NEXT:    vpermi2q %zmm8, %zmm28, %zmm0
4724 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,13,6,7,0,13,6,7]
4725 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
4726 ; AVX512BW-NEXT:    vpermi2q %zmm28, %zmm7, %zmm8
4727 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm9, %zmm21
4728 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm7
4729 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm13 {%k2}
4730 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm9
4731 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm29 = ymm9[0],ymm7[0],ymm9[2],ymm7[2]
4732 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm13 {%k3} = zmm29[2,3,2,3],zmm28[2,3,2,3]
4733 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm30, %zmm20
4734 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %xmm28
4735 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm28 = xmm28[0],mem[0]
4736 ; AVX512BW-NEXT:    vinserti32x4 $1, %xmm28, %ymm0, %ymm28
4737 ; AVX512BW-NEXT:    movb $12, %sil
4738 ; AVX512BW-NEXT:    kmovd %esi, %k3
4739 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm28, %zmm0, %zmm4 {%k3}
4740 ; AVX512BW-NEXT:    vinserti32x4 $3, (%rax), %zmm27, %zmm27
4741 ; AVX512BW-NEXT:    movb $112, %sil
4742 ; AVX512BW-NEXT:    kmovd %esi, %k4
4743 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm4 {%k4}
4744 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %xmm27
4745 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm27 = xmm27[0],mem[0]
4746 ; AVX512BW-NEXT:    vinserti32x4 $1, %xmm27, %ymm0, %ymm27
4747 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm27, %zmm0, %zmm5 {%k3}
4748 ; AVX512BW-NEXT:    vinserti32x4 $3, 64(%rax), %zmm26, %zmm26
4749 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm5 {%k4}
4750 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
4751 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm15 {%k2}
4752 ; AVX512BW-NEXT:    movb $120, %sil
4753 ; AVX512BW-NEXT:    kmovd %esi, %k3
4754 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm11 {%k3}
4755 ; AVX512BW-NEXT:    vpbroadcastq 72(%rcx), %ymm15
4756 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm15 = mem[0,1,2,3],ymm15[4,5,6,7]
4757 ; AVX512BW-NEXT:    movb $6, %sil
4758 ; AVX512BW-NEXT:    kmovd %esi, %k4
4759 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm15, %zmm0, %zmm14 {%k4}
4760 ; AVX512BW-NEXT:    movb $56, %sil
4761 ; AVX512BW-NEXT:    kmovd %esi, %k5
4762 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k5}
4763 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm6 {%k1}
4764 ; AVX512BW-NEXT:    movb $-31, %sil
4765 ; AVX512BW-NEXT:    kmovd %esi, %k1
4766 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
4767 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm16[0,1,2,3],zmm24[4,5,6,7]
4768 ; AVX512BW-NEXT:    movb $-61, %sil
4769 ; AVX512BW-NEXT:    kmovd %esi, %k1
4770 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm0 {%k1}
4771 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm10 {%k2}
4772 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm21 {%k3}
4773 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm3
4774 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
4775 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm17 {%k4}
4776 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, %zmm17 {%k5}
4777 ; AVX512BW-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm23[1],ymm31[1],ymm23[3],ymm31[3]
4778 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
4779 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
4780 ; AVX512BW-NEXT:    movb $14, %cl
4781 ; AVX512BW-NEXT:    kmovd %ecx, %k1
4782 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm2 {%k1}
4783 ; AVX512BW-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm9[1],ymm7[1],ymm9[3],ymm7[3]
4784 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
4785 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
4786 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k1}
4787 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4788 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 64(%rax)
4789 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 128(%rax)
4790 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 256(%rax)
4791 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 320(%rax)
4792 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 384(%rax)
4793 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 512(%rax)
4794 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 576(%rax)
4795 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 704(%rax)
4796 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
4797 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 448(%rax)
4798 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 640(%rax)
4799 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, (%rax)
4800 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 768(%rax)
4801 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 832(%rax)
4802 ; AVX512BW-NEXT:    vzeroupper
4803 ; AVX512BW-NEXT:    retq
4805 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf16:
4806 ; AVX512BW-FCP:       # %bb.0:
4807 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4808 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm18
4809 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm26
4810 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
4811 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm19
4812 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm3
4813 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm1
4814 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm15
4815 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
4816 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm6
4817 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [6,14,6,14,6,14,6,14]
4818 ; AVX512BW-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4819 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
4820 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm21, %zmm17, %zmm0
4821 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm4
4822 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm17, %zmm4
4823 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm8 = zmm4[0,1,2,3],zmm0[4,5,6,7]
4824 ; AVX512BW-FCP-NEXT:    movb $64, %sil
4825 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
4826 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm8 {%k1}
4827 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm4
4828 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm5
4829 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm23
4830 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm12
4831 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [15,7,15,7,15,7,15,7]
4832 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4833 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm7
4834 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm21, %zmm11, %zmm7
4835 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm9
4836 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm11, %zmm9
4837 ; AVX512BW-FCP-NEXT:    movb $24, %sil
4838 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
4839 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm9 {%k1}
4840 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,1,2,3,4,15,0,0]
4841 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
4842 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
4843 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm23, %zmm7, %zmm9
4844 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [14,1,2,3,4,5,6,15]
4845 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
4846 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
4847 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
4848 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm23, %zmm8, %zmm9
4849 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,13,2,3,4,5,6,7]
4850 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm8
4851 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [0,8,0,1,0,8,0,1]
4852 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
4853 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9
4854 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm10, %zmm9
4855 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [0,8,0,8,0,8,0,8]
4856 ; AVX512BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4857 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm22
4858 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm7, %zmm22
4859 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm19, %zmm26, %zmm10
4860 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm23, %zmm6, %zmm7
4861 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm14 = [13,5,13,5,13,5,13,5]
4862 ; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4863 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm25
4864 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm21, %zmm14, %zmm25
4865 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm24
4866 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm14, %zmm24
4867 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,12,0,5,4,12,0,5]
4868 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
4869 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [3,0,12,4,3,0,12,4]
4870 ; AVX512BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
4871 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm16
4872 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm16
4873 ; AVX512BW-FCP-NEXT:    movb $48, %sil
4874 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
4875 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k2} = zmm26[0],zmm19[0],zmm26[2],zmm19[2],zmm26[4],zmm19[4],zmm26[6],zmm19[6]
4876 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm27 = [11,3,11,3,11,3,11,3]
4877 ; AVX512BW-FCP-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4878 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm29
4879 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm27, %zmm29
4880 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [1,0,10,2,1,0,10,2]
4881 ; AVX512BW-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4882 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm19
4883 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm26
4884 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm11, %zmm26
4885 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm28
4886 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm17, %zmm28
4887 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm17
4888 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30
4889 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm14, %zmm30
4890 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm14
4891 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm15, %zmm20
4892 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k2} = zmm18[0],zmm2[0],zmm18[2],zmm2[2],zmm18[4],zmm2[4],zmm18[6],zmm2[6]
4893 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm18, %zmm27
4894 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
4895 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm18
4896 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm18
4897 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
4898 ; AVX512BW-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4899 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm21, %zmm31, %zmm1
4900 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
4901 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
4902 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm6
4903 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm21
4904 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm31, %zmm3
4905 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %ymm23
4906 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm11, %zmm21
4907 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm11
4908 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [5,0,14,6,5,0,14,6]
4909 ; AVX512BW-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
4910 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm5, %zmm31
4911 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm13
4912 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm4
4913 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm0
4914 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm23[0],ymm0[2],ymm23[2]
4915 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm15 = [1,3,7,7]
4916 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm23, %ymm15, %ymm0
4917 ; AVX512BW-FCP-NEXT:    movb $96, %sil
4918 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
4919 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k2}
4920 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm23 = [0,1,12,7,0,1,12,7]
4921 ; AVX512BW-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3]
4922 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm18
4923 ; AVX512BW-FCP-NEXT:    movb $28, %sil
4924 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
4925 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k3} = zmm5[2,3,2,3],zmm12[2,3,2,3]
4926 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [4,9,0,3,4,9,0,3]
4927 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
4928 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm6
4929 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm12
4930 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [6,13,14,7,6,13,14,7]
4931 ; AVX512BW-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
4932 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm11, %zmm12, %zmm29
4933 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [0,13,6,7,0,13,6,7]
4934 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
4935 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm31, %zmm11
4936 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm13
4937 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %ymm23
4938 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3 {%k2}
4939 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %ymm27
4940 ; AVX512BW-FCP-NEXT:    vpermi2q %ymm23, %ymm27, %ymm15
4941 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm23 = ymm27[0],ymm23[0],ymm27[2],ymm23[2]
4942 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k3} = zmm23[2,3,2,3],zmm12[2,3,2,3]
4943 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm4
4944 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm5
4945 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
4946 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
4947 ; AVX512BW-FCP-NEXT:    movb $12, %sil
4948 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
4949 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm9 {%k3}
4950 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm5
4951 ; AVX512BW-FCP-NEXT:    movb $112, %sil
4952 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
4953 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9 {%k4}
4954 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
4955 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
4956 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
4957 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k3}
4958 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm7, %zmm5
4959 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
4960 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm24 {%k2}
4961 ; AVX512BW-FCP-NEXT:    movb $120, %sil
4962 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
4963 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm18 {%k3}
4964 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
4965 ; AVX512BW-FCP-NEXT:    movb $14, %sil
4966 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
4967 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
4968 ; AVX512BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
4969 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
4970 ; AVX512BW-FCP-NEXT:    movb $6, %sil
4971 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k5
4972 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm19 {%k5}
4973 ; AVX512BW-FCP-NEXT:    movb $56, %sil
4974 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k6
4975 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k6}
4976 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm26 {%k1}
4977 ; AVX512BW-FCP-NEXT:    movb $-31, %sil
4978 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
4979 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm26 {%k1}
4980 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm28[4,5,6,7]
4981 ; AVX512BW-FCP-NEXT:    movb $-61, %sil
4982 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k1
4983 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
4984 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm14 {%k2}
4985 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm13 {%k3}
4986 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = ymm15[0,1,2,3,4,5],mem[6,7]
4987 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm20 {%k4}
4988 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm5
4989 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm5 = mem[0,1,2,3],ymm5[4,5,6,7]
4990 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm2 {%k5}
4991 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k6}
4992 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
4993 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
4994 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
4995 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
4996 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 256(%rax)
4997 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 320(%rax)
4998 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 384(%rax)
4999 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
5000 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 576(%rax)
5001 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
5002 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 704(%rax)
5003 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 448(%rax)
5004 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, (%rax)
5005 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 768(%rax)
5006 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
5007 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
5008 ; AVX512BW-FCP-NEXT:    vzeroupper
5009 ; AVX512BW-FCP-NEXT:    retq
5011 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf16:
5012 ; AVX512DQ-BW:       # %bb.0:
5013 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5014 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm6
5015 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm18
5016 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm7
5017 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm12
5018 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm13
5019 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm20
5020 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm1
5021 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm0
5022 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm16
5023 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [6,14,6,14,6,14,6,14]
5024 ; AVX512DQ-BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5025 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm19
5026 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm19
5027 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [15,7,15,7,15,7,15,7]
5028 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5029 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm21
5030 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm21
5031 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm22
5032 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [0,8,0,1,0,8,0,1]
5033 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
5034 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm4
5035 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm5, %zmm4
5036 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [13,5,13,5,13,5,13,5]
5037 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5038 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm2
5039 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
5040 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5041 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
5042 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm23
5043 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [2,10,0,3,2,10,0,3]
5044 ; AVX512DQ-BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
5045 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm8
5046 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm8
5047 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
5048 ; AVX512DQ-BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
5049 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm14
5050 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm15, %zmm14
5051 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm12, %zmm18, %zmm5
5052 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [3,0,12,4,3,0,12,4]
5053 ; AVX512DQ-BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
5054 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm29, %zmm0
5055 ; AVX512DQ-BW-NEXT:    movb $48, %sil
5056 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
5057 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k3} = zmm18[0],zmm12[0],zmm18[2],zmm12[2],zmm18[4],zmm12[4],zmm18[6],zmm12[6]
5058 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm17, %zmm18
5059 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm19 = zmm18[0,1,2,3],zmm19[4,5,6,7]
5060 ; AVX512DQ-BW-NEXT:    movb $64, %sil
5061 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
5062 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm19 {%k1}
5063 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm20
5064 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm28
5065 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm30
5066 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm27
5067 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm9, %zmm22
5068 ; AVX512DQ-BW-NEXT:    movb $24, %sil
5069 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
5070 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm22 {%k1}
5071 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [0,1,2,3,4,15,0,0]
5072 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm16, %zmm22, %zmm18
5073 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,5,15,0]
5074 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm30, %zmm18, %zmm21
5075 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm18 = [14,1,2,3,4,5,6,15]
5076 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm27, %zmm21, %zmm18
5077 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [13,0,2,3,4,5,6,14]
5078 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm30, %zmm19, %zmm21
5079 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm19 = [0,13,2,3,4,5,6,7]
5080 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm27, %zmm21, %zmm19
5081 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [0,8,0,8,0,8,0,8]
5082 ; AVX512DQ-BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5083 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm26
5084 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm28, %zmm31, %zmm26
5085 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm10, %zmm2
5086 ; AVX512DQ-BW-NEXT:    movb $96, %sil
5087 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
5088 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
5089 ; AVX512DQ-BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
5090 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm25
5091 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm9, %zmm25
5092 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm24
5093 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm24
5094 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm22
5095 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm22
5096 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm1, %zmm13, %zmm11
5097 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm29, %zmm1
5098 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm13
5099 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm21, %zmm13
5100 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
5101 ; AVX512DQ-BW-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5102 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm29, %zmm23
5103 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,1,12,7,0,1,12,7]
5104 ; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
5105 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm12, %zmm13
5106 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm8 {%k2}
5107 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm3
5108 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm31, %zmm16
5109 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [9,1,9,1,9,1,9,1]
5110 ; AVX512DQ-BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5111 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm31, %zmm3
5112 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %ymm23
5113 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm17
5114 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm10
5115 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm6, %zmm29
5116 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm15
5117 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm1 {%k3} = zmm6[0],zmm7[0],zmm6[2],zmm7[2],zmm6[4],zmm7[4],zmm6[6],zmm7[6]
5118 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm9, %zmm6
5119 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm28, %zmm20, %zmm9
5120 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [5,0,14,6,5,0,14,6]
5121 ; AVX512DQ-BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
5122 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm20, %zmm28, %zmm7
5123 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm28, %zmm20, %zmm21
5124 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm28, %zmm31, %zmm20
5125 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %ymm28
5126 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm30 = ymm28[0],ymm23[0],ymm28[2],ymm23[2]
5127 ; AVX512DQ-BW-NEXT:    movb $28, %sil
5128 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
5129 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm8 {%k3} = zmm30[2,3,2,3],zmm27[2,3,2,3]
5130 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [4,9,0,3,4,9,0,3]
5131 ; AVX512DQ-BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
5132 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm30, %zmm3
5133 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm27
5134 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [6,13,14,7,6,13,14,7]
5135 ; AVX512DQ-BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
5136 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm9, %zmm27, %zmm31
5137 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [0,13,6,7,0,13,6,7]
5138 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
5139 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm27, %zmm7, %zmm9
5140 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm12, %zmm21
5141 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm7
5142 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm11 {%k2}
5143 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm12
5144 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm29 = ymm12[0],ymm7[0],ymm12[2],ymm7[2]
5145 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k3} = zmm29[2,3,2,3],zmm27[2,3,2,3]
5146 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm30, %zmm20
5147 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %xmm27
5148 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm27 = xmm27[0],mem[0]
5149 ; AVX512DQ-BW-NEXT:    vinserti32x4 $1, %xmm27, %ymm0, %ymm27
5150 ; AVX512DQ-BW-NEXT:    movb $12, %sil
5151 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
5152 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm27, %zmm0, %zmm4 {%k5}
5153 ; AVX512DQ-BW-NEXT:    movb $112, %sil
5154 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k7
5155 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%rax), %zmm26, %zmm4 {%k7}
5156 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
5157 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm2 {%k2}
5158 ; AVX512DQ-BW-NEXT:    movb $120, %sil
5159 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
5160 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k3}
5161 ; AVX512DQ-BW-NEXT:    vpbroadcastq 72(%rcx), %ymm2
5162 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
5163 ; AVX512DQ-BW-NEXT:    movb $6, %sil
5164 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
5165 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm14 {%k4}
5166 ; AVX512DQ-BW-NEXT:    movb $56, %sil
5167 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k6
5168 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k6}
5169 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%rdx), %xmm2
5170 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
5171 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
5172 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm5 {%k5}
5173 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 64(%rax), %zmm16, %zmm5 {%k7}
5174 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm6 {%k1}
5175 ; AVX512DQ-BW-NEXT:    movb $-31, %sil
5176 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
5177 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, %zmm6 {%k1}
5178 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm17[0,1,2,3],zmm24[4,5,6,7]
5179 ; AVX512DQ-BW-NEXT:    movb $-61, %sil
5180 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k1
5181 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm2 {%k1}
5182 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm10 {%k2}
5183 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm21 {%k3}
5184 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm3
5185 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
5186 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm15 {%k4}
5187 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm15 {%k6}
5188 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm28[1],ymm23[1],ymm28[3],ymm23[3]
5189 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
5190 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
5191 ; AVX512DQ-BW-NEXT:    movb $14, %cl
5192 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
5193 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm0 {%k1}
5194 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{.*#+}} ymm3 = ymm12[1],ymm7[1],ymm12[3],ymm7[3]
5195 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm3 = ymm3[0,2,3,3]
5196 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
5197 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k1}
5198 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5199 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 64(%rax)
5200 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 128(%rax)
5201 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 192(%rax)
5202 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 256(%rax)
5203 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 320(%rax)
5204 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 384(%rax)
5205 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 448(%rax)
5206 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 512(%rax)
5207 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 576(%rax)
5208 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 640(%rax)
5209 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 704(%rax)
5210 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, (%rax)
5211 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 768(%rax)
5212 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 832(%rax)
5213 ; AVX512DQ-BW-NEXT:    vzeroupper
5214 ; AVX512DQ-BW-NEXT:    retq
5216 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf16:
5217 ; AVX512DQ-BW-FCP:       # %bb.0:
5218 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5219 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm10
5220 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm0
5221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm2
5222 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm13
5223 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm3
5224 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm1
5225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm14
5226 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm15
5227 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm21
5228 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [6,14,6,14,6,14,6,14]
5229 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5230 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
5231 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm18, %zmm4
5232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5
5233 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm5
5234 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 = zmm5[0,1,2,3],zmm4[4,5,6,7]
5235 ; AVX512DQ-BW-FCP-NEXT:    movb $64, %sil
5236 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
5237 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm4 {%k1}
5238 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
5239 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm7
5240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm12
5241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
5242 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm9
5243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
5244 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [15,7,15,7,15,7,15,7]
5245 ; AVX512DQ-BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
5247 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm20, %zmm8
5248 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
5249 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm20, %zmm16
5250 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %sil
5251 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
5252 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm16 {%k1}
5253 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,2,3,4,15,0,0]
5254 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm21, %zmm16, %zmm31
5255 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [0,8,0,1,0,8,0,1]
5256 ; AVX512DQ-BW-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
5257 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
5258 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm22, %zmm8
5259 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %xmm16
5260 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %xmm27
5261 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm16 = xmm16[0],mem[0]
5262 ; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm16, %ymm0, %ymm16
5263 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %sil
5264 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
5265 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm16, %zmm0, %zmm8 {%k3}
5266 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm26 = [0,8,0,8,0,8,0,8]
5267 ; AVX512DQ-BW-FCP-NEXT:    # zmm26 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5268 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm28
5269 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm26, %zmm28
5270 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %sil
5271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
5272 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [3,0,12,4,3,0,12,4]
5273 ; AVX512DQ-BW-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
5274 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm16
5275 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm17, %zmm16
5276 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %dil
5277 ; AVX512DQ-BW-FCP-NEXT:    kmovd %edi, %k2
5278 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k2} = zmm0[0],zmm13[0],zmm0[2],zmm13[2],zmm0[4],zmm13[4],zmm0[6],zmm13[6]
5279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm23
5280 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [1,0,10,2,1,0,10,2]
5281 ; AVX512DQ-BW-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
5282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm19
5283 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm25, %zmm19
5284 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm22, %zmm0
5285 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm22 = xmm27[0],mem[0]
5286 ; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $1, %xmm22, %ymm0, %ymm22
5287 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm22, %zmm0, %zmm0 {%k3}
5288 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
5289 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm28, %zmm8 {%k3}
5290 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm28 = [13,5,13,5,13,5,13,5]
5291 ; AVX512DQ-BW-FCP-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5292 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm29
5293 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm28, %zmm29
5294 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm28, %zmm24
5295 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %sil
5296 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm22
5297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm27
5298 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm26, %zmm21
5299 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm21, %zmm0 {%k3}
5300 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
5301 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24 {%k3}
5302 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [4,12,0,5,4,12,0,5]
5303 ; AVX512DQ-BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
5304 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm22
5305 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm29 = [0,1,12,7,0,1,12,7]
5306 ; AVX512DQ-BW-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3]
5307 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm29, %zmm22
5308 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %sil
5309 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30
5310 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm30
5311 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm26
5312 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm26
5313 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm26 {%k1}
5314 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm20
5315 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [6,13,14,7,6,13,14,7]
5316 ; AVX512DQ-BW-FCP-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
5317 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm20, %zmm9, %zmm30
5318 ; AVX512DQ-BW-FCP-NEXT:    movb $-31, %dil
5319 ; AVX512DQ-BW-FCP-NEXT:    kmovd %edi, %k1
5320 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm26 {%k1}
5321 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20
5322 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm18, %zmm20
5323 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm18
5324 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm18 = zmm18[0,1,2,3],zmm20[4,5,6,7]
5325 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
5326 ; AVX512DQ-BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
5327 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm7, %zmm12, %zmm20
5328 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,13,6,7,0,13,6,7]
5329 ; AVX512DQ-BW-FCP-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
5330 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm9, %zmm20, %zmm30
5331 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %dil
5332 ; AVX512DQ-BW-FCP-NEXT:    kmovd %edi, %k1
5333 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k1}
5334 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
5335 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm22 {%k1}
5336 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20
5337 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm28, %zmm20
5338 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm28
5339 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm28 {%k3}
5340 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm21
5341 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm29, %zmm21
5342 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm21 {%k1}
5343 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %ymm20
5344 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %ymm24
5345 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %ymm28
5346 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm4 = [1,3,7,7]
5347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %ymm28, %ymm11
5348 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm24, %ymm4, %ymm11
5349 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],mem[6,7]
5350 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %sil
5351 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm14, %zmm17
5352 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k2} = zmm10[0],zmm2[0],zmm10[2],zmm2[2],zmm10[4],zmm2[4],zmm10[6],zmm2[6]
5353 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k1
5354 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm11, %zmm0, %zmm16 {%k1}
5355 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm11
5356 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %ymm20, %ymm11, %ymm4
5357 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],mem[6,7]
5358 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k1}
5359 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
5360 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5361 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm1
5362 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm3
5363 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [11,3,11,3,11,3,11,3]
5364 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5365 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm23
5366 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm4
5367 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm2
5368 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm10 = ymm28[0],ymm24[0],ymm28[2],ymm24[2]
5369 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm1 {%k3}
5370 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k3}
5371 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %al
5372 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
5373 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k1} = zmm10[2,3,2,3],zmm5[2,3,2,3]
5374 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm11[0],ymm20[0],ymm11[2],ymm20[2]
5375 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k1} = zmm4[2,3,2,3],zmm9[2,3,2,3]
5376 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm4
5377 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
5378 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %al
5379 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
5380 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm19 {%k1}
5381 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [9,1,9,1,9,1,9,1]
5382 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
5383 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm4, %zmm7
5384 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm4, %zmm27
5385 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,9,0,3,4,9,0,3]
5386 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
5387 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm7
5388 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm4, %zmm27
5389 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm4
5390 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = mem[0,1,2,3],ymm4[4,5,6,7]
5391 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm2 {%k1}
5392 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %al
5393 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
5394 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm19 {%k1}
5395 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
5396 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,5,15,0]
5397 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm6, %zmm31, %zmm4
5398 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
5399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
5400 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
5401 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [14,1,2,3,4,5,6,15]
5402 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm4, %zmm6
5403 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,13,2,3,4,5,6,7]
5404 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm5, %zmm7, %zmm4
5405 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5406 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 64(%rax)
5407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 128(%rax)
5408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
5409 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 256(%rax)
5410 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 320(%rax)
5411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 384(%rax)
5412 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 448(%rax)
5413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
5414 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 576(%rax)
5415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
5416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 704(%rax)
5417 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, (%rax)
5418 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
5419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 832(%rax)
5420 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
5421 ; AVX512DQ-BW-FCP-NEXT:    retq
5422   %in.vec0 = load <16 x i64>, ptr %in.vecptr0, align 64
5423   %in.vec1 = load <16 x i64>, ptr %in.vecptr1, align 64
5424   %in.vec2 = load <16 x i64>, ptr %in.vecptr2, align 64
5425   %in.vec3 = load <16 x i64>, ptr %in.vecptr3, align 64
5426   %in.vec4 = load <16 x i64>, ptr %in.vecptr4, align 64
5427   %in.vec5 = load <16 x i64>, ptr %in.vecptr5, align 64
5428   %in.vec6 = load <16 x i64>, ptr %in.vecptr6, align 64
5429   %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>
5430   %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>
5431   %3 = shufflevector <16 x i64> %in.vec4, <16 x i64> %in.vec5, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31>
5432   %4 = 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>
5433   %5 = shufflevector <16 x i64> %in.vec6, <16 x i64> poison, <32 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
5434   %6 = shufflevector <32 x i64> %3, <32 x i64> %5, <48 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47>
5435   %7 = shufflevector <48 x i64> %6, <48 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 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
5436   %8 = shufflevector <64 x i64> %4, <64 x i64> %7, <112 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>
5437   %interleaved.vec = shufflevector <112 x i64> %8, <112 x i64> poison, <112 x i32> <i32 0, i32 16, i32 32, i32 48, i32 64, i32 80, i32 96, i32 1, i32 17, i32 33, i32 49, i32 65, i32 81, i32 97, i32 2, i32 18, i32 34, i32 50, i32 66, i32 82, i32 98, i32 3, i32 19, i32 35, i32 51, i32 67, i32 83, i32 99, i32 4, i32 20, i32 36, i32 52, i32 68, i32 84, i32 100, i32 5, i32 21, i32 37, i32 53, i32 69, i32 85, i32 101, i32 6, i32 22, i32 38, i32 54, i32 70, i32 86, i32 102, i32 7, i32 23, i32 39, i32 55, i32 71, i32 87, i32 103, i32 8, i32 24, i32 40, i32 56, i32 72, i32 88, i32 104, i32 9, i32 25, i32 41, i32 57, i32 73, i32 89, i32 105, i32 10, i32 26, i32 42, i32 58, i32 74, i32 90, i32 106, i32 11, i32 27, i32 43, i32 59, i32 75, i32 91, i32 107, i32 12, i32 28, i32 44, i32 60, i32 76, i32 92, i32 108, i32 13, i32 29, i32 45, i32 61, i32 77, i32 93, i32 109, i32 14, i32 30, i32 46, i32 62, i32 78, i32 94, i32 110, i32 15, i32 31, i32 47, i32 63, i32 79, i32 95, i32 111>
5438   store <112 x i64> %interleaved.vec, ptr %out.vec, align 64
5439   ret void
5442 define void @store_i64_stride7_vf32(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
5443 ; SSE-LABEL: store_i64_stride7_vf32:
5444 ; SSE:       # %bb.0:
5445 ; SSE-NEXT:    subq $1432, %rsp # imm = 0x598
5446 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5447 ; SSE-NEXT:    movapd (%rdi), %xmm2
5448 ; SSE-NEXT:    movapd 16(%rdi), %xmm3
5449 ; SSE-NEXT:    movapd 32(%rdi), %xmm4
5450 ; SSE-NEXT:    movapd (%rsi), %xmm5
5451 ; SSE-NEXT:    movapd 16(%rsi), %xmm6
5452 ; SSE-NEXT:    movapd (%rdx), %xmm7
5453 ; SSE-NEXT:    movapd 16(%rdx), %xmm8
5454 ; SSE-NEXT:    movapd (%rcx), %xmm9
5455 ; SSE-NEXT:    movapd 16(%rcx), %xmm10
5456 ; SSE-NEXT:    movapd (%r8), %xmm11
5457 ; SSE-NEXT:    movapd 16(%r8), %xmm12
5458 ; SSE-NEXT:    movapd (%r9), %xmm13
5459 ; SSE-NEXT:    movapd 16(%r9), %xmm14
5460 ; SSE-NEXT:    movapd (%rax), %xmm0
5461 ; SSE-NEXT:    movapd 16(%rax), %xmm1
5462 ; SSE-NEXT:    movapd %xmm2, %xmm15
5463 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm5[0]
5464 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5465 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm0[0],xmm2[1]
5466 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5467 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
5468 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5469 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm9[0]
5470 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5471 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm11[1]
5472 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5473 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm13[0]
5474 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5475 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
5476 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5477 ; SSE-NEXT:    movapd %xmm3, %xmm0
5478 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm6[0]
5479 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5480 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm1[0],xmm3[1]
5481 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5482 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
5483 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5484 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm8 = xmm8[0],xmm10[0]
5485 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5486 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]
5487 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5488 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm14[0]
5489 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5490 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
5491 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5492 ; SSE-NEXT:    movapd 32(%rsi), %xmm1
5493 ; SSE-NEXT:    movapd %xmm4, %xmm0
5494 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
5495 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5496 ; SSE-NEXT:    movapd 32(%rax), %xmm0
5497 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
5498 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5499 ; SSE-NEXT:    movapd 32(%rdx), %xmm2
5500 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
5501 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5502 ; SSE-NEXT:    movapd 32(%rcx), %xmm3
5503 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
5504 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5505 ; SSE-NEXT:    movapd 32(%r8), %xmm1
5506 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
5507 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5508 ; SSE-NEXT:    movapd 32(%r9), %xmm2
5509 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5510 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5511 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5512 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5513 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
5514 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
5515 ; SSE-NEXT:    movapd %xmm1, %xmm0
5516 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5517 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5518 ; SSE-NEXT:    movapd 48(%rax), %xmm0
5519 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5520 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5521 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
5522 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5523 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5524 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
5525 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5526 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5527 ; SSE-NEXT:    movapd 48(%r8), %xmm1
5528 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5529 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5530 ; SSE-NEXT:    movapd 48(%r9), %xmm2
5531 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5532 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5533 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5534 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5535 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
5536 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
5537 ; SSE-NEXT:    movapd %xmm1, %xmm0
5538 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5539 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5540 ; SSE-NEXT:    movapd 64(%rax), %xmm0
5541 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5542 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5543 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
5544 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5545 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5546 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
5547 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5548 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5549 ; SSE-NEXT:    movapd 64(%r8), %xmm1
5550 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5551 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5552 ; SSE-NEXT:    movapd 64(%r9), %xmm2
5553 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5554 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5555 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5556 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5557 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
5558 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
5559 ; SSE-NEXT:    movapd %xmm1, %xmm0
5560 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5561 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5562 ; SSE-NEXT:    movapd 80(%rax), %xmm0
5563 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5564 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5565 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
5566 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5567 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5568 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
5569 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5570 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5571 ; SSE-NEXT:    movapd 80(%r8), %xmm1
5572 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5573 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5574 ; SSE-NEXT:    movapd 80(%r9), %xmm2
5575 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5576 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5577 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5578 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5579 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
5580 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
5581 ; SSE-NEXT:    movapd %xmm1, %xmm0
5582 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5583 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5584 ; SSE-NEXT:    movapd 96(%rax), %xmm0
5585 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5586 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5587 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
5588 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5589 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5590 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
5591 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5592 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5593 ; SSE-NEXT:    movapd 96(%r8), %xmm1
5594 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5595 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5596 ; SSE-NEXT:    movapd 96(%r9), %xmm2
5597 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5598 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5599 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5600 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5601 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
5602 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
5603 ; SSE-NEXT:    movapd %xmm1, %xmm0
5604 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5605 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5606 ; SSE-NEXT:    movapd 112(%rax), %xmm0
5607 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5608 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5609 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
5610 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5611 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5612 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
5613 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5614 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5615 ; SSE-NEXT:    movapd 112(%r8), %xmm1
5616 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5617 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5618 ; SSE-NEXT:    movapd 112(%r9), %xmm2
5619 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5620 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5621 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5622 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5623 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
5624 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
5625 ; SSE-NEXT:    movapd %xmm1, %xmm0
5626 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5627 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5628 ; SSE-NEXT:    movapd 128(%rax), %xmm0
5629 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5630 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5631 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
5632 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5633 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5634 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
5635 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5636 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5637 ; SSE-NEXT:    movapd 128(%r8), %xmm1
5638 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5639 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5640 ; SSE-NEXT:    movapd 128(%r9), %xmm2
5641 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5642 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5643 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5644 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5645 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
5646 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
5647 ; SSE-NEXT:    movapd %xmm1, %xmm0
5648 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5649 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5650 ; SSE-NEXT:    movapd 144(%rax), %xmm0
5651 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5652 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5653 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
5654 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5655 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5656 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
5657 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5658 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5659 ; SSE-NEXT:    movapd 144(%r8), %xmm1
5660 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5661 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5662 ; SSE-NEXT:    movapd 144(%r9), %xmm2
5663 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5664 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5665 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5666 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5667 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
5668 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
5669 ; SSE-NEXT:    movapd %xmm1, %xmm0
5670 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5671 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5672 ; SSE-NEXT:    movapd 160(%rax), %xmm0
5673 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5674 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5675 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
5676 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5677 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5678 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
5679 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5680 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5681 ; SSE-NEXT:    movapd 160(%r8), %xmm1
5682 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5683 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5684 ; SSE-NEXT:    movapd 160(%r9), %xmm2
5685 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5686 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5687 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5688 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5689 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
5690 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
5691 ; SSE-NEXT:    movapd %xmm1, %xmm0
5692 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5693 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5694 ; SSE-NEXT:    movapd 176(%rax), %xmm0
5695 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5696 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5697 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
5698 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5699 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5700 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
5701 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5702 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5703 ; SSE-NEXT:    movapd 176(%r8), %xmm1
5704 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5705 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5706 ; SSE-NEXT:    movapd 176(%r9), %xmm2
5707 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5708 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5709 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5710 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5711 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
5712 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
5713 ; SSE-NEXT:    movapd %xmm1, %xmm0
5714 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5715 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5716 ; SSE-NEXT:    movapd 192(%rax), %xmm0
5717 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5718 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5719 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
5720 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5721 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5722 ; SSE-NEXT:    movapd 192(%rcx), %xmm2
5723 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5724 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5725 ; SSE-NEXT:    movapd 192(%r8), %xmm1
5726 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5727 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5728 ; SSE-NEXT:    movapd 192(%r9), %xmm2
5729 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
5730 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
5731 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
5732 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5733 ; SSE-NEXT:    movapd 208(%rdi), %xmm1
5734 ; SSE-NEXT:    movapd 208(%rsi), %xmm2
5735 ; SSE-NEXT:    movapd %xmm1, %xmm0
5736 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
5737 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5738 ; SSE-NEXT:    movapd 208(%rax), %xmm0
5739 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
5740 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5741 ; SSE-NEXT:    movapd 208(%rdx), %xmm1
5742 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5743 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5744 ; SSE-NEXT:    movapd 208(%rcx), %xmm14
5745 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm14[0]
5746 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5747 ; SSE-NEXT:    movapd 208(%r8), %xmm1
5748 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
5749 ; SSE-NEXT:    movapd 208(%r9), %xmm13
5750 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm13[0]
5751 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5752 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
5753 ; SSE-NEXT:    movapd 224(%rdi), %xmm15
5754 ; SSE-NEXT:    movapd 224(%rsi), %xmm12
5755 ; SSE-NEXT:    movapd %xmm15, %xmm0
5756 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm12[0]
5757 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
5758 ; SSE-NEXT:    movapd 224(%rax), %xmm3
5759 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm3[0],xmm15[1]
5760 ; SSE-NEXT:    movapd 224(%rdx), %xmm11
5761 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
5762 ; SSE-NEXT:    movapd 224(%rcx), %xmm8
5763 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm8[0]
5764 ; SSE-NEXT:    movapd 224(%r8), %xmm9
5765 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
5766 ; SSE-NEXT:    movapd 224(%r9), %xmm6
5767 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
5768 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
5769 ; SSE-NEXT:    movapd 240(%rdi), %xmm5
5770 ; SSE-NEXT:    movapd 240(%rsi), %xmm4
5771 ; SSE-NEXT:    movapd %xmm5, %xmm7
5772 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm4[0]
5773 ; SSE-NEXT:    movapd 240(%rax), %xmm10
5774 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm10[0],xmm5[1]
5775 ; SSE-NEXT:    movapd 240(%rdx), %xmm3
5776 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
5777 ; SSE-NEXT:    movapd 240(%rcx), %xmm2
5778 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
5779 ; SSE-NEXT:    movapd 240(%r8), %xmm1
5780 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
5781 ; SSE-NEXT:    movapd 240(%r9), %xmm0
5782 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
5783 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
5784 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
5785 ; SSE-NEXT:    movapd %xmm0, 1776(%rax)
5786 ; SSE-NEXT:    movapd %xmm2, 1760(%rax)
5787 ; SSE-NEXT:    movapd %xmm4, 1744(%rax)
5788 ; SSE-NEXT:    movapd %xmm5, 1728(%rax)
5789 ; SSE-NEXT:    movapd %xmm1, 1712(%rax)
5790 ; SSE-NEXT:    movapd %xmm3, 1696(%rax)
5791 ; SSE-NEXT:    movapd %xmm7, 1680(%rax)
5792 ; SSE-NEXT:    movapd %xmm6, 1664(%rax)
5793 ; SSE-NEXT:    movapd %xmm8, 1648(%rax)
5794 ; SSE-NEXT:    movapd %xmm12, 1632(%rax)
5795 ; SSE-NEXT:    movapd %xmm15, 1616(%rax)
5796 ; SSE-NEXT:    movapd %xmm9, 1600(%rax)
5797 ; SSE-NEXT:    movapd %xmm11, 1584(%rax)
5798 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5799 ; SSE-NEXT:    movaps %xmm0, 1568(%rax)
5800 ; SSE-NEXT:    movapd %xmm13, 1552(%rax)
5801 ; SSE-NEXT:    movapd %xmm14, 1536(%rax)
5802 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5803 ; SSE-NEXT:    movaps %xmm0, 1520(%rax)
5804 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5805 ; SSE-NEXT:    movaps %xmm0, 1504(%rax)
5806 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5807 ; SSE-NEXT:    movaps %xmm0, 1488(%rax)
5808 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5809 ; SSE-NEXT:    movaps %xmm0, 1472(%rax)
5810 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5811 ; SSE-NEXT:    movaps %xmm0, 1456(%rax)
5812 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5813 ; SSE-NEXT:    movaps %xmm0, 1440(%rax)
5814 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5815 ; SSE-NEXT:    movaps %xmm0, 1424(%rax)
5816 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5817 ; SSE-NEXT:    movaps %xmm0, 1408(%rax)
5818 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5819 ; SSE-NEXT:    movaps %xmm0, 1392(%rax)
5820 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
5821 ; SSE-NEXT:    movaps %xmm0, 1376(%rax)
5822 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5823 ; SSE-NEXT:    movaps %xmm0, 1360(%rax)
5824 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5825 ; SSE-NEXT:    movaps %xmm0, 1344(%rax)
5826 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5827 ; SSE-NEXT:    movaps %xmm0, 1328(%rax)
5828 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5829 ; SSE-NEXT:    movaps %xmm0, 1312(%rax)
5830 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5831 ; SSE-NEXT:    movaps %xmm0, 1296(%rax)
5832 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5833 ; SSE-NEXT:    movaps %xmm0, 1280(%rax)
5834 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5835 ; SSE-NEXT:    movaps %xmm0, 1264(%rax)
5836 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5837 ; SSE-NEXT:    movaps %xmm0, 1248(%rax)
5838 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5839 ; SSE-NEXT:    movaps %xmm0, 1232(%rax)
5840 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5841 ; SSE-NEXT:    movaps %xmm0, 1216(%rax)
5842 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5843 ; SSE-NEXT:    movaps %xmm0, 1200(%rax)
5844 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5845 ; SSE-NEXT:    movaps %xmm0, 1184(%rax)
5846 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5847 ; SSE-NEXT:    movaps %xmm0, 1168(%rax)
5848 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5849 ; SSE-NEXT:    movaps %xmm0, 1152(%rax)
5850 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5851 ; SSE-NEXT:    movaps %xmm0, 1136(%rax)
5852 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5853 ; SSE-NEXT:    movaps %xmm0, 1120(%rax)
5854 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5855 ; SSE-NEXT:    movaps %xmm0, 1104(%rax)
5856 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5857 ; SSE-NEXT:    movaps %xmm0, 1088(%rax)
5858 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5859 ; SSE-NEXT:    movaps %xmm0, 1072(%rax)
5860 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5861 ; SSE-NEXT:    movaps %xmm0, 1056(%rax)
5862 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5863 ; SSE-NEXT:    movaps %xmm0, 1040(%rax)
5864 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5865 ; SSE-NEXT:    movaps %xmm0, 1024(%rax)
5866 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5867 ; SSE-NEXT:    movaps %xmm0, 1008(%rax)
5868 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5869 ; SSE-NEXT:    movaps %xmm0, 992(%rax)
5870 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5871 ; SSE-NEXT:    movaps %xmm0, 976(%rax)
5872 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5873 ; SSE-NEXT:    movaps %xmm0, 960(%rax)
5874 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5875 ; SSE-NEXT:    movaps %xmm0, 944(%rax)
5876 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5877 ; SSE-NEXT:    movaps %xmm0, 928(%rax)
5878 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5879 ; SSE-NEXT:    movaps %xmm0, 912(%rax)
5880 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5881 ; SSE-NEXT:    movaps %xmm0, 896(%rax)
5882 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5883 ; SSE-NEXT:    movaps %xmm0, 880(%rax)
5884 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5885 ; SSE-NEXT:    movaps %xmm0, 864(%rax)
5886 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5887 ; SSE-NEXT:    movaps %xmm0, 848(%rax)
5888 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5889 ; SSE-NEXT:    movaps %xmm0, 832(%rax)
5890 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5891 ; SSE-NEXT:    movaps %xmm0, 816(%rax)
5892 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5893 ; SSE-NEXT:    movaps %xmm0, 800(%rax)
5894 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5895 ; SSE-NEXT:    movaps %xmm0, 784(%rax)
5896 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5897 ; SSE-NEXT:    movaps %xmm0, 768(%rax)
5898 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5899 ; SSE-NEXT:    movaps %xmm0, 752(%rax)
5900 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5901 ; SSE-NEXT:    movaps %xmm0, 736(%rax)
5902 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5903 ; SSE-NEXT:    movaps %xmm0, 720(%rax)
5904 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5905 ; SSE-NEXT:    movaps %xmm0, 704(%rax)
5906 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5907 ; SSE-NEXT:    movaps %xmm0, 688(%rax)
5908 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5909 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
5910 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5911 ; SSE-NEXT:    movaps %xmm0, 656(%rax)
5912 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5913 ; SSE-NEXT:    movaps %xmm0, 640(%rax)
5914 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5915 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
5916 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5917 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
5918 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5919 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
5920 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5921 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
5922 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5923 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
5924 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5925 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
5926 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5927 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
5928 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5929 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
5930 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5931 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
5932 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5933 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
5934 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5935 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
5936 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5937 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
5938 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5939 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
5940 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5941 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
5942 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5943 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
5944 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5945 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
5946 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5947 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
5948 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5949 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
5950 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5951 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
5952 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5953 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
5954 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5955 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
5956 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5957 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
5958 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5959 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
5960 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5961 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
5962 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5963 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
5964 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5965 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
5966 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5967 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
5968 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5969 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
5970 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5971 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
5972 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5973 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
5974 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5975 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
5976 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5977 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
5978 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5979 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
5980 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5981 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
5982 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5983 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
5984 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5985 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
5986 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5987 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
5988 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5989 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
5990 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5991 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
5992 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
5993 ; SSE-NEXT:    movaps %xmm0, (%rax)
5994 ; SSE-NEXT:    addq $1432, %rsp # imm = 0x598
5995 ; SSE-NEXT:    retq
5997 ; AVX-LABEL: store_i64_stride7_vf32:
5998 ; AVX:       # %bb.0:
5999 ; AVX-NEXT:    subq $1320, %rsp # imm = 0x528
6000 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6001 ; AVX-NEXT:    vmovaps (%rdi), %ymm3
6002 ; AVX-NEXT:    vmovaps (%rsi), %ymm1
6003 ; AVX-NEXT:    vmovaps (%rdx), %ymm2
6004 ; AVX-NEXT:    vmovaps (%r8), %ymm5
6005 ; AVX-NEXT:    vmovaps (%r9), %ymm4
6006 ; AVX-NEXT:    vmovaps (%r9), %xmm6
6007 ; AVX-NEXT:    vmovaps (%r8), %xmm7
6008 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm8 = xmm7[0],xmm6[0]
6009 ; AVX-NEXT:    vmovaps (%rdi), %xmm12
6010 ; AVX-NEXT:    vinsertf128 $1, %xmm12, %ymm8, %ymm9
6011 ; AVX-NEXT:    vmovaps (%rax), %xmm10
6012 ; AVX-NEXT:    vmovaps 16(%rax), %xmm11
6013 ; AVX-NEXT:    vmovaps 32(%rax), %xmm0
6014 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm8, %ymm8
6015 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1],ymm9[2,3],ymm8[4,5],ymm9[6,7]
6016 ; AVX-NEXT:    vmovups %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6017 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm8
6018 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm2[0,1,2,3],ymm8[4,5,6,7]
6019 ; AVX-NEXT:    vmovaps (%rsi), %xmm9
6020 ; AVX-NEXT:    vmovaps %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6021 ; AVX-NEXT:    vshufps {{.*#+}} xmm9 = xmm9[2,3,2,3]
6022 ; AVX-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5,6,7]
6023 ; AVX-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm7
6024 ; AVX-NEXT:    vblendps {{.*#+}} ymm7 = ymm8[0,1,2,3,4,5],ymm7[6,7]
6025 ; AVX-NEXT:    vmovups %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6026 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm3[0],ymm1[0],ymm3[2],ymm1[2]
6027 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm10[1]
6028 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
6029 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6030 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
6031 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm5
6032 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm6
6033 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm6[0],xmm5[0]
6034 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1,2,3],ymm3[4,5,6,7]
6035 ; AVX-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6036 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm3
6037 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm3[1],ymm1[3],ymm3[3]
6038 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6039 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm11[0,1],ymm1[2,3,4,5,6,7]
6040 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6041 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm5[2,3,2,3]
6042 ; AVX-NEXT:    vmovaps 16(%r8), %xmm2
6043 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
6044 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],mem[6,7]
6045 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3,4,5,6,7]
6046 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6047 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm1
6048 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm2
6049 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm1[0]
6050 ; AVX-NEXT:    vinsertf128 $1, 32(%rcx), %ymm3, %ymm4
6051 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm5
6052 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
6053 ; AVX-NEXT:    vshufpd {{.*#+}} ymm3 = ymm3[0],ymm4[1],ymm3[2],ymm4[2]
6054 ; AVX-NEXT:    vmovupd %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6055 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6056 ; AVX-NEXT:    vmovaps 32(%r9), %xmm3
6057 ; AVX-NEXT:    vmovaps 32(%r8), %xmm4
6058 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm4[0],xmm3[0]
6059 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm6, %ymm6
6060 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm6[0,1,2,3,4,5],ymm2[6,7]
6061 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6062 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm2
6063 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm5[1]
6064 ; AVX-NEXT:    vbroadcastsd 40(%rcx), %ymm5
6065 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm5[4,5,6,7]
6066 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm5
6067 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
6068 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm4[6,7]
6069 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6070 ; AVX-NEXT:    vmovaps 32(%r8), %ymm1
6071 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm3[1],xmm0[1]
6072 ; AVX-NEXT:    vmovaps 32(%r9), %ymm3
6073 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],ymm5[0],ymm2[2],ymm5[2]
6074 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
6075 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6076 ; AVX-NEXT:    vmovaps 48(%rcx), %xmm0
6077 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
6078 ; AVX-NEXT:    vmovaps 48(%rdx), %xmm2
6079 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm2[0],xmm0[0]
6080 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
6081 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6082 ; AVX-NEXT:    vmovaps 48(%rdi), %xmm1
6083 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
6084 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
6085 ; AVX-NEXT:    vmovaps 48(%rax), %xmm2
6086 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6087 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6088 ; AVX-NEXT:    vmovaps 48(%r8), %xmm1
6089 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm3[1],ymm1[1],ymm3[3],ymm1[3]
6090 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
6091 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
6092 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
6093 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6094 ; AVX-NEXT:    vmovaps 64(%r9), %xmm0
6095 ; AVX-NEXT:    vmovaps 64(%r8), %xmm1
6096 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6097 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm3
6098 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6099 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm3
6100 ; AVX-NEXT:    vmovaps 64(%rax), %xmm4
6101 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
6102 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
6103 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6104 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm2
6105 ; AVX-NEXT:    vbroadcastsd 72(%rcx), %ymm3
6106 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6107 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm11
6108 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm11[2,3,2,3]
6109 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
6110 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6111 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
6112 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6113 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6114 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm1
6115 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm3
6116 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
6117 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6118 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6119 ; AVX-NEXT:    vmovaps 64(%r8), %ymm0
6120 ; AVX-NEXT:    vmovaps 64(%r9), %ymm1
6121 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6122 ; AVX-NEXT:    vmovaps 80(%rcx), %xmm4
6123 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm5
6124 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
6125 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
6126 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6127 ; AVX-NEXT:    vmovaps 80(%rdi), %xmm0
6128 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]
6129 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6130 ; AVX-NEXT:    vmovaps 80(%rax), %xmm2
6131 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
6132 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6133 ; AVX-NEXT:    vmovaps 80(%r8), %xmm0
6134 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
6135 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
6136 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6137 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6138 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6139 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm0
6140 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm1
6141 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6142 ; AVX-NEXT:    vinsertf128 $1, 96(%rcx), %ymm2, %ymm3
6143 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm4
6144 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
6145 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
6146 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6147 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6148 ; AVX-NEXT:    vmovaps 96(%r9), %xmm2
6149 ; AVX-NEXT:    vmovaps 96(%r8), %xmm3
6150 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm3[0],xmm2[0]
6151 ; AVX-NEXT:    vmovaps 96(%rax), %xmm6
6152 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
6153 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
6154 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6155 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6156 ; AVX-NEXT:    vbroadcastsd 104(%rcx), %ymm1
6157 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6158 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
6159 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6160 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6161 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm2[1],xmm6[1]
6162 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm1
6163 ; AVX-NEXT:    vmovaps 96(%rsi), %ymm2
6164 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6165 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6166 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6167 ; AVX-NEXT:    vmovaps 96(%r8), %ymm0
6168 ; AVX-NEXT:    vmovaps 96(%r9), %ymm1
6169 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6170 ; AVX-NEXT:    vmovaps 112(%rcx), %xmm3
6171 ; AVX-NEXT:    vmovaps 112(%rdx), %xmm4
6172 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
6173 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
6174 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6175 ; AVX-NEXT:    vmovaps 112(%rdi), %xmm0
6176 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
6177 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6178 ; AVX-NEXT:    vmovaps 112(%rax), %xmm2
6179 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
6180 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6181 ; AVX-NEXT:    vmovaps 112(%r8), %xmm0
6182 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
6183 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm3[2,3,2,3]
6184 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6185 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6186 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6187 ; AVX-NEXT:    vmovaps 128(%r9), %xmm0
6188 ; AVX-NEXT:    vmovaps 128(%r8), %xmm1
6189 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6190 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm10
6191 ; AVX-NEXT:    vinsertf128 $1, %xmm10, %ymm2, %ymm3
6192 ; AVX-NEXT:    vmovaps 128(%rax), %xmm4
6193 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
6194 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
6195 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6196 ; AVX-NEXT:    vmovaps 128(%rdx), %ymm2
6197 ; AVX-NEXT:    vbroadcastsd 136(%rcx), %ymm3
6198 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6199 ; AVX-NEXT:    vmovaps 128(%rsi), %xmm13
6200 ; AVX-NEXT:    vshufps {{.*#+}} xmm5 = xmm13[2,3,2,3]
6201 ; AVX-NEXT:    vblendps {{.*#+}} ymm3 = ymm5[0,1],ymm3[2,3,4,5,6,7]
6202 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6203 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
6204 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6205 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6206 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm1
6207 ; AVX-NEXT:    vmovaps 128(%rsi), %ymm3
6208 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm3[0],ymm1[2],ymm3[2]
6209 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6210 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6211 ; AVX-NEXT:    vmovaps 128(%r8), %ymm0
6212 ; AVX-NEXT:    vmovaps 128(%r9), %ymm1
6213 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6214 ; AVX-NEXT:    vmovaps 144(%rcx), %xmm4
6215 ; AVX-NEXT:    vmovaps 144(%rdx), %xmm5
6216 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm5[0],xmm4[0]
6217 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1,2,3],ymm0[4,5,6,7]
6218 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6219 ; AVX-NEXT:    vmovaps 144(%rdi), %xmm0
6220 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm3[1],ymm0[1],ymm3[3],ymm0[3]
6221 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6222 ; AVX-NEXT:    vmovaps 144(%rax), %xmm2
6223 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
6224 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6225 ; AVX-NEXT:    vmovaps 144(%r8), %xmm0
6226 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
6227 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm4[2,3,2,3]
6228 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6229 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6230 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6231 ; AVX-NEXT:    vmovaps 160(%rsi), %xmm0
6232 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm1
6233 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6234 ; AVX-NEXT:    vinsertf128 $1, 160(%rcx), %ymm2, %ymm3
6235 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm4
6236 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
6237 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
6238 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6239 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6240 ; AVX-NEXT:    vmovaps 160(%r9), %xmm2
6241 ; AVX-NEXT:    vmovaps 160(%r8), %xmm3
6242 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm3[0],xmm2[0]
6243 ; AVX-NEXT:    vmovaps 160(%rax), %xmm6
6244 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm5, %ymm5
6245 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm5[0,1,2,3,4,5],ymm1[6,7]
6246 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6247 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6248 ; AVX-NEXT:    vbroadcastsd 168(%rcx), %ymm1
6249 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6250 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
6251 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6252 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6253 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm2[1],xmm6[1]
6254 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm1
6255 ; AVX-NEXT:    vmovaps 160(%rsi), %ymm2
6256 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6257 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6258 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6259 ; AVX-NEXT:    vmovaps 160(%r8), %ymm0
6260 ; AVX-NEXT:    vmovaps 160(%r9), %ymm1
6261 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6262 ; AVX-NEXT:    vmovaps 176(%rcx), %xmm3
6263 ; AVX-NEXT:    vmovaps 176(%rdx), %xmm4
6264 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm4 = xmm4[0],xmm3[0]
6265 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm4[0,1,2,3],ymm0[4,5,6,7]
6266 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6267 ; AVX-NEXT:    vmovaps 176(%rdi), %xmm0
6268 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
6269 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6270 ; AVX-NEXT:    vmovaps 176(%rax), %xmm2
6271 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
6272 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6273 ; AVX-NEXT:    vmovaps 176(%r8), %xmm0
6274 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
6275 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm3[2,3,2,3]
6276 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
6277 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6278 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6279 ; AVX-NEXT:    vmovaps 192(%r9), %xmm0
6280 ; AVX-NEXT:    vmovaps 192(%r8), %xmm1
6281 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
6282 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm9
6283 ; AVX-NEXT:    vinsertf128 $1, %xmm9, %ymm2, %ymm3
6284 ; AVX-NEXT:    vmovaps 192(%rax), %xmm5
6285 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm2, %ymm2
6286 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
6287 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6288 ; AVX-NEXT:    vmovaps 192(%rdx), %ymm2
6289 ; AVX-NEXT:    vbroadcastsd 200(%rcx), %ymm3
6290 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm2[0,1,2,3],ymm3[4,5,6,7]
6291 ; AVX-NEXT:    vmovaps 192(%rsi), %xmm8
6292 ; AVX-NEXT:    vshufps {{.*#+}} xmm7 = xmm8[2,3,2,3]
6293 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm7[0,1],ymm6[2,3,4,5,6,7]
6294 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
6295 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3,4,5],ymm1[6,7]
6296 ; AVX-NEXT:    vmovups %ymm1, (%rsp) # 32-byte Spill
6297 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm5[1]
6298 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm1
6299 ; AVX-NEXT:    vmovaps 192(%rsi), %ymm5
6300 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
6301 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6302 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6303 ; AVX-NEXT:    vmovaps 192(%r8), %ymm0
6304 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
6305 ; AVX-NEXT:    vmovaps 208(%rcx), %xmm4
6306 ; AVX-NEXT:    vmovaps 208(%rdx), %xmm6
6307 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm6 = xmm6[0],xmm4[0]
6308 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm6[0,1,2,3],ymm0[4,5,6,7]
6309 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6310 ; AVX-NEXT:    vmovaps 208(%rdi), %xmm0
6311 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm5[1],ymm0[1],ymm5[3],ymm0[3]
6312 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6313 ; AVX-NEXT:    vmovaps 208(%rax), %xmm2
6314 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1],ymm0[2,3,4,5,6,7]
6315 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6316 ; AVX-NEXT:    vmovaps 224(%rsi), %xmm2
6317 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm0
6318 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm5 = xmm0[0],xmm2[0]
6319 ; AVX-NEXT:    vinsertf128 $1, 224(%rcx), %ymm5, %ymm6
6320 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm1
6321 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm5, %ymm5
6322 ; AVX-NEXT:    vshufpd {{.*#+}} ymm7 = ymm5[0],ymm6[1],ymm5[2],ymm6[2]
6323 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6324 ; AVX-NEXT:    vmovddup {{.*#+}} xmm5 = mem[0,0]
6325 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm0[0,1],ymm5[2,3],ymm0[4,5,6,7]
6326 ; AVX-NEXT:    vmovapd 224(%r8), %ymm3
6327 ; AVX-NEXT:    vinsertf128 $1, 224(%rax), %ymm3, %ymm6
6328 ; AVX-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
6329 ; AVX-NEXT:    vshufps {{.*#+}} xmm2 = xmm2[2,3,2,3]
6330 ; AVX-NEXT:    vbroadcastsd 232(%rcx), %ymm5
6331 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm5[4,5,6,7]
6332 ; AVX-NEXT:    vinsertf128 $1, 224(%r8), %ymm1, %ymm1
6333 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm2[0,1],ymm1[2,3],ymm2[4,5],ymm1[6,7]
6334 ; AVX-NEXT:    vmovapd 224(%rdi), %ymm1
6335 ; AVX-NEXT:    vmovapd 224(%rsi), %ymm2
6336 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6337 ; AVX-NEXT:    vmovddup {{.*#+}} xmm15 = mem[0,0]
6338 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm15[0,1],ymm1[2,3]
6339 ; AVX-NEXT:    vmovapd 240(%rdi), %xmm15
6340 ; AVX-NEXT:    vblendpd {{.*#+}} ymm15 = ymm15[0,1],mem[2,3]
6341 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0,0,3,2]
6342 ; AVX-NEXT:    vmovapd 224(%rax), %ymm0
6343 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm0[2,3],ymm2[2,3]
6344 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0],ymm15[1],ymm2[2],ymm15[3]
6345 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],mem[1]
6346 ; AVX-NEXT:    vbroadcastsd 216(%r9), %ymm15
6347 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3],ymm15[4,5,6,7]
6348 ; AVX-NEXT:    vmovapd 240(%rcx), %xmm15
6349 ; AVX-NEXT:    vmovapd 240(%rdx), %xmm14
6350 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],xmm15[0]
6351 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm14[0,1],ymm3[2,3]
6352 ; AVX-NEXT:    vbroadcastsd 240(%r9), %ymm14
6353 ; AVX-NEXT:    vblendpd {{.*#+}} ymm3 = ymm3[0,1,2],ymm14[3]
6354 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm14 = xmm15[1],mem[1]
6355 ; AVX-NEXT:    vbroadcastsd 248(%r9), %ymm15
6356 ; AVX-NEXT:    vblendpd {{.*#+}} ymm14 = ymm14[0,1],ymm15[2,3]
6357 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0],ymm0[1],ymm1[2,3]
6358 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm14[0,1,2],ymm0[3]
6359 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm13 = xmm10[0],xmm13[0]
6360 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm10 # 16-byte Reload
6361 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm14 = xmm10[0],xmm11[0]
6362 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm8 = xmm9[0],xmm8[0]
6363 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm12, %xmm9 # 16-byte Folded Reload
6364 ; AVX-NEXT:    # xmm9 = xmm12[0],mem[0]
6365 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rsi
6366 ; AVX-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],mem[6,7]
6367 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm15
6368 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
6369 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm12
6370 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
6371 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm11
6372 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
6373 ; AVX-NEXT:    vmovaps (%rdx), %xmm10
6374 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
6375 ; AVX-NEXT:    vmovaps %xmm10, 16(%rsi)
6376 ; AVX-NEXT:    vmovaps %xmm9, (%rsi)
6377 ; AVX-NEXT:    vmovaps %xmm11, 1360(%rsi)
6378 ; AVX-NEXT:    vmovaps %xmm8, 1344(%rsi)
6379 ; AVX-NEXT:    vmovaps %xmm12, 464(%rsi)
6380 ; AVX-NEXT:    vmovaps %xmm14, 448(%rsi)
6381 ; AVX-NEXT:    vmovaps %xmm15, 912(%rsi)
6382 ; AVX-NEXT:    vmovaps %xmm13, 896(%rsi)
6383 ; AVX-NEXT:    vmovapd %ymm0, 1760(%rsi)
6384 ; AVX-NEXT:    vmovapd %ymm2, 1728(%rsi)
6385 ; AVX-NEXT:    vmovapd %ymm3, 1696(%rsi)
6386 ; AVX-NEXT:    vmovapd %ymm1, 1664(%rsi)
6387 ; AVX-NEXT:    vmovaps %ymm5, 1632(%rsi)
6388 ; AVX-NEXT:    vmovaps %ymm6, 1600(%rsi)
6389 ; AVX-NEXT:    vmovapd %ymm7, 1568(%rsi)
6390 ; AVX-NEXT:    vmovaps %ymm4, 1536(%rsi)
6391 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6392 ; AVX-NEXT:    vmovaps %ymm0, 1504(%rsi)
6393 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6394 ; AVX-NEXT:    vmovaps %ymm0, 1472(%rsi)
6395 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6396 ; AVX-NEXT:    vmovaps %ymm0, 1440(%rsi)
6397 ; AVX-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
6398 ; AVX-NEXT:    vmovaps %ymm0, 1408(%rsi)
6399 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6400 ; AVX-NEXT:    vmovaps %ymm0, 1376(%rsi)
6401 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6402 ; AVX-NEXT:    vmovaps %ymm0, 1312(%rsi)
6403 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6404 ; AVX-NEXT:    vmovaps %ymm0, 1280(%rsi)
6405 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6406 ; AVX-NEXT:    vmovaps %ymm0, 1248(%rsi)
6407 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6408 ; AVX-NEXT:    vmovaps %ymm0, 1216(%rsi)
6409 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6410 ; AVX-NEXT:    vmovaps %ymm0, 1184(%rsi)
6411 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6412 ; AVX-NEXT:    vmovaps %ymm0, 1152(%rsi)
6413 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6414 ; AVX-NEXT:    vmovaps %ymm0, 1120(%rsi)
6415 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6416 ; AVX-NEXT:    vmovaps %ymm0, 1088(%rsi)
6417 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6418 ; AVX-NEXT:    vmovaps %ymm0, 1056(%rsi)
6419 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6420 ; AVX-NEXT:    vmovaps %ymm0, 1024(%rsi)
6421 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6422 ; AVX-NEXT:    vmovaps %ymm0, 992(%rsi)
6423 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6424 ; AVX-NEXT:    vmovaps %ymm0, 960(%rsi)
6425 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6426 ; AVX-NEXT:    vmovaps %ymm0, 928(%rsi)
6427 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6428 ; AVX-NEXT:    vmovaps %ymm0, 864(%rsi)
6429 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6430 ; AVX-NEXT:    vmovaps %ymm0, 832(%rsi)
6431 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6432 ; AVX-NEXT:    vmovaps %ymm0, 800(%rsi)
6433 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6434 ; AVX-NEXT:    vmovaps %ymm0, 768(%rsi)
6435 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6436 ; AVX-NEXT:    vmovaps %ymm0, 736(%rsi)
6437 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6438 ; AVX-NEXT:    vmovaps %ymm0, 704(%rsi)
6439 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6440 ; AVX-NEXT:    vmovaps %ymm0, 672(%rsi)
6441 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6442 ; AVX-NEXT:    vmovaps %ymm0, 640(%rsi)
6443 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6444 ; AVX-NEXT:    vmovaps %ymm0, 608(%rsi)
6445 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6446 ; AVX-NEXT:    vmovaps %ymm0, 576(%rsi)
6447 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6448 ; AVX-NEXT:    vmovaps %ymm0, 544(%rsi)
6449 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6450 ; AVX-NEXT:    vmovaps %ymm0, 512(%rsi)
6451 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6452 ; AVX-NEXT:    vmovaps %ymm0, 480(%rsi)
6453 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6454 ; AVX-NEXT:    vmovaps %ymm0, 416(%rsi)
6455 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6456 ; AVX-NEXT:    vmovaps %ymm0, 384(%rsi)
6457 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6458 ; AVX-NEXT:    vmovaps %ymm0, 352(%rsi)
6459 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6460 ; AVX-NEXT:    vmovaps %ymm0, 320(%rsi)
6461 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6462 ; AVX-NEXT:    vmovaps %ymm0, 288(%rsi)
6463 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6464 ; AVX-NEXT:    vmovaps %ymm0, 256(%rsi)
6465 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6466 ; AVX-NEXT:    vmovaps %ymm0, 224(%rsi)
6467 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6468 ; AVX-NEXT:    vmovaps %ymm0, 192(%rsi)
6469 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6470 ; AVX-NEXT:    vmovaps %ymm0, 160(%rsi)
6471 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6472 ; AVX-NEXT:    vmovaps %ymm0, 128(%rsi)
6473 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6474 ; AVX-NEXT:    vmovaps %ymm0, 96(%rsi)
6475 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6476 ; AVX-NEXT:    vmovaps %ymm0, 64(%rsi)
6477 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6478 ; AVX-NEXT:    vmovaps %ymm0, 32(%rsi)
6479 ; AVX-NEXT:    addq $1320, %rsp # imm = 0x528
6480 ; AVX-NEXT:    vzeroupper
6481 ; AVX-NEXT:    retq
6483 ; AVX2-LABEL: store_i64_stride7_vf32:
6484 ; AVX2:       # %bb.0:
6485 ; AVX2-NEXT:    subq $1672, %rsp # imm = 0x688
6486 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6487 ; AVX2-NEXT:    vmovaps (%rdi), %ymm0
6488 ; AVX2-NEXT:    vmovaps (%rsi), %ymm1
6489 ; AVX2-NEXT:    vmovaps (%rdx), %ymm2
6490 ; AVX2-NEXT:    vmovaps (%r8), %ymm12
6491 ; AVX2-NEXT:    vmovaps (%r9), %ymm9
6492 ; AVX2-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6493 ; AVX2-NEXT:    vmovaps (%rsi), %xmm3
6494 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
6495 ; AVX2-NEXT:    vmovaps (%rdi), %xmm4
6496 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6497 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm7
6498 ; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6499 ; AVX2-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
6500 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
6501 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6502 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
6503 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm4
6504 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
6505 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
6506 ; AVX2-NEXT:    vmovaps (%r8), %xmm5
6507 ; AVX2-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6508 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm3
6509 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
6510 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
6511 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6512 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
6513 ; AVX2-NEXT:    vmovaps (%rax), %xmm8
6514 ; AVX2-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6515 ; AVX2-NEXT:    vmovaps 16(%rax), %xmm5
6516 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
6517 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
6518 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
6519 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6520 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm12[0],ymm9[0],ymm12[2],ymm9[2]
6521 ; AVX2-NEXT:    vmovaps 16(%rdx), %xmm6
6522 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
6523 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
6524 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6525 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm4
6526 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
6527 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
6528 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6529 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
6530 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6531 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
6532 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
6533 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
6534 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6535 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6536 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm1
6537 ; AVX2-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
6538 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6539 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6540 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm1
6541 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6542 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
6543 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6544 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6545 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6546 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6547 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1
6548 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm2
6549 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6550 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6551 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6552 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm0
6553 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm4
6554 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6555 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm3
6556 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6557 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
6558 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6559 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6560 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6561 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6562 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6563 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6564 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm1
6565 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6566 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6567 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm0
6568 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
6569 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm1
6570 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6571 ; AVX2-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
6572 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6573 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6574 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm0
6575 ; AVX2-NEXT:    vbroadcastsd 72(%rcx), %ymm1
6576 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6577 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6578 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6579 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm2
6580 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6581 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6582 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6583 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6584 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm2
6585 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6586 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6587 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
6588 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
6589 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm3
6590 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6591 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
6592 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6593 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm4
6594 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6595 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm1
6596 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6597 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
6598 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6599 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
6600 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6601 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6602 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6603 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6604 ; AVX2-NEXT:    vmovaps 80(%rax), %xmm1
6605 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6606 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6607 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm0
6608 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
6609 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm2
6610 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6611 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm3
6612 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6613 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
6614 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
6615 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6616 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm3
6617 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6618 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6619 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
6620 ; AVX2-NEXT:    vbroadcastsd 104(%rcx), %ymm3
6621 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
6622 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6623 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6624 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6625 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6626 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6627 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
6628 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm2
6629 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6630 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6631 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6632 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm0
6633 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm4
6634 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6635 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm3
6636 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6637 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
6638 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6639 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6640 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6641 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6642 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6643 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6644 ; AVX2-NEXT:    vmovaps 112(%rax), %xmm1
6645 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6646 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6647 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
6648 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
6649 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
6650 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6651 ; AVX2-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
6652 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6653 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6654 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm0
6655 ; AVX2-NEXT:    vbroadcastsd 136(%rcx), %ymm1
6656 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6657 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6658 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6659 ; AVX2-NEXT:    vmovaps 128(%r8), %xmm2
6660 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6661 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6662 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6663 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6664 ; AVX2-NEXT:    vmovaps 128(%rax), %xmm2
6665 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6666 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6667 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
6668 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
6669 ; AVX2-NEXT:    vmovaps 128(%rsi), %ymm3
6670 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6671 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
6672 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6673 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm15
6674 ; AVX2-NEXT:    vmovaps 128(%r9), %ymm1
6675 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6676 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
6677 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6678 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
6679 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6680 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6681 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6682 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6683 ; AVX2-NEXT:    vmovaps 144(%rax), %xmm1
6684 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6685 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6686 ; AVX2-NEXT:    vmovaps 160(%r8), %xmm0
6687 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
6688 ; AVX2-NEXT:    vmovaps 160(%rax), %xmm2
6689 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6690 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm13
6691 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
6692 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
6693 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6694 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm11
6695 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6696 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
6697 ; AVX2-NEXT:    vbroadcastsd 168(%rcx), %ymm3
6698 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
6699 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6700 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6701 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6702 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6703 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6704 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm1
6705 ; AVX2-NEXT:    vmovaps 160(%rsi), %ymm2
6706 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6707 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6708 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6709 ; AVX2-NEXT:    vmovaps 160(%rdx), %ymm0
6710 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm10
6711 ; AVX2-NEXT:    vmovaps 160(%r9), %ymm9
6712 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
6713 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6714 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6715 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6716 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6717 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6718 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6719 ; AVX2-NEXT:    vmovaps 176(%rax), %xmm1
6720 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6721 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6722 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
6723 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
6724 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm7
6725 ; AVX2-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
6726 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6727 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6728 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm0
6729 ; AVX2-NEXT:    vbroadcastsd 200(%rcx), %ymm1
6730 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6731 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6732 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6733 ; AVX2-NEXT:    vmovaps 192(%r8), %xmm5
6734 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
6735 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6736 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6737 ; AVX2-NEXT:    vmovaps 192(%rax), %xmm4
6738 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6739 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
6740 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
6741 ; AVX2-NEXT:    vmovaps 192(%rsi), %ymm3
6742 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6743 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
6744 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6745 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm1
6746 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
6747 ; AVX2-NEXT:    vmovaps 208(%rdx), %xmm6
6748 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
6749 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
6750 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6751 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6752 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6753 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6754 ; AVX2-NEXT:    vmovaps 208(%rax), %xmm1
6755 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6756 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6757 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm0
6758 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm2
6759 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6760 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
6761 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
6762 ; AVX2-NEXT:    vbroadcastsd 224(%rax), %ymm3
6763 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
6764 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6765 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm1
6766 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
6767 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
6768 ; AVX2-NEXT:    vbroadcastsd 232(%rcx), %ymm6
6769 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
6770 ; AVX2-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
6771 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6772 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6773 ; AVX2-NEXT:    vmovaps 224(%rsi), %ymm3
6774 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
6775 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
6776 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
6777 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6778 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
6779 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
6780 ; AVX2-NEXT:    vmovaps 224(%rdx), %ymm0
6781 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6782 ; AVX2-NEXT:    vmovaps 240(%rax), %xmm6
6783 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6784 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6785 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6786 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6787 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6788 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6789 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6790 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
6791 ; AVX2-NEXT:    # ymm3 = ymm12[1],mem[1],ymm12[3],mem[3]
6792 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6793 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6794 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm6
6795 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6796 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6797 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6798 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6799 ; AVX2-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
6800 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm6
6801 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6802 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6803 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6804 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6805 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6806 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6807 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6808 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm6
6809 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6810 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6811 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6812 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6813 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6814 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6815 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6816 ; AVX2-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
6817 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6818 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6819 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6820 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6821 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6822 ; AVX2-NEXT:    vbroadcastsd 88(%rcx), %ymm6
6823 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6824 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6825 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6826 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6827 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6828 ; AVX2-NEXT:    vbroadcastsd 96(%rcx), %ymm6
6829 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6830 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6831 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6832 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6833 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6834 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6835 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm6
6836 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6837 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6838 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6839 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6840 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6841 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6842 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
6843 ; AVX2-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
6844 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6845 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6846 ; AVX2-NEXT:    vbroadcastsd 152(%rcx), %ymm15
6847 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
6848 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
6849 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm13, %ymm11
6850 ; AVX2-NEXT:    vbroadcastsd 160(%rcx), %ymm13
6851 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm13[6,7]
6852 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
6853 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,2,3,3]
6854 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
6855 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm10
6856 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2,3,4,5,6,7]
6857 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
6858 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
6859 ; AVX2-NEXT:    vbroadcastsd %xmm4, %ymm4
6860 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
6861 ; AVX2-NEXT:    vbroadcastsd 216(%rcx), %ymm5
6862 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
6863 ; AVX2-NEXT:    vbroadcastsd 216(%r9), %ymm7
6864 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
6865 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm7
6866 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
6867 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
6868 ; AVX2-NEXT:    vbroadcastsd 224(%rcx), %ymm7
6869 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
6870 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
6871 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
6872 ; AVX2-NEXT:    vbroadcastsd 240(%r9), %ymm2
6873 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6874 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm2
6875 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
6876 ; AVX2-NEXT:    vbroadcastsd 248(%r9), %ymm7
6877 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
6878 ; AVX2-NEXT:    vmovaps 224(%rax), %ymm7
6879 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm10 # 32-byte Folded Reload
6880 ; AVX2-NEXT:    # ymm10 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
6881 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
6882 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
6883 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
6884 ; AVX2-NEXT:    vmovaps %ymm2, 1760(%rcx)
6885 ; AVX2-NEXT:    vmovaps %ymm14, 1728(%rcx)
6886 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%rcx)
6887 ; AVX2-NEXT:    vmovaps %ymm10, 1664(%rcx)
6888 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6889 ; AVX2-NEXT:    vmovaps %ymm0, 1632(%rcx)
6890 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6891 ; AVX2-NEXT:    vmovaps %ymm0, 1600(%rcx)
6892 ; AVX2-NEXT:    vmovaps %ymm1, 1568(%rcx)
6893 ; AVX2-NEXT:    vmovaps %ymm5, 1536(%rcx)
6894 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6895 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%rcx)
6896 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6897 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%rcx)
6898 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6899 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%rcx)
6900 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6901 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%rcx)
6902 ; AVX2-NEXT:    vmovaps %ymm4, 1376(%rcx)
6903 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6904 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%rcx)
6905 ; AVX2-NEXT:    vmovaps %ymm9, 1312(%rcx)
6906 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6907 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%rcx)
6908 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6909 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%rcx)
6910 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6911 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%rcx)
6912 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6913 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%rcx)
6914 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6915 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%rcx)
6916 ; AVX2-NEXT:    vmovaps %ymm11, 1120(%rcx)
6917 ; AVX2-NEXT:    vmovaps %ymm3, 1088(%rcx)
6918 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6919 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%rcx)
6920 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6921 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%rcx)
6922 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6923 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rcx)
6924 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6925 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rcx)
6926 ; AVX2-NEXT:    vmovaps %ymm6, 928(%rcx)
6927 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6928 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rcx)
6929 ; AVX2-NEXT:    vmovaps %ymm8, 864(%rcx)
6930 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6931 ; AVX2-NEXT:    vmovaps %ymm0, 832(%rcx)
6932 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6933 ; AVX2-NEXT:    vmovaps %ymm0, 800(%rcx)
6934 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6935 ; AVX2-NEXT:    vmovaps %ymm0, 768(%rcx)
6936 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6937 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rcx)
6938 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6939 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rcx)
6940 ; AVX2-NEXT:    vmovaps %ymm12, 672(%rcx)
6941 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6942 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rcx)
6943 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6944 ; AVX2-NEXT:    vmovaps %ymm0, 608(%rcx)
6945 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6946 ; AVX2-NEXT:    vmovaps %ymm0, 576(%rcx)
6947 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6948 ; AVX2-NEXT:    vmovaps %ymm0, 544(%rcx)
6949 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6950 ; AVX2-NEXT:    vmovaps %ymm0, 512(%rcx)
6951 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
6952 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rcx)
6953 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6954 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rcx)
6955 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6956 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rcx)
6957 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6958 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rcx)
6959 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6960 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)
6961 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6962 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rcx)
6963 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6964 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)
6965 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6966 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)
6967 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6968 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rcx)
6969 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6970 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)
6971 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6972 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)
6973 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6974 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rcx)
6975 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6976 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)
6977 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6978 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rcx)
6979 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6980 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)
6981 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6982 ; AVX2-NEXT:    vmovaps %ymm0, (%rcx)
6983 ; AVX2-NEXT:    addq $1672, %rsp # imm = 0x688
6984 ; AVX2-NEXT:    vzeroupper
6985 ; AVX2-NEXT:    retq
6987 ; AVX2-FP-LABEL: store_i64_stride7_vf32:
6988 ; AVX2-FP:       # %bb.0:
6989 ; AVX2-FP-NEXT:    subq $1672, %rsp # imm = 0x688
6990 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6991 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
6992 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1
6993 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2
6994 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm12
6995 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm9
6996 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6997 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm3
6998 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
6999 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm4
7000 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7001 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
7002 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7003 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
7004 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7005 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7006 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7007 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
7008 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
7009 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
7010 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm5
7011 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7012 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm3
7013 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7014 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
7015 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7016 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7017 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm8
7018 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7019 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm5
7020 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7021 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
7022 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7023 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7024 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm12[0],ymm9[0],ymm12[2],ymm9[2]
7025 ; AVX2-FP-NEXT:    vmovaps 16(%rdx), %xmm6
7026 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7027 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7028 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7029 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm4
7030 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7031 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
7032 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7033 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
7034 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7035 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
7036 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
7037 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
7038 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7039 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7040 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm1
7041 ; AVX2-FP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
7042 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7043 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
7044 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm1
7045 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7046 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
7047 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7048 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7049 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7050 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
7051 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1
7052 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm2
7053 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7054 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7055 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7056 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm0
7057 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm4
7058 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7059 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm3
7060 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7061 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7062 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7063 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7064 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7065 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7066 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7067 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7068 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm1
7069 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7070 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7071 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm0
7072 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
7073 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm1
7074 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7075 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
7076 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7077 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7078 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm0
7079 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
7080 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7081 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7082 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7083 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm2
7084 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7085 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7086 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7087 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7088 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm2
7089 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7090 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7091 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7092 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
7093 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm3
7094 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7095 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7096 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7097 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm4
7098 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7099 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm1
7100 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7101 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
7102 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7103 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7104 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7105 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7106 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7107 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7108 ; AVX2-FP-NEXT:    vmovaps 80(%rax), %xmm1
7109 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7110 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7111 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm0
7112 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7113 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm2
7114 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7115 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm3
7116 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7117 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7118 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7119 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7120 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm3
7121 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7122 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7123 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
7124 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
7125 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7126 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7127 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7128 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7129 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7130 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7131 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
7132 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm2
7133 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7134 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7135 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7136 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm0
7137 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm4
7138 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7139 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm3
7140 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7141 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7142 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7143 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7144 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7145 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7146 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7147 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7148 ; AVX2-FP-NEXT:    vmovaps 112(%rax), %xmm1
7149 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7150 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7151 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
7152 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
7153 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
7154 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7155 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
7156 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7157 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7158 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm0
7159 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
7160 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7161 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7162 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7163 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %xmm2
7164 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7165 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7166 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7167 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7168 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %xmm2
7169 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7170 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7171 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7172 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
7173 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm3
7174 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7175 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7176 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7177 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm15
7178 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %ymm1
7179 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7180 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
7181 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7182 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7183 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7184 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7185 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7186 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7187 ; AVX2-FP-NEXT:    vmovaps 144(%rax), %xmm1
7188 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7189 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7190 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %xmm0
7191 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7192 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %xmm2
7193 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7194 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm13
7195 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
7196 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7197 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7198 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm11
7199 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7200 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
7201 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
7202 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7203 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7204 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7205 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7206 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7207 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7208 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm1
7209 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm2
7210 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7211 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7212 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7213 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm0
7214 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm10
7215 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %ymm9
7216 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
7217 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7218 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7219 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7220 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7221 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7222 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7223 ; AVX2-FP-NEXT:    vmovaps 176(%rax), %xmm1
7224 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7225 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7226 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
7227 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
7228 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm7
7229 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
7230 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7231 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7232 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm0
7233 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
7234 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7235 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7236 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7237 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %xmm5
7238 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
7239 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7240 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7241 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %xmm4
7242 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7243 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
7244 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
7245 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm3
7246 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7247 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
7248 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7249 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm1
7250 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
7251 ; AVX2-FP-NEXT:    vmovaps 208(%rdx), %xmm6
7252 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
7254 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7255 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7256 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7257 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7258 ; AVX2-FP-NEXT:    vmovaps 208(%rax), %xmm1
7259 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7260 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7261 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm0
7262 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm2
7263 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7264 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
7265 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
7266 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rax), %ymm3
7267 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
7268 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7269 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm1
7270 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7271 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
7272 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rcx), %ymm6
7273 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
7274 ; AVX2-FP-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
7275 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7276 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7277 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm3
7278 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7279 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
7280 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
7281 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7282 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
7283 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
7284 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm0
7285 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7286 ; AVX2-FP-NEXT:    vmovaps 240(%rax), %xmm6
7287 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7288 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7289 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7290 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7291 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7292 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7293 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7294 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
7295 ; AVX2-FP-NEXT:    # ymm3 = ymm12[1],mem[1],ymm12[3],mem[3]
7296 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7297 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7298 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
7299 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7300 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7301 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7302 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7303 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
7304 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
7305 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7306 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7307 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7308 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7309 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7310 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7311 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7312 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm6
7313 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7314 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7315 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7316 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7317 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7318 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7319 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7320 ; AVX2-FP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
7321 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7322 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7323 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7324 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7325 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7326 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rcx), %ymm6
7327 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7328 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7329 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7330 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7331 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7332 ; AVX2-FP-NEXT:    vbroadcastsd 96(%rcx), %ymm6
7333 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7334 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7335 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7336 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7337 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7338 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7339 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm6
7340 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7341 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7342 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7343 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7344 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7345 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7346 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
7347 ; AVX2-FP-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
7348 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7349 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7350 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rcx), %ymm15
7351 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
7352 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
7353 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm13, %ymm11
7354 ; AVX2-FP-NEXT:    vbroadcastsd 160(%rcx), %ymm13
7355 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm13[6,7]
7356 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
7357 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,2,3,3]
7358 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
7359 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm10
7360 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2,3,4,5,6,7]
7361 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
7362 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
7363 ; AVX2-FP-NEXT:    vbroadcastsd %xmm4, %ymm4
7364 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
7365 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rcx), %ymm5
7366 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
7367 ; AVX2-FP-NEXT:    vbroadcastsd 216(%r9), %ymm7
7368 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
7369 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm7
7370 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
7371 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
7372 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rcx), %ymm7
7373 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
7374 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
7375 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
7376 ; AVX2-FP-NEXT:    vbroadcastsd 240(%r9), %ymm2
7377 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7378 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm2
7379 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
7380 ; AVX2-FP-NEXT:    vbroadcastsd 248(%r9), %ymm7
7381 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
7382 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %ymm7
7383 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm10 # 32-byte Folded Reload
7384 ; AVX2-FP-NEXT:    # ymm10 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
7385 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
7386 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
7387 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
7388 ; AVX2-FP-NEXT:    vmovaps %ymm2, 1760(%rcx)
7389 ; AVX2-FP-NEXT:    vmovaps %ymm14, 1728(%rcx)
7390 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%rcx)
7391 ; AVX2-FP-NEXT:    vmovaps %ymm10, 1664(%rcx)
7392 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7393 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1632(%rcx)
7394 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7395 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1600(%rcx)
7396 ; AVX2-FP-NEXT:    vmovaps %ymm1, 1568(%rcx)
7397 ; AVX2-FP-NEXT:    vmovaps %ymm5, 1536(%rcx)
7398 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7399 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%rcx)
7400 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7401 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%rcx)
7402 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7403 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%rcx)
7404 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7405 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%rcx)
7406 ; AVX2-FP-NEXT:    vmovaps %ymm4, 1376(%rcx)
7407 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7408 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%rcx)
7409 ; AVX2-FP-NEXT:    vmovaps %ymm9, 1312(%rcx)
7410 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7411 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%rcx)
7412 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7413 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%rcx)
7414 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7415 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%rcx)
7416 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7417 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%rcx)
7418 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7419 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%rcx)
7420 ; AVX2-FP-NEXT:    vmovaps %ymm11, 1120(%rcx)
7421 ; AVX2-FP-NEXT:    vmovaps %ymm3, 1088(%rcx)
7422 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7423 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%rcx)
7424 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7425 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%rcx)
7426 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7427 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rcx)
7428 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7429 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rcx)
7430 ; AVX2-FP-NEXT:    vmovaps %ymm6, 928(%rcx)
7431 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7432 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rcx)
7433 ; AVX2-FP-NEXT:    vmovaps %ymm8, 864(%rcx)
7434 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7435 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%rcx)
7436 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7437 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%rcx)
7438 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7439 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%rcx)
7440 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7441 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rcx)
7442 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7443 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rcx)
7444 ; AVX2-FP-NEXT:    vmovaps %ymm12, 672(%rcx)
7445 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7446 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rcx)
7447 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7448 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%rcx)
7449 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7450 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rcx)
7451 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7452 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rcx)
7453 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7454 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%rcx)
7455 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
7456 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rcx)
7457 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7458 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rcx)
7459 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7460 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rcx)
7461 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7462 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rcx)
7463 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7464 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)
7465 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7466 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rcx)
7467 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7468 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)
7469 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7470 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)
7471 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7472 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rcx)
7473 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7474 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)
7475 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7476 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)
7477 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7478 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rcx)
7479 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7480 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)
7481 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7482 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rcx)
7483 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7484 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)
7485 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7486 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)
7487 ; AVX2-FP-NEXT:    addq $1672, %rsp # imm = 0x688
7488 ; AVX2-FP-NEXT:    vzeroupper
7489 ; AVX2-FP-NEXT:    retq
7491 ; AVX2-FCP-LABEL: store_i64_stride7_vf32:
7492 ; AVX2-FCP:       # %bb.0:
7493 ; AVX2-FCP-NEXT:    subq $1672, %rsp # imm = 0x688
7494 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7495 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
7496 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1
7497 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2
7498 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm12
7499 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm9
7500 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7501 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm3
7502 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
7503 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm4
7504 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7505 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
7506 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7507 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
7508 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7509 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7510 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7511 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
7512 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
7513 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
7514 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm5
7515 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7516 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm3
7517 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7518 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
7519 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7520 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7521 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm8
7522 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7523 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm5
7524 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7525 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
7526 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7527 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7528 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm12[0],ymm9[0],ymm12[2],ymm9[2]
7529 ; AVX2-FCP-NEXT:    vmovaps 16(%rdx), %xmm6
7530 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7531 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7532 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7533 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm4
7534 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7535 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
7536 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7537 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
7538 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7539 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
7540 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
7541 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
7542 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7543 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7544 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm1
7545 ; AVX2-FCP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
7546 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7547 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
7548 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm1
7549 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7550 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
7551 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7552 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7553 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7554 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
7555 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1
7556 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm2
7557 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7558 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7559 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7560 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm0
7561 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm4
7562 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7563 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm3
7564 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7565 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7566 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7567 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7568 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7569 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7570 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7571 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7572 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm1
7573 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7574 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7575 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm0
7576 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
7577 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm1
7578 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7579 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
7580 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7581 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7582 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm0
7583 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
7584 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7585 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7586 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7587 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm2
7588 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7589 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7590 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7591 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7592 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm2
7593 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7594 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7595 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7596 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
7597 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm3
7598 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7599 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7600 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7601 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm4
7602 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7603 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm1
7604 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7605 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
7606 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7607 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7608 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7609 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7610 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7611 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7612 ; AVX2-FCP-NEXT:    vmovaps 80(%rax), %xmm1
7613 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7614 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7615 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm0
7616 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7617 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm2
7618 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7619 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm3
7620 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7621 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7622 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7623 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7624 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm3
7625 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7626 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7627 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
7628 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
7629 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7630 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7631 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7632 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7633 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7634 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7635 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
7636 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm2
7637 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7638 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7639 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7640 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm0
7641 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm4
7642 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7643 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm3
7644 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7645 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7646 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7647 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7648 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7649 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7650 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7651 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7652 ; AVX2-FCP-NEXT:    vmovaps 112(%rax), %xmm1
7653 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7654 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7655 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
7656 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
7657 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
7658 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7659 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
7660 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7661 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7662 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm0
7663 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
7664 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7665 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7666 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7667 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %xmm2
7668 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7669 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7670 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7671 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7672 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %xmm2
7673 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7674 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7675 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7676 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
7677 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm3
7678 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7679 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7680 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7681 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm15
7682 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %ymm1
7683 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7684 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
7685 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7686 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7687 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7688 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7689 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7690 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7691 ; AVX2-FCP-NEXT:    vmovaps 144(%rax), %xmm1
7692 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7693 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7694 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %xmm0
7695 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7696 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %xmm2
7697 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7698 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm13
7699 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
7700 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7701 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7702 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm11
7703 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7704 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
7705 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
7706 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7707 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7708 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7709 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7710 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7711 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7712 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm1
7713 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm2
7714 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7715 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7716 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7717 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm0
7718 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm10
7719 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %ymm9
7720 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm10[0],ymm9[0],ymm10[2],ymm9[2]
7721 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7722 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7723 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7724 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7725 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7726 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7727 ; AVX2-FCP-NEXT:    vmovaps 176(%rax), %xmm1
7728 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7729 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7730 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
7731 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
7732 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm7
7733 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
7734 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7735 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7736 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm0
7737 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
7738 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7739 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7740 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7741 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %xmm5
7742 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
7743 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7744 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7745 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %xmm4
7746 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7747 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
7748 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
7749 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm3
7750 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7751 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
7752 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7753 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm1
7754 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
7755 ; AVX2-FCP-NEXT:    vmovaps 208(%rdx), %xmm6
7756 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm6 = xmm6[0],mem[0]
7757 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm6[0,1,2,3],ymm1[4,5,6,7]
7758 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7759 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7760 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7761 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7762 ; AVX2-FCP-NEXT:    vmovaps 208(%rax), %xmm1
7763 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7764 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7765 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm0
7766 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm2
7767 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7768 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
7769 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
7770 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rax), %ymm3
7771 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
7772 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7773 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm1
7774 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7775 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
7776 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rcx), %ymm6
7777 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
7778 ; AVX2-FCP-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
7779 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7780 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7781 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm3
7782 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7783 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm8 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
7784 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm8[4,5,6,7]
7785 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7786 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
7787 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
7788 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm0
7789 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7790 ; AVX2-FCP-NEXT:    vmovaps 240(%rax), %xmm6
7791 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7792 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7793 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7794 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7795 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7796 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7797 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7798 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm12, %ymm3 # 32-byte Folded Reload
7799 ; AVX2-FCP-NEXT:    # ymm3 = ymm12[1],mem[1],ymm12[3],mem[3]
7800 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7801 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7802 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
7803 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7804 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7805 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7806 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7807 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
7808 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
7809 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7810 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7811 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7812 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7813 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7814 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7815 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7816 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm6
7817 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7818 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7819 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7820 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7821 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7822 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7823 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7824 ; AVX2-FCP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
7825 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7826 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7827 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7828 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7829 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7830 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rcx), %ymm6
7831 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7832 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7833 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7834 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7835 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7836 ; AVX2-FCP-NEXT:    vbroadcastsd 96(%rcx), %ymm6
7837 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7838 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7839 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7840 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7841 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7842 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7843 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm6
7844 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7845 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7846 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7847 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7848 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7849 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7850 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
7851 ; AVX2-FCP-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
7852 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7853 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7854 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rcx), %ymm15
7855 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
7856 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
7857 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm13, %ymm11
7858 ; AVX2-FCP-NEXT:    vbroadcastsd 160(%rcx), %ymm13
7859 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm13[6,7]
7860 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm9 = ymm10[1],ymm9[1],ymm10[3],ymm9[3]
7861 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm9 = ymm9[0,2,3,3]
7862 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
7863 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm10
7864 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm10[0,1],ymm9[2,3,4,5,6,7]
7865 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
7866 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
7867 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm4, %ymm4
7868 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
7869 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rcx), %ymm5
7870 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
7871 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%r9), %ymm7
7872 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
7873 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm7
7874 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
7875 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
7876 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rcx), %ymm7
7877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
7878 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
7879 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
7880 ; AVX2-FCP-NEXT:    vbroadcastsd 240(%r9), %ymm2
7881 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7882 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm2
7883 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
7884 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%r9), %ymm7
7885 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
7886 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %ymm7
7887 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm10 # 32-byte Folded Reload
7888 ; AVX2-FCP-NEXT:    # ymm10 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
7889 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
7890 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
7891 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
7892 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 1760(%rcx)
7893 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 1728(%rcx)
7894 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%rcx)
7895 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 1664(%rcx)
7896 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7897 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1632(%rcx)
7898 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7899 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1600(%rcx)
7900 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 1568(%rcx)
7901 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 1536(%rcx)
7902 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7903 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%rcx)
7904 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7905 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%rcx)
7906 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7907 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%rcx)
7908 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7909 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%rcx)
7910 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 1376(%rcx)
7911 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7912 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%rcx)
7913 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 1312(%rcx)
7914 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7915 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%rcx)
7916 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7917 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%rcx)
7918 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7919 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%rcx)
7920 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7921 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%rcx)
7922 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7923 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%rcx)
7924 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 1120(%rcx)
7925 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 1088(%rcx)
7926 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7927 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%rcx)
7928 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7929 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%rcx)
7930 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7931 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rcx)
7932 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7933 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rcx)
7934 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 928(%rcx)
7935 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7936 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rcx)
7937 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 864(%rcx)
7938 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7939 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%rcx)
7940 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7941 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%rcx)
7942 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7943 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%rcx)
7944 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7945 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rcx)
7946 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7947 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rcx)
7948 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 672(%rcx)
7949 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7950 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rcx)
7951 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7952 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%rcx)
7953 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7954 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%rcx)
7955 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7956 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%rcx)
7957 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7958 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%rcx)
7959 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
7960 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rcx)
7961 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7962 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rcx)
7963 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7964 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rcx)
7965 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7966 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rcx)
7967 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7968 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rcx)
7969 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7970 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)
7971 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7972 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)
7973 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7974 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rcx)
7975 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7976 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rcx)
7977 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7978 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)
7979 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7980 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)
7981 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7982 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rcx)
7983 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7984 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rcx)
7985 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7986 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rcx)
7987 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7988 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)
7989 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7990 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)
7991 ; AVX2-FCP-NEXT:    addq $1672, %rsp # imm = 0x688
7992 ; AVX2-FCP-NEXT:    vzeroupper
7993 ; AVX2-FCP-NEXT:    retq
7995 ; AVX512-LABEL: store_i64_stride7_vf32:
7996 ; AVX512:       # %bb.0:
7997 ; AVX512-NEXT:    subq $2184, %rsp # imm = 0x888
7998 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7999 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm17
8000 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm14
8001 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm16
8002 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm23
8003 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm6
8004 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm7
8005 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm8
8006 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm29
8007 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm0
8008 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm3
8009 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm1
8010 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm5
8011 ; AVX512-NEXT:    movb $96, %r10b
8012 ; AVX512-NEXT:    kmovw %r10d, %k1
8013 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
8014 ; AVX512-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8015 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8016 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [9,1,9,1,9,1,9,1]
8017 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8018 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10
8019 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm11, %zmm10
8020 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [4,9,0,3,4,9,0,3]
8021 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
8022 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
8023 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm12, %zmm10
8024 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8025 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
8026 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8027 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
8028 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm15, %zmm1
8029 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [2,10,0,3,2,10,0,3]
8030 ; AVX512-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
8031 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm4
8032 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm22, %zmm4
8033 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
8034 ; AVX512-NEXT:    vmovdqa (%r9), %ymm10
8035 ; AVX512-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
8036 ; AVX512-NEXT:    vmovdqa 64(%r9), %ymm13
8037 ; AVX512-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8038 ; AVX512-NEXT:    vmovdqa (%r8), %ymm1
8039 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8040 ; AVX512-NEXT:    vmovdqa64 64(%r8), %ymm18
8041 ; AVX512-NEXT:    vmovdqu64 %ymm18, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8042 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
8043 ; AVX512-NEXT:    movb $28, %r10b
8044 ; AVX512-NEXT:    kmovw %r10d, %k2
8045 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
8046 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8047 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
8048 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
8049 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8050 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm10, %zmm1
8051 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,1,12,7,0,1,12,7]
8052 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8053 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
8054 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8055 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm1
8056 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
8057 ; AVX512-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
8058 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm21
8059 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8060 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm20, %zmm21
8061 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8062 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8063 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm2, %zmm21
8064 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8065 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
8066 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8067 ; AVX512-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8068 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm1
8069 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8070 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm0
8071 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm15, %zmm0
8072 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
8073 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm21
8074 ; AVX512-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8075 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm22, %zmm1
8076 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
8077 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm18[0],ymm13[0],ymm18[2],ymm13[2]
8078 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
8079 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8080 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm0
8081 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm13
8082 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8083 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm11, %zmm1
8084 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8085 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8086 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm12, %zmm1
8087 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8088 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8089 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
8090 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm4, %zmm1
8091 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8092 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm1
8093 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8094 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
8095 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm1
8096 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8097 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8098 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm19, %zmm0
8099 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8100 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8101 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm18
8102 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm22
8103 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm1
8104 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm15, %zmm1
8105 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm0
8106 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm28
8107 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5
8108 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm21, %zmm5
8109 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
8110 ; AVX512-NEXT:    vmovdqa64 128(%rax), %zmm30
8111 ; AVX512-NEXT:    vmovdqa 128(%r9), %ymm13
8112 ; AVX512-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8113 ; AVX512-NEXT:    vmovdqa 128(%r8), %ymm1
8114 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8115 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm13[0],ymm1[2],ymm13[2]
8116 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm30[2,3,2,3]
8117 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8118 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm5
8119 ; AVX512-NEXT:    vmovdqa64 128(%r9), %zmm1
8120 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm5, %zmm10
8121 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm4, %zmm10
8122 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8123 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
8124 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm1, %zmm20
8125 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm2, %zmm20
8126 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8127 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
8128 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm11, %zmm1
8129 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8130 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm12, %zmm1
8131 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8132 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8133 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm19, %zmm5
8134 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm3, %zmm30
8135 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [13,5,13,5,13,5,13,5]
8136 ; AVX512-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8137 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8138 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm3, %zmm1
8139 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8140 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [6,14,6,14,6,14,6,14]
8141 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8142 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8143 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm12, %zmm1
8144 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8145 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8146 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm19, %zmm1
8147 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8148 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm1
8149 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
8150 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8151 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm2, %zmm8
8152 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm31
8153 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
8154 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm3, %zmm4
8155 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8156 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
8157 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm12, %zmm4
8158 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8159 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
8160 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm19, %zmm4
8161 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8162 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm2, %zmm29
8163 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4
8164 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm3, %zmm4
8165 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8166 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4
8167 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm12, %zmm4
8168 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8169 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4
8170 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm19, %zmm4
8171 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8172 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm28
8173 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm10
8174 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
8175 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm24
8176 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm2, %zmm24
8177 ; AVX512-NEXT:    movb $48, %r10b
8178 ; AVX512-NEXT:    kmovw %r10d, %k3
8179 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm7
8180 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm2
8181 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm7[0],zmm2[0],zmm7[2],zmm2[2],zmm7[4],zmm2[4],zmm7[6],zmm2[6]
8182 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
8183 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
8184 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm26
8185 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
8186 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
8187 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8188 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm27
8189 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm13, %zmm27
8190 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm4
8191 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm21
8192 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm11, %zmm21
8193 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm23
8194 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm13, %zmm23
8195 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm8
8196 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm19
8197 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm11, %zmm19
8198 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm20
8199 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm13, %zmm20
8200 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm7, %zmm13
8201 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm2, %zmm11
8202 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm25
8203 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm5
8204 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm6
8205 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm7
8206 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm12, %zmm25
8207 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm3, %zmm5
8208 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm6
8209 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm2
8210 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm17[0],zmm16[0],zmm17[2],zmm16[2],zmm17[4],zmm16[4],zmm17[6],zmm16[6]
8211 ; AVX512-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8212 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm4
8213 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm16
8214 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm15
8215 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm3, %zmm4
8216 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm12, %zmm16
8217 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm15
8218 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k3} = zmm14[0],zmm8[0],zmm14[2],zmm8[2],zmm14[4],zmm8[4],zmm14[6],zmm8[6]
8219 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm2
8220 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm17
8221 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
8222 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm12, %zmm17
8223 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm1, %zmm14
8224 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm8
8225 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm8
8226 ; AVX512-NEXT:    vpermi2q %zmm22, %zmm18, %zmm3
8227 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm9
8228 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm12, %zmm9
8229 ; AVX512-NEXT:    vpermi2q %zmm22, %zmm18, %zmm12
8230 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k3} = zmm18[0],zmm22[0],zmm18[2],zmm22[2],zmm18[4],zmm22[4],zmm18[6],zmm22[6]
8231 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm1, %zmm18
8232 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm22
8233 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm22
8234 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8235 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
8236 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm25[0,1,2,3],zmm9[4,5,6,7]
8237 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm0
8238 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
8239 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm24, %zmm9
8240 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
8241 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [12,0,0,3,4,5,6,13]
8242 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm25
8243 ; AVX512-NEXT:    movb $24, %sil
8244 ; AVX512-NEXT:    kmovw %esi, %k3
8245 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm6 {%k3}
8246 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,15,0,0]
8247 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm5
8248 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm6
8249 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm6 = xmm6[0],mem[0]
8250 ; AVX512-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
8251 ; AVX512-NEXT:    movb $12, %sil
8252 ; AVX512-NEXT:    kmovw %esi, %k4
8253 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm27 {%k4}
8254 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [0,8,0,8,0,8,0,8]
8255 ; AVX512-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8256 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
8257 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm22 # 64-byte Folded Reload
8258 ; AVX512-NEXT:    vmovdqa 64(%rdx), %xmm8
8259 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8260 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8261 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm23 {%k4}
8262 ; AVX512-NEXT:    vmovdqa 128(%rdx), %xmm8
8263 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8264 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8265 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm20 {%k4}
8266 ; AVX512-NEXT:    vmovdqa 192(%rdx), %xmm8
8267 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8268 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8269 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm13 {%k4}
8270 ; AVX512-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm8
8271 ; AVX512-NEXT:    movb $112, %sil
8272 ; AVX512-NEXT:    kmovw %esi, %k4
8273 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm27 {%k4}
8274 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8275 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
8276 ; AVX512-NEXT:    vinserti32x4 $3, 64(%rax), %zmm1, %zmm8
8277 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm23 {%k4}
8278 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8279 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
8280 ; AVX512-NEXT:    vinserti32x4 $3, 128(%rax), %zmm1, %zmm1
8281 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm20 {%k4}
8282 ; AVX512-NEXT:    vmovdqa64 192(%r9), %zmm1
8283 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
8284 ; AVX512-NEXT:    vinserti32x4 $3, 192(%rax), %zmm6, %zmm6
8285 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm13 {%k4}
8286 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8287 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k1}
8288 ; AVX512-NEXT:    movb $120, %sil
8289 ; AVX512-NEXT:    kmovw %esi, %k4
8290 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
8291 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm24 {%k4}
8292 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm22 # 64-byte Folded Reload
8293 ; AVX512-NEXT:    # zmm22 = zmm16[0,1,2,3],mem[4,5,6,7]
8294 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8295 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
8296 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8297 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k4}
8298 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8299 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
8300 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8301 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k4}
8302 ; AVX512-NEXT:    movb $-61, %sil
8303 ; AVX512-NEXT:    kmovw %esi, %k4
8304 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8305 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k4}
8306 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm2 # 64-byte Folded Reload
8307 ; AVX512-NEXT:    # zmm2 = zmm17[0,1,2,3],mem[4,5,6,7]
8308 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8309 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k4}
8310 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 # 64-byte Folded Reload
8311 ; AVX512-NEXT:    # zmm3 = zmm12[0,1,2,3],mem[4,5,6,7]
8312 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8313 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k4}
8314 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm6
8315 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8316 ; AVX512-NEXT:    movb $6, %sil
8317 ; AVX512-NEXT:    kmovw %esi, %k4
8318 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm26 {%k4}
8319 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8320 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
8321 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8322 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
8323 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8324 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
8325 ; AVX512-NEXT:    movb $-31, %sil
8326 ; AVX512-NEXT:    kmovw %esi, %k3
8327 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8328 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
8329 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8330 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
8331 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k3}
8332 ; AVX512-NEXT:    movb $56, %sil
8333 ; AVX512-NEXT:    kmovw %esi, %k3
8334 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8335 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm26 {%k3}
8336 ; AVX512-NEXT:    vpbroadcastq 72(%rcx), %ymm6
8337 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8338 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm21 {%k4}
8339 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8340 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
8341 ; AVX512-NEXT:    vpbroadcastq 136(%rcx), %ymm6
8342 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8343 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k4}
8344 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8345 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
8346 ; AVX512-NEXT:    vpbroadcastq 200(%rcx), %ymm6
8347 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8348 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm11 {%k4}
8349 ; AVX512-NEXT:    movb $64, %cl
8350 ; AVX512-NEXT:    kmovw %ecx, %k4
8351 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k4}
8352 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8353 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm6, %zmm0
8354 ; AVX512-NEXT:    vmovdqa64 192(%rax), %zmm6
8355 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
8356 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm8, %zmm0
8357 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k3}
8358 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,11,0,4,5,6,7]
8359 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm9, %zmm0
8360 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm10 {%k1}
8361 ; AVX512-NEXT:    vmovdqa 192(%r8), %ymm7
8362 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm7[0],mem[0],ymm7[2],mem[2]
8363 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm7[2,3,2,3],zmm6[2,3,2,3]
8364 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8365 ; AVX512-NEXT:    vpunpckhqdq (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
8366 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8367 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8368 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8369 ; AVX512-NEXT:    movb $14, %cl
8370 ; AVX512-NEXT:    kmovw %ecx, %k1
8371 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8372 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm12 {%k1}
8373 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8374 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
8375 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8376 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8377 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8378 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm29 {%k1}
8379 ; AVX512-NEXT:    movb $8, %cl
8380 ; AVX512-NEXT:    kmovw %ecx, %k2
8381 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k2}
8382 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8383 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
8384 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8385 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8386 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8387 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm28 {%k1}
8388 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
8389 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm25, %zmm7
8390 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
8391 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm31, %zmm8
8392 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
8393 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm5, %zmm9
8394 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
8395 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm7, %zmm1
8396 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,13,2,3,4,5,6,7]
8397 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm8, %zmm5
8398 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [14,1,2,3,4,5,6,15]
8399 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
8400 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8401 ; AVX512-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
8402 ; AVX512-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
8403 ; AVX512-NEXT:    vmovdqa64 %zmm18, 1280(%rax)
8404 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1216(%rax)
8405 ; AVX512-NEXT:    vmovdqa64 %zmm4, 1152(%rax)
8406 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8407 ; AVX512-NEXT:    vmovaps %zmm3, 1024(%rax)
8408 ; AVX512-NEXT:    vmovdqa64 %zmm19, 960(%rax)
8409 ; AVX512-NEXT:    vmovdqa64 %zmm14, 832(%rax)
8410 ; AVX512-NEXT:    vmovdqa64 %zmm2, 768(%rax)
8411 ; AVX512-NEXT:    vmovdqa64 %zmm16, 704(%rax)
8412 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8413 ; AVX512-NEXT:    vmovaps %zmm2, 576(%rax)
8414 ; AVX512-NEXT:    vmovdqa64 %zmm21, 512(%rax)
8415 ; AVX512-NEXT:    vmovdqa64 %zmm15, 384(%rax)
8416 ; AVX512-NEXT:    vmovdqa64 %zmm22, 320(%rax)
8417 ; AVX512-NEXT:    vmovdqa64 %zmm24, 256(%rax)
8418 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8419 ; AVX512-NEXT:    vmovaps %zmm2, 128(%rax)
8420 ; AVX512-NEXT:    vmovdqa64 %zmm26, 64(%rax)
8421 ; AVX512-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
8422 ; AVX512-NEXT:    vmovdqa64 %zmm28, 1088(%rax)
8423 ; AVX512-NEXT:    vmovdqa64 %zmm20, 896(%rax)
8424 ; AVX512-NEXT:    vmovdqa64 %zmm29, 640(%rax)
8425 ; AVX512-NEXT:    vmovdqa64 %zmm23, 448(%rax)
8426 ; AVX512-NEXT:    vmovdqa64 %zmm12, 192(%rax)
8427 ; AVX512-NEXT:    vmovdqa64 %zmm27, (%rax)
8428 ; AVX512-NEXT:    vmovdqa64 %zmm7, 1728(%rax)
8429 ; AVX512-NEXT:    vmovdqa64 %zmm5, 1664(%rax)
8430 ; AVX512-NEXT:    vmovdqa64 %zmm1, 1600(%rax)
8431 ; AVX512-NEXT:    vmovdqa64 %zmm0, 1536(%rax)
8432 ; AVX512-NEXT:    addq $2184, %rsp # imm = 0x888
8433 ; AVX512-NEXT:    vzeroupper
8434 ; AVX512-NEXT:    retq
8436 ; AVX512-FCP-LABEL: store_i64_stride7_vf32:
8437 ; AVX512-FCP:       # %bb.0:
8438 ; AVX512-FCP-NEXT:    subq $2152, %rsp # imm = 0x868
8439 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8440 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm16
8441 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm17
8442 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm29
8443 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm28
8444 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm19
8445 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm23
8446 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
8447 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm30
8448 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
8449 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm7
8450 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
8451 ; AVX512-FCP-NEXT:    movb $96, %r10b
8452 ; AVX512-FCP-NEXT:    kmovw %r10d, %k1
8453 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [15,7,15,7,15,7,15,7]
8454 ; AVX512-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8455 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8456 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
8457 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8458 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8459 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
8460 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,9,0,3,4,9,0,3]
8461 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
8462 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm9, %zmm4
8463 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8464 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
8465 ; AVX512-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8466 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
8467 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm25, %zmm1
8468 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [2,10,0,3,2,10,0,3]
8469 ; AVX512-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
8470 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
8471 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm2
8472 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
8473 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
8474 ; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm1
8475 ; AVX512-FCP-NEXT:    vmovdqa 64(%r9), %ymm6
8476 ; AVX512-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
8477 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm10
8478 ; AVX512-FCP-NEXT:    vmovdqa 64(%r8), %ymm12
8479 ; AVX512-FCP-NEXT:    vmovdqa 128(%r8), %ymm11
8480 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]
8481 ; AVX512-FCP-NEXT:    movb $28, %r10b
8482 ; AVX512-FCP-NEXT:    kmovw %r10d, %k2
8483 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
8484 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8485 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
8486 ; AVX512-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm10
8487 ; AVX512-FCP-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
8488 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
8489 ; AVX512-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
8490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
8491 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm10, %zmm2
8492 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
8493 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8494 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
8495 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8496 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
8497 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8498 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
8499 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
8500 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8501 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm14
8502 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8503 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8504 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm7
8505 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm14
8506 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8507 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
8508 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8509 ; AVX512-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8510 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm7
8511 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8512 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm12[0],ymm6[0],ymm12[2],ymm6[2]
8513 ; AVX512-FCP-NEXT:    vpermt2q %ymm6, %ymm5, %ymm12
8514 ; AVX512-FCP-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8515 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
8516 ; AVX512-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm11
8517 ; AVX512-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8518 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm4
8519 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm25, %zmm4
8520 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm6
8521 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm5
8522 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8523 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm15, %zmm6
8524 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
8525 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm11
8526 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 {%k2} = zmm0[2,3,2,3],zmm11[2,3,2,3]
8527 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8528 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm0
8529 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
8530 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8531 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8532 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8533 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm8, %zmm4
8534 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8535 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm4
8536 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8537 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8538 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm4
8539 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm4
8540 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8541 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
8542 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm4
8543 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm2, %zmm4
8544 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8545 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8546 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm0
8547 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
8548 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8549 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
8550 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm18
8551 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
8552 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm25, %zmm0
8553 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm31
8554 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm15
8555 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm4
8556 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm4
8557 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
8558 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rax), %zmm5
8559 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm7[2,3,2,3],zmm5[2,3,2,3]
8560 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8561 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
8562 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r9), %zmm4
8563 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm0, %zmm10
8564 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm10
8565 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8566 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm4, %zmm13
8567 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
8568 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8569 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
8570 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm1
8571 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8572 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm9, %zmm1
8573 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8574 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8575 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm0
8576 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8577 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8578 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm7
8579 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
8580 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [3,0,12,4,3,0,12,4]
8581 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8582 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
8583 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm24
8584 ; AVX512-FCP-NEXT:    movb $48, %r10b
8585 ; AVX512-FCP-NEXT:    kmovw %r10d, %k3
8586 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm12
8587 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm3
8588 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm12[0],zmm3[0],zmm12[2],zmm3[2],zmm12[4],zmm3[4],zmm12[6],zmm3[6]
8589 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,8,0,1,0,8,0,1]
8590 ; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
8591 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
8592 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm14, %zmm1
8593 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8594 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
8595 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm14, %zmm1
8596 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8597 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1
8598 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm14, %zmm1
8599 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8600 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm12, %zmm14
8601 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
8602 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
8603 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
8604 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
8605 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8606 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
8607 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
8608 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm20
8609 ; AVX512-FCP-NEXT:    vpermt2q %zmm27, %zmm11, %zmm20
8610 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm11
8611 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm8
8612 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
8613 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9
8614 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm25, %zmm12
8615 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
8616 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8617 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm8
8618 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
8619 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8620 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm10
8621 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm9
8622 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
8623 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
8624 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm25
8625 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm1, %zmm23
8626 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
8627 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm3
8628 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8629 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm21, %zmm2
8630 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8631 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm16[0],zmm29[0],zmm16[2],zmm29[2],zmm16[4],zmm29[4],zmm16[6],zmm29[6]
8632 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6
8633 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm6
8634 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
8635 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm22
8636 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm21, %zmm16
8637 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8638 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm16
8639 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
8640 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm13, %zmm16
8641 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm19
8642 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29
8643 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm4, %zmm29
8644 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm21, %zmm2
8645 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8646 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm30
8647 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k3} = zmm17[0],zmm28[0],zmm17[2],zmm28[2],zmm17[4],zmm28[4],zmm17[6],zmm28[6]
8648 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
8649 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
8650 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm17
8651 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm21, %zmm30
8652 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
8653 ; AVX512-FCP-NEXT:    vpermi2q %zmm31, %zmm15, %zmm13
8654 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm31
8655 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm28
8656 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm28
8657 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm21, %zmm2
8658 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8659 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm15
8660 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm15
8661 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
8662 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm5
8663 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k3} = zmm27[0],zmm18[0],zmm27[2],zmm18[2],zmm27[4],zmm18[4],zmm27[6],zmm18[6]
8664 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm1
8665 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm4
8666 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm27
8667 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
8668 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm21, %zmm18
8669 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8670 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
8671 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm8[0,1,2,3],zmm15[4,5,6,7]
8672 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8673 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
8674 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,11,0,0,4,5,6,7]
8675 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm24, %zmm0
8676 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r9), %zmm8
8677 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,1,11,0,4,5,6,7]
8678 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm0, %zmm15
8679 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k1}
8680 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [12,0,0,3,4,5,6,13]
8681 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm0
8682 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8683 ; AVX512-FCP-NEXT:    movb $24, %sil
8684 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8685 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k3}
8686 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [0,1,2,3,4,15,0,0]
8687 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm9, %zmm24
8688 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm0
8689 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
8690 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8691 ; AVX512-FCP-NEXT:    movb $12, %sil
8692 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8693 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
8694 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k4}
8695 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
8696 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8697 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8698 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
8699 ; AVX512-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
8700 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8701 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8702 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8703 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k4}
8704 ; AVX512-FCP-NEXT:    vmovdqa 128(%rdx), %xmm5
8705 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8706 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8707 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
8708 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm18 {%k4}
8709 ; AVX512-FCP-NEXT:    vmovdqa 192(%rdx), %xmm5
8710 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8711 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8712 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm14 {%k4}
8713 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm9, %zmm5
8714 ; AVX512-FCP-NEXT:    movb $112, %sil
8715 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8716 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k4}
8717 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8718 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
8719 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
8720 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm5, %zmm5
8721 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
8722 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8723 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
8724 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
8725 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm5, %zmm5
8726 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k4}
8727 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
8728 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm2, %zmm0
8729 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
8730 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k4}
8731 ; AVX512-FCP-NEXT:    vmovdqu (%rsp), %ymm0 # 32-byte Reload
8732 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8733 ; AVX512-FCP-NEXT:    movb $14, %sil
8734 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8735 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k4}
8736 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm6 {%k1}
8737 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8738 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8739 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
8740 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8741 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8742 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm13 {%k4}
8743 ; AVX512-FCP-NEXT:    movb $120, %sil
8744 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8745 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8746 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k4}
8747 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm22, %zmm5 # 64-byte Folded Reload
8748 ; AVX512-FCP-NEXT:    # zmm5 = zmm22[0,1,2,3],mem[4,5,6,7]
8749 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3 {%k1}
8750 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8751 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
8752 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm1 {%k1}
8753 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
8754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k4}
8755 ; AVX512-FCP-NEXT:    movb $-61, %sil
8756 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8757 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8758 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k4}
8759 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm29[4,5,6,7]
8760 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8761 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k4}
8762 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm4[0,1,2,3],zmm28[4,5,6,7]
8763 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8764 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
8765 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
8766 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8767 ; AVX512-FCP-NEXT:    movb $6, %sil
8768 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8769 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8770 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
8771 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8772 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8773 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
8774 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8775 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
8776 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8777 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
8778 ; AVX512-FCP-NEXT:    movb $-31, %sil
8779 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8780 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8781 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
8782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19
8783 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8784 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
8785 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8786 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
8787 ; AVX512-FCP-NEXT:    movb $56, %sil
8788 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8789 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8790 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
8791 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm17
8792 ; AVX512-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm3
8793 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8794 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm26 {%k4}
8795 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8796 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm26 {%k3}
8797 ; AVX512-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm3
8798 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8799 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k4}
8800 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8801 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20 {%k3}
8802 ; AVX512-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm3
8803 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8804 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm11 {%k4}
8805 ; AVX512-FCP-NEXT:    movb $64, %cl
8806 ; AVX512-FCP-NEXT:    kmovw %ecx, %k4
8807 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8808 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k4}
8809 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8810 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
8811 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rax), %zmm3
8812 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8813 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm2
8814 ; AVX512-FCP-NEXT:    movb $8, %al
8815 ; AVX512-FCP-NEXT:    kmovw %eax, %k4
8816 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k4}
8817 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k3}
8818 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
8819 ; AVX512-FCP-NEXT:    vmovdqa 192(%r8), %ymm2
8820 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
8821 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
8822 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,12,0,3,4,5,6,7]
8823 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8824 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm4, %zmm2
8825 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,3,4,5,6,14]
8826 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm6, %zmm4
8827 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,5,15,0]
8828 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm24, %zmm6
8829 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,12,3,4,5,6,7]
8830 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
8831 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,13,2,3,4,5,6,7]
8832 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm2
8833 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [14,1,2,3,4,5,6,15]
8834 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm6, %zmm4
8835 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8836 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 1472(%rax)
8837 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
8838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
8839 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
8840 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 1152(%rax)
8841 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
8842 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8843 ; AVX512-FCP-NEXT:    vmovaps %zmm1, 1024(%rax)
8844 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 960(%rax)
8845 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 832(%rax)
8846 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 768(%rax)
8847 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 704(%rax)
8848 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
8849 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8850 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
8851 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 512(%rax)
8852 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 384(%rax)
8853 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 320(%rax)
8854 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
8855 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 192(%rax)
8856 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8857 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
8858 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 64(%rax)
8859 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 1344(%rax)
8860 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, 896(%rax)
8861 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8862 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
8863 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8864 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%rax)
8865 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 1728(%rax)
8866 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 1664(%rax)
8867 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 1600(%rax)
8868 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 1536(%rax)
8869 ; AVX512-FCP-NEXT:    addq $2152, %rsp # imm = 0x868
8870 ; AVX512-FCP-NEXT:    vzeroupper
8871 ; AVX512-FCP-NEXT:    retq
8873 ; AVX512DQ-LABEL: store_i64_stride7_vf32:
8874 ; AVX512DQ:       # %bb.0:
8875 ; AVX512DQ-NEXT:    subq $2184, %rsp # imm = 0x888
8876 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8877 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm16
8878 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm9
8879 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm23
8880 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm10
8881 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm20
8882 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm18
8883 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm6
8884 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm7
8885 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm0
8886 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm3
8887 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm2
8888 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm4
8889 ; AVX512DQ-NEXT:    movb $96, %r10b
8890 ; AVX512DQ-NEXT:    kmovw %r10d, %k1
8891 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [15,7,15,7,15,7,15,7]
8892 ; AVX512DQ-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8893 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8894 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
8895 ; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8896 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8897 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm12, %zmm5
8898 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
8899 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8900 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm13, %zmm5
8901 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8902 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
8903 ; AVX512DQ-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8904 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
8905 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm25, %zmm1
8906 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [2,10,0,3,2,10,0,3]
8907 ; AVX512DQ-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
8908 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm5
8909 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
8910 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
8911 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm8
8912 ; AVX512DQ-NEXT:    vmovdqu %ymm8, (%rsp) # 32-byte Spill
8913 ; AVX512DQ-NEXT:    vmovdqa 64(%r9), %ymm14
8914 ; AVX512DQ-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8915 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm1
8916 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8917 ; AVX512DQ-NEXT:    vmovdqa 64(%r8), %ymm11
8918 ; AVX512DQ-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8919 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
8920 ; AVX512DQ-NEXT:    movb $28, %r10b
8921 ; AVX512DQ-NEXT:    kmovw %r10d, %k2
8922 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
8923 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8924 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,12,0,5,4,12,0,5]
8925 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
8926 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8927 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
8928 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
8929 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8930 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
8931 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8932 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm5
8933 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [5,0,14,6,5,0,14,6]
8934 ; AVX512DQ-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
8935 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm19
8936 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8937 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm21, %zmm19
8938 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8939 ; AVX512DQ-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8940 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm19
8941 ; AVX512DQ-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8942 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm17, %zmm0
8943 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8944 ; AVX512DQ-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8945 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8946 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8947 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm0
8948 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm25, %zmm0
8949 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm5
8950 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm15, %zmm5
8951 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8952 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
8953 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
8954 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
8955 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8956 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm0
8957 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm11
8958 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8959 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
8960 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8961 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8962 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
8963 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8964 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm5
8965 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4
8966 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm8, %zmm4
8967 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm1, %zmm4
8968 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8969 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm4
8970 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8971 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm21, %zmm4
8972 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm4
8973 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8974 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8975 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
8976 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8977 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8978 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm11
8979 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm19
8980 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm5
8981 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm25, %zmm5
8982 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm4
8983 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm31
8984 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
8985 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm15, %zmm0
8986 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
8987 ; AVX512DQ-NEXT:    vmovdqa64 128(%rax), %zmm15
8988 ; AVX512DQ-NEXT:    vmovdqa 128(%r9), %ymm14
8989 ; AVX512DQ-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8990 ; AVX512DQ-NEXT:    vmovdqa 128(%r8), %ymm5
8991 ; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8992 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm5[0],ymm14[0],ymm5[2],ymm14[2]
8993 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm5[2,3,2,3],zmm15[2,3,2,3]
8994 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8995 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm5
8996 ; AVX512DQ-NEXT:    vmovdqa64 128(%r9), %zmm0
8997 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm8
8998 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm1, %zmm8
8999 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9000 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm0, %zmm21
9001 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm2, %zmm21
9002 ; AVX512DQ-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9003 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
9004 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm1
9005 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9006 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm13, %zmm1
9007 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9008 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9009 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm5
9010 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm3, %zmm15
9011 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9012 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
9013 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9014 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9015 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm0
9016 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm1, %zmm2
9017 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9018 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [6,14,6,14,6,14,6,14]
9019 ; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9020 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9021 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
9022 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9023 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9024 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
9025 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9026 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm15
9027 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [3,0,12,4,3,0,12,4]
9028 ; AVX512DQ-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
9029 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm3, %zmm0
9030 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2
9031 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9032 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm1, %zmm0
9033 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9034 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9035 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm6, %zmm0
9036 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9037 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9038 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
9039 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9040 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm3, %zmm7
9041 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm5
9042 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm29
9043 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm1, %zmm29
9044 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm30
9045 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm6, %zmm30
9046 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
9047 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm17, %zmm0
9048 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9049 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm3, %zmm31
9050 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm12
9051 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm21
9052 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm22
9053 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm3, %zmm22
9054 ; AVX512DQ-NEXT:    movb $48, %r10b
9055 ; AVX512DQ-NEXT:    kmovw %r10d, %k3
9056 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm8
9057 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm7
9058 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k3} = zmm8[0],zmm7[0],zmm8[2],zmm7[2],zmm8[4],zmm7[4],zmm8[6],zmm7[6]
9059 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
9060 ; AVX512DQ-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
9061 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
9062 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm28
9063 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm14, %zmm28
9064 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
9065 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
9066 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm27
9067 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm13, %zmm27
9068 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm26
9069 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm14, %zmm26
9070 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm23
9071 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm13, %zmm23
9072 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm20
9073 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm14, %zmm20
9074 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm18
9075 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm13, %zmm18
9076 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm8, %zmm13
9077 ; AVX512DQ-NEXT:    vpermi2q %zmm8, %zmm7, %zmm14
9078 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm24
9079 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
9080 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm4
9081 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm25, %zmm8
9082 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm6, %zmm24
9083 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm1, %zmm3
9084 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm4
9085 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm16[0],zmm0[0],zmm16[2],zmm0[2],zmm16[4],zmm0[4],zmm16[6],zmm0[6]
9086 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9087 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm25
9088 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm2
9089 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm17
9090 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm25
9091 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
9092 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm15, %zmm17
9093 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm5 {%k3} = zmm9[0],zmm10[0],zmm9[2],zmm10[2],zmm9[4],zmm10[4],zmm9[6],zmm10[6]
9094 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9095 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm0
9096 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm5
9097 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm16
9098 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm1, %zmm0
9099 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm6, %zmm5
9100 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm15, %zmm16
9101 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm9
9102 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm1, %zmm9
9103 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm11, %zmm1
9104 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm10
9105 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm6, %zmm10
9106 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm11, %zmm6
9107 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm11[0],zmm19[0],zmm11[2],zmm19[2],zmm11[4],zmm19[4],zmm11[6],zmm19[6]
9108 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm7
9109 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm15, %zmm7
9110 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm11
9111 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm15, %zmm11
9112 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9113 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm15, %zmm12
9114 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm10[4,5,6,7]
9115 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm19
9116 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
9117 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm22, %zmm10
9118 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
9119 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [12,0,0,3,4,5,6,13]
9120 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm3, %zmm22
9121 ; AVX512DQ-NEXT:    movb $24, %sil
9122 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9123 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm4 {%k3}
9124 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,15,0,0]
9125 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm4, %zmm21
9126 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9127 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm25 {%k1}
9128 ; AVX512DQ-NEXT:    movb $120, %sil
9129 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9130 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9131 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k4}
9132 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9133 ; AVX512DQ-NEXT:    # zmm3 = zmm2[0,1,2,3],mem[4,5,6,7]
9134 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9135 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k1}
9136 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9137 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k4}
9138 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k1}
9139 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9140 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm25 {%k4}
9141 ; AVX512DQ-NEXT:    movb $-61, %sil
9142 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9143 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9144 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k4}
9145 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm4 # 64-byte Folded Reload
9146 ; AVX512DQ-NEXT:    # zmm4 = zmm5[0,1,2,3],mem[4,5,6,7]
9147 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9148 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k4}
9149 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm6[0,1,2,3],zmm30[4,5,6,7]
9150 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9151 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k4}
9152 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm0
9153 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
9154 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9155 ; AVX512DQ-NEXT:    movb $12, %sil
9156 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9157 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k4}
9158 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
9159 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9160 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9161 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9162 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9163 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
9164 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9165 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
9166 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9167 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
9168 ; AVX512DQ-NEXT:    movb $-31, %sil
9169 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9170 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9171 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
9172 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9173 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
9174 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
9176 ; AVX512DQ-NEXT:    movb $112, %sil
9177 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9178 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%rax), %zmm2, %zmm27 {%k3}
9179 ; AVX512DQ-NEXT:    vmovdqa 64(%rdx), %xmm2
9180 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9181 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9182 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm23 {%k4}
9183 ; AVX512DQ-NEXT:    vmovdqa 128(%rdx), %xmm2
9184 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9185 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9186 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm18 {%k4}
9187 ; AVX512DQ-NEXT:    vmovdqa 192(%rdx), %xmm2
9188 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9189 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9190 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm13 {%k4}
9191 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm2
9192 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9193 ; AVX512DQ-NEXT:    movb $6, %sil
9194 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9195 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm28 {%k4}
9196 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9197 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9198 ; AVX512DQ-NEXT:    vinserti64x2 $3, 64(%rax), %zmm2, %zmm23 {%k3}
9199 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9200 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9201 ; AVX512DQ-NEXT:    vinserti64x2 $3, 128(%rax), %zmm2, %zmm18 {%k3}
9202 ; AVX512DQ-NEXT:    vmovdqa64 192(%r9), %zmm2
9203 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm19, %zmm0
9204 ; AVX512DQ-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm13 {%k3}
9205 ; AVX512DQ-NEXT:    movb $56, %sil
9206 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9207 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9208 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k3}
9209 ; AVX512DQ-NEXT:    vpbroadcastq 72(%rcx), %ymm0
9210 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9211 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm26 {%k4}
9212 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9213 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
9214 ; AVX512DQ-NEXT:    vpbroadcastq 136(%rcx), %ymm0
9215 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9216 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
9217 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9218 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k3}
9219 ; AVX512DQ-NEXT:    vpbroadcastq 200(%rcx), %ymm0
9220 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9221 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k4}
9222 ; AVX512DQ-NEXT:    movb $64, %cl
9223 ; AVX512DQ-NEXT:    kmovw %ecx, %k4
9224 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm24 {%k4}
9225 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9226 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm0, %zmm19
9227 ; AVX512DQ-NEXT:    vmovdqa64 192(%rax), %zmm0
9228 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9229 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm19
9230 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
9231 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,11,0,4,5,6,7]
9232 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm10, %zmm5
9233 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm12 {%k1}
9234 ; AVX512DQ-NEXT:    vmovdqa 192(%r8), %ymm6
9235 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
9236 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
9237 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9238 ; AVX512DQ-NEXT:    vpunpckhqdq (%rsp), %ymm6, %ymm6 # 32-byte Folded Reload
9239 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9240 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9241 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9242 ; AVX512DQ-NEXT:    movb $14, %cl
9243 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
9244 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9245 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm10 {%k1}
9246 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9247 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9248 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9249 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9250 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9251 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9252 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k1}
9253 ; AVX512DQ-NEXT:    movb $8, %cl
9254 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
9255 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
9256 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9257 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9258 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9259 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9260 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9261 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm31 {%k1}
9262 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,12,0,3,4,5,6,7]
9263 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm22, %zmm6
9264 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
9265 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm24, %zmm8
9266 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
9267 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm21, %zmm9
9268 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,12,3,4,5,6,7]
9269 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm6, %zmm2
9270 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,13,2,3,4,5,6,7]
9271 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm8, %zmm6
9272 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
9273 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
9274 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9275 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 1472(%rax)
9276 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 1408(%rax)
9277 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
9278 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1280(%rax)
9279 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
9280 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 1152(%rax)
9281 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1088(%rax)
9282 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9283 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1024(%rax)
9284 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 960(%rax)
9285 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 896(%rax)
9286 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 832(%rax)
9287 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 768(%rax)
9288 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 704(%rax)
9289 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 640(%rax)
9290 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9291 ; AVX512DQ-NEXT:    vmovaps %zmm0, 576(%rax)
9292 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 512(%rax)
9293 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 448(%rax)
9294 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 384(%rax)
9295 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 320(%rax)
9296 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 256(%rax)
9297 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 192(%rax)
9298 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9299 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%rax)
9300 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 64(%rax)
9301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, (%rax)
9302 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 1728(%rax)
9303 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 1664(%rax)
9304 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
9305 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 1536(%rax)
9306 ; AVX512DQ-NEXT:    addq $2184, %rsp # imm = 0x888
9307 ; AVX512DQ-NEXT:    vzeroupper
9308 ; AVX512DQ-NEXT:    retq
9310 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf32:
9311 ; AVX512DQ-FCP:       # %bb.0:
9312 ; AVX512DQ-FCP-NEXT:    subq $2088, %rsp # imm = 0x828
9313 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9314 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm8
9315 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm9
9316 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm26
9317 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm24
9318 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
9319 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm11
9320 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
9321 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm28
9322 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
9323 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
9324 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm5
9325 ; AVX512DQ-FCP-NEXT:    movb $96, %r10b
9326 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k1
9327 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
9328 ; AVX512DQ-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9329 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9330 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
9331 ; AVX512DQ-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9332 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
9333 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm12, %zmm1
9334 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
9335 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
9336 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm1
9337 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9338 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [11,3,11,3,11,3,11,3]
9339 ; AVX512DQ-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9340 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
9341 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm0
9342 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [2,10,0,3,2,10,0,3]
9343 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
9344 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
9345 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm18, %zmm1
9346 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9347 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
9348 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm1
9349 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r9), %ymm0
9350 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
9351 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %ymm17
9352 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %ymm16
9353 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r8), %ymm15
9354 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm17[0],ymm1[0],ymm17[2],ymm1[2]
9355 ; AVX512DQ-FCP-NEXT:    movb $28, %r10b
9356 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k2
9357 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
9358 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm2[2,3,2,3],zmm5[2,3,2,3]
9359 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9360 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
9361 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm17
9362 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm17, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9363 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
9364 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9365 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
9366 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
9367 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm2
9368 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,1,12,7,0,1,12,7]
9369 ; AVX512DQ-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
9370 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm2
9371 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9372 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
9373 ; AVX512DQ-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
9374 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm20
9375 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
9376 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9377 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm20
9378 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,13,6,7,0,13,6,7]
9379 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9380 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm20
9381 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9382 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm3
9383 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [6,13,14,7,6,13,14,7]
9384 ; AVX512DQ-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9385 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
9386 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9387 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm0[0],ymm16[2],ymm0[2]
9388 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm0, %ymm5, %ymm16
9389 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm16, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9390 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
9391 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm15
9392 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9393 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
9394 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm4
9395 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm5
9396 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9397 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm18, %zmm5
9398 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
9399 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm7
9400 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm3[2,3,2,3],zmm7[2,3,2,3]
9401 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9402 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm3
9403 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm5
9404 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9405 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
9406 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9407 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
9408 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9409 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm4
9410 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9411 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
9412 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm4
9413 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm4
9414 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9415 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
9416 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm4
9417 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm4
9418 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9419 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9420 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm3
9421 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
9422 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9423 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
9424 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm20
9425 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
9426 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm31, %zmm3
9427 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm29
9428 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm23
9429 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4
9430 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm18, %zmm4
9431 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k1}
9432 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
9433 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm0[2,3,2,3],zmm30[2,3,2,3]
9434 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9435 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
9436 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r9), %zmm3
9437 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
9438 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm10
9439 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9440 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm17
9441 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm17
9442 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9443 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
9444 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm12, %zmm1
9445 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9446 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm13, %zmm1
9447 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9448 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9449 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
9450 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
9451 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm10
9452 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm1
9453 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [3,0,12,4,3,0,12,4]
9454 ; AVX512DQ-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
9455 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
9456 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm4
9457 ; AVX512DQ-FCP-NEXT:    movb $48, %r10b
9458 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k3
9459 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm18
9460 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm7
9461 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm4 {%k3} = zmm18[0],zmm7[0],zmm18[2],zmm7[2],zmm18[4],zmm7[4],zmm18[6],zmm7[6]
9462 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,8,0,1,0,8,0,1]
9463 ; AVX512DQ-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
9464 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
9465 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
9466 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9467 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
9468 ; AVX512DQ-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
9469 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm0
9470 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm8, %zmm15, %zmm0
9471 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9472 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm0
9473 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm16, %zmm0
9474 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9475 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
9476 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm15, %zmm0
9477 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9478 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
9479 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm16, %zmm0
9480 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9481 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
9482 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm15, %zmm0
9483 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9484 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm7, %zmm18, %zmm16
9485 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm18, %zmm7, %zmm15
9486 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm17
9487 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm6
9488 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
9489 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm31, %zmm18
9490 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
9491 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9492 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
9493 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
9494 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9495 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm6
9496 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm19, %zmm21
9497 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm3
9498 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm31
9499 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
9500 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm31
9501 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm13, %zmm11
9502 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm22
9503 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm22
9504 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
9505 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9506 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm8[0],zmm26[0],zmm8[2],zmm26[2],zmm8[4],zmm26[4],zmm8[6],zmm26[6]
9507 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
9508 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm13, %zmm3
9509 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm12
9510 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm0, %zmm12
9511 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm19, %zmm8
9512 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9513 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
9514 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm2
9515 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm25, %zmm26
9516 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm7
9517 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm13, %zmm7
9518 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm0, %zmm14
9519 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm19, %zmm2
9520 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9521 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k3} = zmm9[0],zmm24[0],zmm9[2],zmm24[2],zmm9[4],zmm24[4],zmm9[6],zmm24[6]
9522 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2
9523 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm13, %zmm2
9524 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm5
9525 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm0, %zmm5
9526 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm19, %zmm9
9527 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9528 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm29, %zmm23, %zmm25
9529 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
9530 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm28
9531 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24
9532 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm24
9533 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm29
9534 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm23
9535 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm23
9536 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
9537 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
9538 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm27[0],zmm20[0],zmm27[2],zmm20[2],zmm27[4],zmm20[4],zmm27[6],zmm20[6]
9539 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm13
9540 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm0
9541 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm19, %zmm27
9542 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9
9543 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm9
9544 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9545 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm10
9546 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm17[0,1,2,3],zmm23[4,5,6,7]
9547 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm1
9548 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,11,0,0,4,5,6,7]
9549 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm17
9550 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %zmm4
9551 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [0,1,11,0,4,5,6,7]
9552 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm17, %zmm20
9553 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6 {%k1}
9554 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
9555 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm6, %zmm8
9556 ; AVX512DQ-FCP-NEXT:    movb $24, %sil
9557 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9558 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm21 {%k3}
9559 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,15,0,0]
9560 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm21, %zmm6
9561 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9562 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9563 ; AVX512DQ-FCP-NEXT:    movb $14, %sil
9564 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9565 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm31 {%k4}
9566 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k1}
9567 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9568 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9569 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm26 {%k4}
9570 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9571 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9572 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm25 {%k4}
9573 ; AVX512DQ-FCP-NEXT:    movb $120, %sil
9574 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9575 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9576 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k4}
9577 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm12[0,1,2,3],zmm22[4,5,6,7]
9578 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
9579 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9580 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm7 {%k4}
9581 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm13 {%k1}
9582 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9583 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k4}
9584 ; AVX512DQ-FCP-NEXT:    movb $-61, %sil
9585 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9586 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9587 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k4}
9588 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm5[0,1,2,3],zmm14[4,5,6,7]
9589 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9590 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k4}
9591 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm24[4,5,6,7]
9592 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9593 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k4}
9594 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm2
9595 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9596 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9597 ; AVX512DQ-FCP-NEXT:    movb $12, %sil
9598 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9599 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9600 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm12 {%k4}
9601 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
9602 ; AVX512DQ-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9603 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9604 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9605 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
9606 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9607 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
9608 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9609 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9610 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
9611 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm27 {%k3}
9612 ; AVX512DQ-FCP-NEXT:    movb $-31, %sil
9613 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9614 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
9616 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9617 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
9618 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm29
9619 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm27 {%k3}
9620 ; AVX512DQ-FCP-NEXT:    movb $112, %sil
9621 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9622 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm3, %zmm12 {%k3}
9623 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
9624 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9625 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9626 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9627 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k4}
9628 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
9629 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9630 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9631 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9632 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k4}
9633 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
9634 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9635 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9636 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm16 {%k4}
9637 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
9638 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
9639 ; AVX512DQ-FCP-NEXT:    movb $6, %sil
9640 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9641 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9642 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm5 {%k4}
9643 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9644 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9645 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm3, %zmm14 {%k3}
9646 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm17
9647 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9648 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9649 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm3, %zmm19 {%k3}
9650 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm22
9651 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm1, %zmm2
9652 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm2, %zmm16 {%k3}
9653 ; AVX512DQ-FCP-NEXT:    movb $56, %sil
9654 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9655 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9656 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k3}
9657 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
9658 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm2
9659 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9660 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9661 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
9662 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9663 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
9664 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm19
9665 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm2
9666 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9667 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9668 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
9669 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9670 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
9671 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
9672 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm2
9673 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9674 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm15 {%k4}
9675 ; AVX512DQ-FCP-NEXT:    movb $64, %cl
9676 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k4
9677 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k4}
9678 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9679 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm2, %zmm1
9680 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rax), %zmm2
9681 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9682 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm3, %zmm1
9683 ; AVX512DQ-FCP-NEXT:    movb $8, %al
9684 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k4
9685 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k4}
9686 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15 {%k3}
9687 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm10 {%k1}
9688 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%r8), %ymm1
9689 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
9690 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
9691 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,12,0,3,4,5,6,7]
9692 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm8, %zmm1
9693 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [13,0,2,3,4,5,6,14]
9694 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm23, %zmm3
9695 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,5,15,0]
9696 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm6, %zmm5
9697 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,12,3,4,5,6,7]
9698 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm4
9699 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
9700 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
9701 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
9702 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
9703 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9704 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
9705 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 1408(%rax)
9706 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 1344(%rax)
9707 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
9708 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 1216(%rax)
9709 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 1152(%rax)
9710 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 1088(%rax)
9711 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9712 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1024(%rax)
9713 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 960(%rax)
9714 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 896(%rax)
9715 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
9716 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 768(%rax)
9717 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 704(%rax)
9718 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 640(%rax)
9719 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9720 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
9721 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
9722 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 448(%rax)
9723 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)
9724 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 320(%rax)
9725 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
9726 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 192(%rax)
9727 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9728 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
9729 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)
9730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
9731 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1728(%rax)
9732 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 1664(%rax)
9733 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 1600(%rax)
9734 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 1536(%rax)
9735 ; AVX512DQ-FCP-NEXT:    addq $2088, %rsp # imm = 0x828
9736 ; AVX512DQ-FCP-NEXT:    vzeroupper
9737 ; AVX512DQ-FCP-NEXT:    retq
9739 ; AVX512BW-LABEL: store_i64_stride7_vf32:
9740 ; AVX512BW:       # %bb.0:
9741 ; AVX512BW-NEXT:    subq $2184, %rsp # imm = 0x888
9742 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9743 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm17
9744 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm14
9745 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm16
9746 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm23
9747 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm6
9748 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm7
9749 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm8
9750 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm29
9751 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
9752 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm3
9753 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm1
9754 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm5
9755 ; AVX512BW-NEXT:    movb $96, %r10b
9756 ; AVX512BW-NEXT:    kmovd %r10d, %k1
9757 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
9758 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9759 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9760 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [9,1,9,1,9,1,9,1]
9761 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9762 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10
9763 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm11, %zmm10
9764 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [4,9,0,3,4,9,0,3]
9765 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
9766 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
9767 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm12, %zmm10
9768 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9769 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
9770 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9771 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
9772 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm15, %zmm1
9773 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [2,10,0,3,2,10,0,3]
9774 ; AVX512BW-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
9775 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm4
9776 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm22, %zmm4
9777 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
9778 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm10
9779 ; AVX512BW-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
9780 ; AVX512BW-NEXT:    vmovdqa 64(%r9), %ymm13
9781 ; AVX512BW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9782 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm1
9783 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9784 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %ymm18
9785 ; AVX512BW-NEXT:    vmovdqu64 %ymm18, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9786 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
9787 ; AVX512BW-NEXT:    movb $28, %r10b
9788 ; AVX512BW-NEXT:    kmovd %r10d, %k2
9789 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
9790 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9791 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
9792 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9793 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9794 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm10, %zmm1
9795 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,1,12,7,0,1,12,7]
9796 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
9797 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9798 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9799 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
9800 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
9801 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
9802 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm21
9803 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9804 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm21
9805 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
9806 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9807 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm21
9808 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9809 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
9810 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
9811 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
9812 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm1
9813 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9814 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm0
9815 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm15, %zmm0
9816 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
9817 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm21
9818 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9819 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm22, %zmm1
9820 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9821 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm18[0],ymm13[0],ymm18[2],ymm13[2]
9822 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
9823 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9824 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm0
9825 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm13
9826 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9827 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm11, %zmm1
9828 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9829 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9830 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm12, %zmm1
9831 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9832 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9833 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
9834 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm1
9835 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9836 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
9837 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9838 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
9839 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm1
9840 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9841 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9842 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm19, %zmm0
9843 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
9844 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9845 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm18
9846 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm22
9847 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
9848 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm15, %zmm1
9849 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm0
9850 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm28
9851 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
9852 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm21, %zmm5
9853 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
9854 ; AVX512BW-NEXT:    vmovdqa64 128(%rax), %zmm30
9855 ; AVX512BW-NEXT:    vmovdqa 128(%r9), %ymm13
9856 ; AVX512BW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9857 ; AVX512BW-NEXT:    vmovdqa 128(%r8), %ymm1
9858 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9859 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm13[0],ymm1[2],ymm13[2]
9860 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm30[2,3,2,3]
9861 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9862 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm5
9863 ; AVX512BW-NEXT:    vmovdqa64 128(%r9), %zmm1
9864 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm5, %zmm10
9865 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm4, %zmm10
9866 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9867 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
9868 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm1, %zmm20
9869 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm2, %zmm20
9870 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9871 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
9872 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm11, %zmm1
9873 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9874 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm12, %zmm1
9875 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9876 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9877 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm19, %zmm5
9878 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm3, %zmm30
9879 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [13,5,13,5,13,5,13,5]
9880 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9881 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9882 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm3, %zmm1
9883 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9884 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [6,14,6,14,6,14,6,14]
9885 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9886 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9887 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm12, %zmm1
9888 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9889 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9890 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm19, %zmm1
9891 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9892 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
9893 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
9894 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9895 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm2, %zmm8
9896 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm31
9897 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9898 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm3, %zmm4
9899 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9900 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9901 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm12, %zmm4
9902 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9903 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9904 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm19, %zmm4
9905 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9906 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm29
9907 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9908 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm3, %zmm4
9909 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9910 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9911 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm12, %zmm4
9912 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9913 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9914 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm19, %zmm4
9915 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9916 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm28
9917 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm10
9918 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
9919 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24
9920 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm2, %zmm24
9921 ; AVX512BW-NEXT:    movb $48, %r10b
9922 ; AVX512BW-NEXT:    kmovd %r10d, %k3
9923 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm7
9924 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm2
9925 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm7[0],zmm2[0],zmm7[2],zmm2[2],zmm7[4],zmm2[4],zmm7[6],zmm2[6]
9926 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
9927 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
9928 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm26
9929 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
9930 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
9931 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
9932 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm27
9933 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm13, %zmm27
9934 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm4
9935 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm21
9936 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm11, %zmm21
9937 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm23
9938 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm23
9939 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm8
9940 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm19
9941 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm11, %zmm19
9942 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm20
9943 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm13, %zmm20
9944 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm7, %zmm13
9945 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm2, %zmm11
9946 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm25
9947 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm5
9948 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6
9949 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm7
9950 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm12, %zmm25
9951 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm3, %zmm5
9952 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm6
9953 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm2
9954 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm17[0],zmm16[0],zmm17[2],zmm16[2],zmm17[4],zmm16[4],zmm17[6],zmm16[6]
9955 ; AVX512BW-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9956 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm4
9957 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm16
9958 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm15
9959 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm3, %zmm4
9960 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm12, %zmm16
9961 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm15
9962 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k3} = zmm14[0],zmm8[0],zmm14[2],zmm8[2],zmm14[4],zmm8[4],zmm14[6],zmm8[6]
9963 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm2
9964 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm17
9965 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
9966 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm12, %zmm17
9967 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm14
9968 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8
9969 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm8
9970 ; AVX512BW-NEXT:    vpermi2q %zmm22, %zmm18, %zmm3
9971 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm9
9972 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm9
9973 ; AVX512BW-NEXT:    vpermi2q %zmm22, %zmm18, %zmm12
9974 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k3} = zmm18[0],zmm22[0],zmm18[2],zmm22[2],zmm18[4],zmm22[4],zmm18[6],zmm22[6]
9975 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm1, %zmm18
9976 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm22
9977 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm22
9978 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9979 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
9980 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm25[0,1,2,3],zmm9[4,5,6,7]
9981 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm0
9982 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
9983 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm24, %zmm9
9984 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
9985 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [12,0,0,3,4,5,6,13]
9986 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm25
9987 ; AVX512BW-NEXT:    movb $24, %sil
9988 ; AVX512BW-NEXT:    kmovd %esi, %k3
9989 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm6 {%k3}
9990 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,15,0,0]
9991 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm5
9992 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm6
9993 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm6 = xmm6[0],mem[0]
9994 ; AVX512BW-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
9995 ; AVX512BW-NEXT:    movb $12, %sil
9996 ; AVX512BW-NEXT:    kmovd %esi, %k4
9997 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm27 {%k4}
9998 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [0,8,0,8,0,8,0,8]
9999 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10000 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10001 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm22 # 64-byte Folded Reload
10002 ; AVX512BW-NEXT:    vmovdqa 64(%rdx), %xmm8
10003 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10004 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10005 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm23 {%k4}
10006 ; AVX512BW-NEXT:    vmovdqa 128(%rdx), %xmm8
10007 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10008 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10009 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm20 {%k4}
10010 ; AVX512BW-NEXT:    vmovdqa 192(%rdx), %xmm8
10011 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10012 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10013 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm13 {%k4}
10014 ; AVX512BW-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm8
10015 ; AVX512BW-NEXT:    movb $112, %sil
10016 ; AVX512BW-NEXT:    kmovd %esi, %k4
10017 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm27 {%k4}
10018 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10019 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
10020 ; AVX512BW-NEXT:    vinserti32x4 $3, 64(%rax), %zmm1, %zmm8
10021 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm23 {%k4}
10022 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10023 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
10024 ; AVX512BW-NEXT:    vinserti32x4 $3, 128(%rax), %zmm1, %zmm1
10025 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm20 {%k4}
10026 ; AVX512BW-NEXT:    vmovdqa64 192(%r9), %zmm1
10027 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
10028 ; AVX512BW-NEXT:    vinserti32x4 $3, 192(%rax), %zmm6, %zmm6
10029 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13 {%k4}
10030 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10031 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k1}
10032 ; AVX512BW-NEXT:    movb $120, %sil
10033 ; AVX512BW-NEXT:    kmovd %esi, %k4
10034 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10035 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm24 {%k4}
10036 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm22 # 64-byte Folded Reload
10037 ; AVX512BW-NEXT:    # zmm22 = zmm16[0,1,2,3],mem[4,5,6,7]
10038 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10039 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
10040 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10041 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k4}
10042 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10043 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
10044 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10045 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k4}
10046 ; AVX512BW-NEXT:    movb $-61, %sil
10047 ; AVX512BW-NEXT:    kmovd %esi, %k4
10048 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10049 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k4}
10050 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm2 # 64-byte Folded Reload
10051 ; AVX512BW-NEXT:    # zmm2 = zmm17[0,1,2,3],mem[4,5,6,7]
10052 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10053 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k4}
10054 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 # 64-byte Folded Reload
10055 ; AVX512BW-NEXT:    # zmm3 = zmm12[0,1,2,3],mem[4,5,6,7]
10056 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10057 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k4}
10058 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm6
10059 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10060 ; AVX512BW-NEXT:    movb $6, %sil
10061 ; AVX512BW-NEXT:    kmovd %esi, %k4
10062 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm26 {%k4}
10063 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10064 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
10065 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10066 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
10067 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10068 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
10069 ; AVX512BW-NEXT:    movb $-31, %sil
10070 ; AVX512BW-NEXT:    kmovd %esi, %k3
10071 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10072 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
10073 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10074 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
10075 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k3}
10076 ; AVX512BW-NEXT:    movb $56, %sil
10077 ; AVX512BW-NEXT:    kmovd %esi, %k3
10078 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10079 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm26 {%k3}
10080 ; AVX512BW-NEXT:    vpbroadcastq 72(%rcx), %ymm6
10081 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10082 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm21 {%k4}
10083 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10084 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
10085 ; AVX512BW-NEXT:    vpbroadcastq 136(%rcx), %ymm6
10086 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10087 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k4}
10088 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10089 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
10090 ; AVX512BW-NEXT:    vpbroadcastq 200(%rcx), %ymm6
10091 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10092 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm11 {%k4}
10093 ; AVX512BW-NEXT:    movb $64, %cl
10094 ; AVX512BW-NEXT:    kmovd %ecx, %k4
10095 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k4}
10096 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10097 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm6, %zmm0
10098 ; AVX512BW-NEXT:    vmovdqa64 192(%rax), %zmm6
10099 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10100 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm0
10101 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k3}
10102 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,11,0,4,5,6,7]
10103 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm9, %zmm0
10104 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm10 {%k1}
10105 ; AVX512BW-NEXT:    vmovdqa 192(%r8), %ymm7
10106 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm7[0],mem[0],ymm7[2],mem[2]
10107 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm7[2,3,2,3],zmm6[2,3,2,3]
10108 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10109 ; AVX512BW-NEXT:    vpunpckhqdq (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
10110 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10111 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10112 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10113 ; AVX512BW-NEXT:    movb $14, %cl
10114 ; AVX512BW-NEXT:    kmovd %ecx, %k1
10115 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10116 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm12 {%k1}
10117 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10118 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
10119 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10120 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10121 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10122 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm29 {%k1}
10123 ; AVX512BW-NEXT:    movb $8, %cl
10124 ; AVX512BW-NEXT:    kmovd %ecx, %k2
10125 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k2}
10126 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10127 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
10128 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10129 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10130 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10131 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm28 {%k1}
10132 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
10133 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm25, %zmm7
10134 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
10135 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm8
10136 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
10137 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm5, %zmm9
10138 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
10139 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm1
10140 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,13,2,3,4,5,6,7]
10141 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm8, %zmm5
10142 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [14,1,2,3,4,5,6,15]
10143 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
10144 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10145 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
10146 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
10147 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1280(%rax)
10148 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1216(%rax)
10149 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 1152(%rax)
10150 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10151 ; AVX512BW-NEXT:    vmovaps %zmm3, 1024(%rax)
10152 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 960(%rax)
10153 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 832(%rax)
10154 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 768(%rax)
10155 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 704(%rax)
10156 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10157 ; AVX512BW-NEXT:    vmovaps %zmm2, 576(%rax)
10158 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 512(%rax)
10159 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 384(%rax)
10160 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 320(%rax)
10161 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 256(%rax)
10162 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10163 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rax)
10164 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%rax)
10165 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
10166 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 1088(%rax)
10167 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 896(%rax)
10168 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 640(%rax)
10169 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 448(%rax)
10170 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 192(%rax)
10171 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, (%rax)
10172 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1728(%rax)
10173 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 1664(%rax)
10174 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 1600(%rax)
10175 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 1536(%rax)
10176 ; AVX512BW-NEXT:    addq $2184, %rsp # imm = 0x888
10177 ; AVX512BW-NEXT:    vzeroupper
10178 ; AVX512BW-NEXT:    retq
10180 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf32:
10181 ; AVX512BW-FCP:       # %bb.0:
10182 ; AVX512BW-FCP-NEXT:    subq $2152, %rsp # imm = 0x868
10183 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10184 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm16
10185 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm17
10186 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm29
10187 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm28
10188 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm19
10189 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm23
10190 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
10191 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm30
10192 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
10193 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm7
10194 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
10195 ; AVX512BW-FCP-NEXT:    movb $96, %r10b
10196 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k1
10197 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [15,7,15,7,15,7,15,7]
10198 ; AVX512BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10199 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10200 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
10201 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10202 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10203 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
10204 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [4,9,0,3,4,9,0,3]
10205 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
10206 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm9, %zmm4
10207 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10208 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
10209 ; AVX512BW-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10210 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
10211 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm25, %zmm1
10212 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [2,10,0,3,2,10,0,3]
10213 ; AVX512BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
10214 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
10215 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm2
10216 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10217 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
10218 ; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %ymm1
10219 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm6
10220 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
10221 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm10
10222 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm12
10223 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm11
10224 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]
10225 ; AVX512BW-FCP-NEXT:    movb $28, %r10b
10226 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k2
10227 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
10228 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10229 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
10230 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm10
10231 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
10232 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
10233 ; AVX512BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
10234 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
10235 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm10, %zmm2
10236 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
10237 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10238 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
10239 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10240 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
10241 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10242 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
10243 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
10244 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10245 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm14
10246 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
10247 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
10248 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm7
10249 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm14
10250 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10251 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
10252 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
10253 ; AVX512BW-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10254 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm7
10255 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10256 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm12[0],ymm6[0],ymm12[2],ymm6[2]
10257 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm6, %ymm5, %ymm12
10258 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10259 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
10260 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm11
10261 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10262 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm4
10263 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm25, %zmm4
10264 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm6
10265 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm5
10266 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10267 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm15, %zmm6
10268 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
10269 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm11
10270 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 {%k2} = zmm0[2,3,2,3],zmm11[2,3,2,3]
10271 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10272 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm0
10273 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
10274 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10275 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10276 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10277 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm8, %zmm4
10278 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10279 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm4
10280 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10281 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10282 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm4
10283 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm4
10284 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10285 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
10286 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm4
10287 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm2, %zmm4
10288 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10289 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10290 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm0
10291 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
10292 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10293 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
10294 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm18
10295 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
10296 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm25, %zmm0
10297 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm31
10298 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm15
10299 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm4
10300 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm4
10301 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
10302 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm5
10303 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm7[2,3,2,3],zmm5[2,3,2,3]
10304 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10305 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
10306 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm4
10307 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm0, %zmm10
10308 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm10
10309 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10310 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm4, %zmm13
10311 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
10312 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10313 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
10314 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm1
10315 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10316 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm9, %zmm1
10317 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10318 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10319 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm0
10320 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10321 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10322 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm7
10323 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
10324 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [3,0,12,4,3,0,12,4]
10325 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10326 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
10327 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm24
10328 ; AVX512BW-FCP-NEXT:    movb $48, %r10b
10329 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k3
10330 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm12
10331 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm3
10332 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm12[0],zmm3[0],zmm12[2],zmm3[2],zmm12[4],zmm3[4],zmm12[6],zmm3[6]
10333 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,8,0,1,0,8,0,1]
10334 ; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
10335 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
10336 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm14, %zmm1
10337 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10338 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
10339 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm14, %zmm1
10340 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10341 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1
10342 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm14, %zmm1
10343 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10344 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm12, %zmm14
10345 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
10346 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
10347 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
10348 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
10349 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10350 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
10351 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
10352 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm20
10353 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm27, %zmm11, %zmm20
10354 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm11
10355 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm8
10356 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
10357 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9
10358 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm25, %zmm12
10359 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
10360 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10361 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm8
10362 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
10363 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10364 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm10
10365 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm9
10366 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
10367 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
10368 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm25
10369 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm1, %zmm23
10370 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
10371 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm3
10372 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10373 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm21, %zmm2
10374 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10375 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm16[0],zmm29[0],zmm16[2],zmm29[2],zmm16[4],zmm29[4],zmm16[6],zmm29[6]
10376 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6
10377 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm6
10378 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
10379 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm22
10380 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm21, %zmm16
10381 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10382 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm16
10383 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
10384 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm13, %zmm16
10385 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm19
10386 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29
10387 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm4, %zmm29
10388 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm21, %zmm2
10389 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10390 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm30
10391 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k3} = zmm17[0],zmm28[0],zmm17[2],zmm28[2],zmm17[4],zmm28[4],zmm17[6],zmm28[6]
10392 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
10393 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
10394 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm17
10395 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm21, %zmm30
10396 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
10397 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm31, %zmm15, %zmm13
10398 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm31
10399 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm28
10400 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm28
10401 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm21, %zmm2
10402 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10403 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm15
10404 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm15
10405 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
10406 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm5
10407 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k3} = zmm27[0],zmm18[0],zmm27[2],zmm18[2],zmm27[4],zmm18[4],zmm27[6],zmm18[6]
10408 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm1
10409 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm4
10410 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm27
10411 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
10412 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm21, %zmm18
10413 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10414 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
10415 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm8[0,1,2,3],zmm15[4,5,6,7]
10416 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10417 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
10418 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,11,0,0,4,5,6,7]
10419 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm24, %zmm0
10420 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm8
10421 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,1,11,0,4,5,6,7]
10422 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm0, %zmm15
10423 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k1}
10424 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [12,0,0,3,4,5,6,13]
10425 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm0
10426 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10427 ; AVX512BW-FCP-NEXT:    movb $24, %sil
10428 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10429 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k3}
10430 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [0,1,2,3,4,15,0,0]
10431 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm9, %zmm24
10432 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm0
10433 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
10434 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10435 ; AVX512BW-FCP-NEXT:    movb $12, %sil
10436 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10437 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10438 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k4}
10439 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
10440 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10441 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10442 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
10443 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
10444 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10445 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10446 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10447 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k4}
10448 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm5
10449 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10450 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10451 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10452 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm18 {%k4}
10453 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm5
10454 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10455 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10456 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm14 {%k4}
10457 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm9, %zmm5
10458 ; AVX512BW-FCP-NEXT:    movb $112, %sil
10459 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10460 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k4}
10461 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10462 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10463 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
10464 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm5, %zmm5
10465 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
10466 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10467 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10468 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
10469 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm5, %zmm5
10470 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k4}
10471 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
10472 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm2, %zmm0
10473 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
10474 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k4}
10475 ; AVX512BW-FCP-NEXT:    vmovdqu (%rsp), %ymm0 # 32-byte Reload
10476 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10477 ; AVX512BW-FCP-NEXT:    movb $14, %sil
10478 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10479 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k4}
10480 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm6 {%k1}
10481 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10482 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10483 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
10484 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10485 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10486 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm13 {%k4}
10487 ; AVX512BW-FCP-NEXT:    movb $120, %sil
10488 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10489 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10490 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k4}
10491 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm22, %zmm5 # 64-byte Folded Reload
10492 ; AVX512BW-FCP-NEXT:    # zmm5 = zmm22[0,1,2,3],mem[4,5,6,7]
10493 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3 {%k1}
10494 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10495 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
10496 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm1 {%k1}
10497 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10498 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k4}
10499 ; AVX512BW-FCP-NEXT:    movb $-61, %sil
10500 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10501 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10502 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k4}
10503 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm29[4,5,6,7]
10504 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10505 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k4}
10506 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm4[0,1,2,3],zmm28[4,5,6,7]
10507 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10508 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
10509 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
10510 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10511 ; AVX512BW-FCP-NEXT:    movb $6, %sil
10512 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10513 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10514 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
10515 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10516 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10517 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
10518 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10519 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
10520 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10521 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
10522 ; AVX512BW-FCP-NEXT:    movb $-31, %sil
10523 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10524 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10525 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
10526 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19
10527 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10528 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
10529 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10530 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
10531 ; AVX512BW-FCP-NEXT:    movb $56, %sil
10532 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10533 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10534 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
10535 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm17
10536 ; AVX512BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm3
10537 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10538 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm26 {%k4}
10539 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10540 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm26 {%k3}
10541 ; AVX512BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm3
10542 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10543 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k4}
10544 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10545 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20 {%k3}
10546 ; AVX512BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm3
10547 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10548 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm11 {%k4}
10549 ; AVX512BW-FCP-NEXT:    movb $64, %cl
10550 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k4
10551 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10552 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k4}
10553 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10554 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
10555 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm3
10556 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10557 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm2
10558 ; AVX512BW-FCP-NEXT:    movb $8, %al
10559 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k4
10560 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k4}
10561 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k3}
10562 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
10563 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm2
10564 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
10565 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
10566 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,12,0,3,4,5,6,7]
10567 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10568 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm4, %zmm2
10569 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,3,4,5,6,14]
10570 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm6, %zmm4
10571 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,5,15,0]
10572 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm24, %zmm6
10573 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,12,3,4,5,6,7]
10574 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
10575 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,13,2,3,4,5,6,7]
10576 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm2
10577 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [14,1,2,3,4,5,6,15]
10578 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm6, %zmm4
10579 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10580 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 1472(%rax)
10581 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
10582 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
10583 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
10584 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 1152(%rax)
10585 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
10586 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10587 ; AVX512BW-FCP-NEXT:    vmovaps %zmm1, 1024(%rax)
10588 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 960(%rax)
10589 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 832(%rax)
10590 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 768(%rax)
10591 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 704(%rax)
10592 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
10593 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10594 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
10595 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 512(%rax)
10596 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 384(%rax)
10597 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 320(%rax)
10598 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
10599 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 192(%rax)
10600 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10601 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
10602 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 64(%rax)
10603 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 1344(%rax)
10604 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 896(%rax)
10605 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10606 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
10607 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10608 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
10609 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 1728(%rax)
10610 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 1664(%rax)
10611 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 1600(%rax)
10612 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 1536(%rax)
10613 ; AVX512BW-FCP-NEXT:    addq $2152, %rsp # imm = 0x868
10614 ; AVX512BW-FCP-NEXT:    vzeroupper
10615 ; AVX512BW-FCP-NEXT:    retq
10617 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf32:
10618 ; AVX512DQ-BW:       # %bb.0:
10619 ; AVX512DQ-BW-NEXT:    subq $2184, %rsp # imm = 0x888
10620 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10621 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm16
10622 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm9
10623 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm23
10624 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm10
10625 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm20
10626 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm18
10627 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm6
10628 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm7
10629 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm0
10630 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm3
10631 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm2
10632 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm4
10633 ; AVX512DQ-BW-NEXT:    movb $96, %r10b
10634 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k1
10635 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [15,7,15,7,15,7,15,7]
10636 ; AVX512DQ-BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10637 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10638 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
10639 ; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10640 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10641 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm12, %zmm5
10642 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
10643 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10644 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm13, %zmm5
10645 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10646 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
10647 ; AVX512DQ-BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10648 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
10649 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm1
10650 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [2,10,0,3,2,10,0,3]
10651 ; AVX512DQ-BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
10652 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm5
10653 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
10654 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
10655 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm8
10656 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, (%rsp) # 32-byte Spill
10657 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r9), %ymm14
10658 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10659 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm1
10660 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10661 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r8), %ymm11
10662 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10663 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
10664 ; AVX512DQ-BW-NEXT:    movb $28, %r10b
10665 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k2
10666 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
10667 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10668 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,12,0,5,4,12,0,5]
10669 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
10670 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10671 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
10672 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
10673 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10674 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
10675 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10676 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm5
10677 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [5,0,14,6,5,0,14,6]
10678 ; AVX512DQ-BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
10679 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm19
10680 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10681 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm21, %zmm19
10682 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
10683 ; AVX512DQ-BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
10684 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm19
10685 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10686 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm17, %zmm0
10687 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
10688 ; AVX512DQ-BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10689 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10690 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10691 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm0
10692 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm25, %zmm0
10693 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm5
10694 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm15, %zmm5
10695 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10696 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
10697 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
10698 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
10699 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10700 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm0
10701 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm11
10702 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10703 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
10704 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10705 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10706 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
10707 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10708 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm5
10709 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4
10710 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm8, %zmm4
10711 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm4
10712 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10713 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm4
10714 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10715 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm21, %zmm4
10716 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm4
10717 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10718 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10719 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
10720 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10721 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10722 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm11
10723 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm19
10724 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm5
10725 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm25, %zmm5
10726 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm4
10727 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm31
10728 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
10729 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm15, %zmm0
10730 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
10731 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rax), %zmm15
10732 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r9), %ymm14
10733 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10734 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r8), %ymm5
10735 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10736 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm5[0],ymm14[0],ymm5[2],ymm14[2]
10737 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm5[2,3,2,3],zmm15[2,3,2,3]
10738 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10739 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm5
10740 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r9), %zmm0
10741 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm8
10742 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm1, %zmm8
10743 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10744 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm0, %zmm21
10745 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm2, %zmm21
10746 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10747 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
10748 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm1
10749 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10750 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm13, %zmm1
10751 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10752 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10753 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm5
10754 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm3, %zmm15
10755 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10756 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
10757 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10758 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10759 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm0
10760 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm2
10761 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10762 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [6,14,6,14,6,14,6,14]
10763 ; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10764 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10765 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
10766 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10767 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10768 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
10769 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10770 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm15
10771 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [3,0,12,4,3,0,12,4]
10772 ; AVX512DQ-BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10773 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm3, %zmm0
10774 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2
10775 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10776 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm0
10777 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10778 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10779 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm0
10780 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10781 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10782 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
10783 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10784 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm3, %zmm7
10785 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm5
10786 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm29
10787 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm1, %zmm29
10788 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm30
10789 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm6, %zmm30
10790 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
10791 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm17, %zmm0
10792 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10793 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm3, %zmm31
10794 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm12
10795 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm21
10796 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm22
10797 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm3, %zmm22
10798 ; AVX512DQ-BW-NEXT:    movb $48, %r10b
10799 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k3
10800 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm8
10801 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm7
10802 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k3} = zmm8[0],zmm7[0],zmm8[2],zmm7[2],zmm8[4],zmm7[4],zmm8[6],zmm7[6]
10803 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
10804 ; AVX512DQ-BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
10805 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
10806 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm28
10807 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm14, %zmm28
10808 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
10809 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10810 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm27
10811 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm13, %zmm27
10812 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm26
10813 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm14, %zmm26
10814 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm23
10815 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm13, %zmm23
10816 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm20
10817 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm14, %zmm20
10818 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm18
10819 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm13, %zmm18
10820 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm8, %zmm13
10821 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm8, %zmm7, %zmm14
10822 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm24
10823 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
10824 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm4
10825 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm25, %zmm8
10826 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm24
10827 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm3
10828 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm4
10829 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm16[0],zmm0[0],zmm16[2],zmm0[2],zmm16[4],zmm0[4],zmm16[6],zmm0[6]
10830 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10831 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm25
10832 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm2
10833 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm17
10834 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm25
10835 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
10836 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm15, %zmm17
10837 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm5 {%k3} = zmm9[0],zmm10[0],zmm9[2],zmm10[2],zmm9[4],zmm10[4],zmm9[6],zmm10[6]
10838 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10839 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm0
10840 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm5
10841 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm16
10842 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm1, %zmm0
10843 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm6, %zmm5
10844 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm15, %zmm16
10845 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm9
10846 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm9
10847 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm11, %zmm1
10848 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm10
10849 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm6, %zmm10
10850 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm11, %zmm6
10851 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm11[0],zmm19[0],zmm11[2],zmm19[2],zmm11[4],zmm19[4],zmm11[6],zmm19[6]
10852 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm7
10853 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm15, %zmm7
10854 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm11
10855 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm15, %zmm11
10856 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10857 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm15, %zmm12
10858 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm10[4,5,6,7]
10859 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm19
10860 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
10861 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm22, %zmm10
10862 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
10863 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [12,0,0,3,4,5,6,13]
10864 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm3, %zmm22
10865 ; AVX512DQ-BW-NEXT:    movb $24, %sil
10866 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10867 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm4 {%k3}
10868 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,15,0,0]
10869 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm4, %zmm21
10870 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10871 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm25 {%k1}
10872 ; AVX512DQ-BW-NEXT:    movb $120, %sil
10873 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10874 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10875 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k4}
10876 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
10877 ; AVX512DQ-BW-NEXT:    # zmm3 = zmm2[0,1,2,3],mem[4,5,6,7]
10878 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10879 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k1}
10880 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10881 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k4}
10882 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k1}
10883 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10884 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm25 {%k4}
10885 ; AVX512DQ-BW-NEXT:    movb $-61, %sil
10886 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10887 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10888 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k4}
10889 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm4 # 64-byte Folded Reload
10890 ; AVX512DQ-BW-NEXT:    # zmm4 = zmm5[0,1,2,3],mem[4,5,6,7]
10891 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10892 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k4}
10893 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm6[0,1,2,3],zmm30[4,5,6,7]
10894 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10895 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k4}
10896 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm0
10897 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
10898 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10899 ; AVX512DQ-BW-NEXT:    movb $12, %sil
10900 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10901 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k4}
10902 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
10903 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10904 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10905 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10906 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10907 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
10908 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10909 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
10910 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10911 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
10912 ; AVX512DQ-BW-NEXT:    movb $-31, %sil
10913 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10914 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10915 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
10916 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10917 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
10918 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10919 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
10920 ; AVX512DQ-BW-NEXT:    movb $112, %sil
10921 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10922 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%rax), %zmm2, %zmm27 {%k3}
10923 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%rdx), %xmm2
10924 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10925 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10926 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm23 {%k4}
10927 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%rdx), %xmm2
10928 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10929 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10930 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm18 {%k4}
10931 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%rdx), %xmm2
10932 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10933 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10934 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm13 {%k4}
10935 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm2
10936 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
10937 ; AVX512DQ-BW-NEXT:    movb $6, %sil
10938 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10939 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm28 {%k4}
10940 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10941 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10942 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 64(%rax), %zmm2, %zmm23 {%k3}
10943 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10944 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10945 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 128(%rax), %zmm2, %zmm18 {%k3}
10946 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r9), %zmm2
10947 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm19, %zmm0
10948 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm13 {%k3}
10949 ; AVX512DQ-BW-NEXT:    movb $56, %sil
10950 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10951 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10952 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k3}
10953 ; AVX512DQ-BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
10954 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10955 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm26 {%k4}
10956 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10957 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
10958 ; AVX512DQ-BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
10959 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10960 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
10961 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10962 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k3}
10963 ; AVX512DQ-BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
10964 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10965 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k4}
10966 ; AVX512DQ-BW-NEXT:    movb $64, %cl
10967 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k4
10968 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm24 {%k4}
10969 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10970 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm19
10971 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rax), %zmm0
10972 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10973 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm19
10974 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
10975 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,11,0,4,5,6,7]
10976 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm10, %zmm5
10977 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm12 {%k1}
10978 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r8), %ymm6
10979 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
10980 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
10981 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
10982 ; AVX512DQ-BW-NEXT:    vpunpckhqdq (%rsp), %ymm6, %ymm6 # 32-byte Folded Reload
10983 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
10984 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
10985 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
10986 ; AVX512DQ-BW-NEXT:    movb $14, %cl
10987 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
10988 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10989 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm10 {%k1}
10990 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
10991 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
10992 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
10993 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
10994 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
10995 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
10996 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k1}
10997 ; AVX512DQ-BW-NEXT:    movb $8, %cl
10998 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
10999 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
11000 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11001 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
11002 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
11003 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
11004 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
11005 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm31 {%k1}
11006 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,12,0,3,4,5,6,7]
11007 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm22, %zmm6
11008 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
11009 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm24, %zmm8
11010 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
11011 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm21, %zmm9
11012 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,12,3,4,5,6,7]
11013 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm2
11014 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,13,2,3,4,5,6,7]
11015 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm6
11016 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
11017 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
11018 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11019 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 1472(%rax)
11020 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 1408(%rax)
11021 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
11022 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 1280(%rax)
11023 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
11024 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 1152(%rax)
11025 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 1088(%rax)
11026 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11027 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1024(%rax)
11028 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 960(%rax)
11029 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 896(%rax)
11030 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 832(%rax)
11031 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 768(%rax)
11032 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 704(%rax)
11033 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 640(%rax)
11034 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11035 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 576(%rax)
11036 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 512(%rax)
11037 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 448(%rax)
11038 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 384(%rax)
11039 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 320(%rax)
11040 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 256(%rax)
11041 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
11042 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11043 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%rax)
11044 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 64(%rax)
11045 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, (%rax)
11046 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 1728(%rax)
11047 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 1664(%rax)
11048 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
11049 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 1536(%rax)
11050 ; AVX512DQ-BW-NEXT:    addq $2184, %rsp # imm = 0x888
11051 ; AVX512DQ-BW-NEXT:    vzeroupper
11052 ; AVX512DQ-BW-NEXT:    retq
11054 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf32:
11055 ; AVX512DQ-BW-FCP:       # %bb.0:
11056 ; AVX512DQ-BW-FCP-NEXT:    subq $2088, %rsp # imm = 0x828
11057 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11058 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm8
11059 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm9
11060 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm26
11061 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm24
11062 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
11063 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm11
11064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
11065 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm28
11066 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
11067 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
11068 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm5
11069 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %r10b
11070 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k1
11071 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
11072 ; AVX512DQ-BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11073 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11074 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [9,1,9,1,9,1,9,1]
11075 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
11077 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm12, %zmm1
11078 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [4,9,0,3,4,9,0,3]
11079 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
11080 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm13, %zmm1
11081 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11082 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [11,3,11,3,11,3,11,3]
11083 ; AVX512DQ-BW-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
11085 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm0
11086 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [2,10,0,3,2,10,0,3]
11087 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
11088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
11089 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm18, %zmm1
11090 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
11091 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
11092 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %ymm1
11093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm0
11094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
11095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %ymm17
11096 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %ymm16
11097 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm15
11098 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm17[0],ymm1[0],ymm17[2],ymm1[2]
11099 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %r10b
11100 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k2
11101 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
11102 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm2[2,3,2,3],zmm5[2,3,2,3]
11103 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11104 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
11105 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm17
11106 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm17, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11107 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
11108 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
11109 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
11110 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
11111 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm2
11112 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,1,12,7,0,1,12,7]
11113 ; AVX512DQ-BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
11114 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm2
11115 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11116 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
11117 ; AVX512DQ-BW-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
11118 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm20
11119 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
11120 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11121 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm20
11122 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,13,6,7,0,13,6,7]
11123 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
11124 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm20
11125 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11126 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm3
11127 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [6,13,14,7,6,13,14,7]
11128 ; AVX512DQ-BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
11129 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
11130 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11131 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm0[0],ymm16[2],ymm0[2]
11132 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm0, %ymm5, %ymm16
11133 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm16, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11134 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
11135 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm15
11136 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11137 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11138 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm4
11139 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm5
11140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11141 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm18, %zmm5
11142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
11143 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm7
11144 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm3[2,3,2,3],zmm7[2,3,2,3]
11145 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11146 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm3
11147 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm5
11148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11149 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
11150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11151 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
11152 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11153 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm4
11154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
11156 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm4
11157 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm4
11158 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11159 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
11160 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm4
11161 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm4
11162 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11163 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11164 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm3
11165 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
11166 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11167 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
11168 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm20
11169 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
11170 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm31, %zmm3
11171 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm29
11172 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm23
11173 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4
11174 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm18, %zmm4
11175 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k1}
11176 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
11177 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm0[2,3,2,3],zmm30[2,3,2,3]
11178 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11179 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
11180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm3
11181 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
11182 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm10
11183 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11184 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm17
11185 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm17
11186 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11187 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11188 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm12, %zmm1
11189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11190 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm13, %zmm1
11191 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11192 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11193 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
11194 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
11195 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm10
11196 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm1
11197 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [3,0,12,4,3,0,12,4]
11198 ; AVX512DQ-BW-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
11199 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
11200 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm4
11201 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %r10b
11202 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k3
11203 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm18
11204 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm7
11205 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm4 {%k3} = zmm18[0],zmm7[0],zmm18[2],zmm7[2],zmm18[4],zmm7[4],zmm18[6],zmm7[6]
11206 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,8,0,1,0,8,0,1]
11207 ; AVX512DQ-BW-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
11208 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
11209 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
11210 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11211 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
11212 ; AVX512DQ-BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
11213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm0
11214 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm8, %zmm15, %zmm0
11215 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11216 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm0
11217 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm16, %zmm0
11218 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11219 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
11220 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm15, %zmm0
11221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11222 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
11223 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm16, %zmm0
11224 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
11226 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm15, %zmm0
11227 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11228 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm7, %zmm18, %zmm16
11229 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm18, %zmm7, %zmm15
11230 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm17
11231 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm6
11232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
11233 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm31, %zmm18
11234 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
11235 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11236 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
11237 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
11238 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11239 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm6
11240 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm19, %zmm21
11241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm3
11242 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm31
11243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
11244 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm31
11245 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm13, %zmm11
11246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm22
11247 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm22
11248 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
11249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11250 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm8[0],zmm26[0],zmm8[2],zmm26[2],zmm8[4],zmm26[4],zmm8[6],zmm26[6]
11251 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11252 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm13, %zmm3
11253 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm12
11254 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm0, %zmm12
11255 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm19, %zmm8
11256 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11257 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
11258 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm2
11259 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm25, %zmm26
11260 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm7
11261 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm13, %zmm7
11262 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm0, %zmm14
11263 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm19, %zmm2
11264 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11265 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k3} = zmm9[0],zmm24[0],zmm9[2],zmm24[2],zmm9[4],zmm24[4],zmm9[6],zmm24[6]
11266 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2
11267 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm13, %zmm2
11268 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm5
11269 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm0, %zmm5
11270 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm19, %zmm9
11271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11272 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm29, %zmm23, %zmm25
11273 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
11274 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm28
11275 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24
11276 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm24
11277 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm29
11278 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm23
11279 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm23
11280 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
11281 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
11282 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm27[0],zmm20[0],zmm27[2],zmm20[2],zmm27[4],zmm20[4],zmm27[6],zmm20[6]
11283 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm13
11284 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm0
11285 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm19, %zmm27
11286 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9
11287 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm9
11288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11289 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm10
11290 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm17[0,1,2,3],zmm23[4,5,6,7]
11291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm1
11292 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,11,0,0,4,5,6,7]
11293 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm17
11294 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm4
11295 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [0,1,11,0,4,5,6,7]
11296 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm17, %zmm20
11297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6 {%k1}
11298 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
11299 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm6, %zmm8
11300 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %sil
11301 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm21 {%k3}
11303 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,15,0,0]
11304 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm21, %zmm6
11305 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11306 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11307 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %sil
11308 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11309 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm31 {%k4}
11310 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k1}
11311 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11312 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11313 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm26 {%k4}
11314 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11315 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11316 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm25 {%k4}
11317 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %sil
11318 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11319 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11320 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k4}
11321 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm12[0,1,2,3],zmm22[4,5,6,7]
11322 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
11323 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm7 {%k4}
11325 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm13 {%k1}
11326 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
11327 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k4}
11328 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %sil
11329 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11330 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11331 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k4}
11332 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm5[0,1,2,3],zmm14[4,5,6,7]
11333 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11334 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k4}
11335 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm24[4,5,6,7]
11336 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11337 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k4}
11338 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm2
11339 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
11340 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
11341 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %sil
11342 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11343 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
11344 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm12 {%k4}
11345 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
11346 ; AVX512DQ-BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11348 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11350 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11351 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
11352 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
11355 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm27 {%k3}
11356 ; AVX512DQ-BW-FCP-NEXT:    movb $-31, %sil
11357 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11358 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
11360 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11361 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
11362 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm29
11363 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm27 {%k3}
11364 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %sil
11365 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11366 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm3, %zmm12 {%k3}
11367 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
11368 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11369 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11370 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11371 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k4}
11372 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
11373 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11374 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11376 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k4}
11377 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
11378 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11379 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11380 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm16 {%k4}
11381 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
11382 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
11383 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %sil
11384 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11385 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11386 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm5 {%k4}
11387 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11388 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11389 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm3, %zmm14 {%k3}
11390 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm17
11391 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11392 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11393 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm3, %zmm19 {%k3}
11394 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm22
11395 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm1, %zmm2
11396 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm2, %zmm16 {%k3}
11397 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %sil
11398 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11400 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k3}
11401 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
11402 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm2
11403 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11404 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11405 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
11406 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm19
11409 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm2
11410 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11412 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
11413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11414 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
11416 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm2
11417 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11418 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm15 {%k4}
11419 ; AVX512DQ-BW-FCP-NEXT:    movb $64, %cl
11420 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k4
11421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k4}
11422 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11423 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm2, %zmm1
11424 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm2
11425 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11426 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm3, %zmm1
11427 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
11428 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k4
11429 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k4}
11430 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15 {%k3}
11431 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm10 {%k1}
11432 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm1
11433 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
11434 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
11435 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,12,0,3,4,5,6,7]
11436 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm8, %zmm1
11437 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [13,0,2,3,4,5,6,14]
11438 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm23, %zmm3
11439 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,5,15,0]
11440 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm6, %zmm5
11441 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,12,3,4,5,6,7]
11442 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm4
11443 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
11444 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
11445 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
11446 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
11447 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11448 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
11449 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 1408(%rax)
11450 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 1344(%rax)
11451 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
11452 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 1216(%rax)
11453 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 1152(%rax)
11454 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 1088(%rax)
11455 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11456 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1024(%rax)
11457 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 960(%rax)
11458 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 896(%rax)
11459 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
11460 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 768(%rax)
11461 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 704(%rax)
11462 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 640(%rax)
11463 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11464 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
11465 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
11466 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 448(%rax)
11467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)
11468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 320(%rax)
11469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
11470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 192(%rax)
11471 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11472 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
11473 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)
11474 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
11475 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1728(%rax)
11476 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 1664(%rax)
11477 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 1600(%rax)
11478 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 1536(%rax)
11479 ; AVX512DQ-BW-FCP-NEXT:    addq $2088, %rsp # imm = 0x828
11480 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
11481 ; AVX512DQ-BW-FCP-NEXT:    retq
11482   %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 64
11483   %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 64
11484   %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 64
11485   %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 64
11486   %in.vec4 = load <32 x i64>, ptr %in.vecptr4, align 64
11487   %in.vec5 = load <32 x i64>, ptr %in.vecptr5, align 64
11488   %in.vec6 = load <32 x i64>, ptr %in.vecptr6, align 64
11489   %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>
11490   %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>
11491   %3 = shufflevector <32 x i64> %in.vec4, <32 x i64> %in.vec5, <64 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63>
11492   %4 = 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>
11493   %5 = shufflevector <32 x i64> %in.vec6, <32 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 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>
11494   %6 = shufflevector <64 x i64> %3, <64 x i64> %5, <96 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95>
11495   %7 = shufflevector <96 x i64> %6, <96 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 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
11496   %8 = shufflevector <128 x i64> %4, <128 x i64> %7, <224 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>
11497   %interleaved.vec = shufflevector <224 x i64> %8, <224 x i64> poison, <224 x i32> <i32 0, i32 32, i32 64, i32 96, i32 128, i32 160, i32 192, i32 1, i32 33, i32 65, i32 97, i32 129, i32 161, i32 193, i32 2, i32 34, i32 66, i32 98, i32 130, i32 162, i32 194, i32 3, i32 35, i32 67, i32 99, i32 131, i32 163, i32 195, i32 4, i32 36, i32 68, i32 100, i32 132, i32 164, i32 196, i32 5, i32 37, i32 69, i32 101, i32 133, i32 165, i32 197, i32 6, i32 38, i32 70, i32 102, i32 134, i32 166, i32 198, i32 7, i32 39, i32 71, i32 103, i32 135, i32 167, i32 199, i32 8, i32 40, i32 72, i32 104, i32 136, i32 168, i32 200, i32 9, i32 41, i32 73, i32 105, i32 137, i32 169, i32 201, i32 10, i32 42, i32 74, i32 106, i32 138, i32 170, i32 202, i32 11, i32 43, i32 75, i32 107, i32 139, i32 171, i32 203, i32 12, i32 44, i32 76, i32 108, i32 140, i32 172, i32 204, i32 13, i32 45, i32 77, i32 109, i32 141, i32 173, i32 205, i32 14, i32 46, i32 78, i32 110, i32 142, i32 174, i32 206, i32 15, i32 47, i32 79, i32 111, i32 143, i32 175, i32 207, i32 16, i32 48, i32 80, i32 112, i32 144, i32 176, i32 208, i32 17, i32 49, i32 81, i32 113, i32 145, i32 177, i32 209, i32 18, i32 50, i32 82, i32 114, i32 146, i32 178, i32 210, i32 19, i32 51, i32 83, i32 115, i32 147, i32 179, i32 211, i32 20, i32 52, i32 84, i32 116, i32 148, i32 180, i32 212, i32 21, i32 53, i32 85, i32 117, i32 149, i32 181, i32 213, i32 22, i32 54, i32 86, i32 118, i32 150, i32 182, i32 214, i32 23, i32 55, i32 87, i32 119, i32 151, i32 183, i32 215, i32 24, i32 56, i32 88, i32 120, i32 152, i32 184, i32 216, i32 25, i32 57, i32 89, i32 121, i32 153, i32 185, i32 217, i32 26, i32 58, i32 90, i32 122, i32 154, i32 186, i32 218, i32 27, i32 59, i32 91, i32 123, i32 155, i32 187, i32 219, i32 28, i32 60, i32 92, i32 124, i32 156, i32 188, i32 220, i32 29, i32 61, i32 93, i32 125, i32 157, i32 189, i32 221, i32 30, i32 62, i32 94, i32 126, i32 158, i32 190, i32 222, i32 31, i32 63, i32 95, i32 127, i32 159, i32 191, i32 223>
11498   store <224 x i64> %interleaved.vec, ptr %out.vec, align 64
11499   ret void
11502 define void @store_i64_stride7_vf64(ptr %in.vecptr0, ptr %in.vecptr1, ptr %in.vecptr2, ptr %in.vecptr3, ptr %in.vecptr4, ptr %in.vecptr5, ptr %in.vecptr6, ptr %out.vec) nounwind {
11503 ; SSE-LABEL: store_i64_stride7_vf64:
11504 ; SSE:       # %bb.0:
11505 ; SSE-NEXT:    subq $3224, %rsp # imm = 0xC98
11506 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11507 ; SSE-NEXT:    movapd (%rdi), %xmm2
11508 ; SSE-NEXT:    movapd 16(%rdi), %xmm3
11509 ; SSE-NEXT:    movapd 32(%rdi), %xmm4
11510 ; SSE-NEXT:    movapd (%rsi), %xmm5
11511 ; SSE-NEXT:    movapd 16(%rsi), %xmm6
11512 ; SSE-NEXT:    movapd (%rdx), %xmm7
11513 ; SSE-NEXT:    movapd 16(%rdx), %xmm8
11514 ; SSE-NEXT:    movapd (%rcx), %xmm9
11515 ; SSE-NEXT:    movapd 16(%rcx), %xmm10
11516 ; SSE-NEXT:    movapd 16(%r8), %xmm12
11517 ; SSE-NEXT:    movapd (%r8), %xmm11
11518 ; SSE-NEXT:    movapd 16(%r9), %xmm14
11519 ; SSE-NEXT:    movapd (%r9), %xmm13
11520 ; SSE-NEXT:    movapd 16(%rax), %xmm0
11521 ; SSE-NEXT:    movapd (%rax), %xmm1
11522 ; SSE-NEXT:    movapd %xmm2, %xmm15
11523 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm5[0]
11524 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11525 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
11526 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11527 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
11528 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11529 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm9[0]
11530 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11531 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm11[1]
11532 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11533 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm13[0]
11534 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11535 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
11536 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11537 ; SSE-NEXT:    movapd %xmm3, %xmm1
11538 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm6[0]
11539 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11540 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
11541 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11542 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
11543 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11544 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm8 = xmm8[0],xmm10[0]
11545 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11546 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]
11547 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11548 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm14[0]
11549 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11550 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
11551 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11552 ; SSE-NEXT:    movapd 32(%rsi), %xmm1
11553 ; SSE-NEXT:    movapd %xmm4, %xmm0
11554 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
11555 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11556 ; SSE-NEXT:    movapd 32(%rax), %xmm0
11557 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
11558 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11559 ; SSE-NEXT:    movapd 32(%rdx), %xmm2
11560 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
11561 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11562 ; SSE-NEXT:    movapd 32(%rcx), %xmm3
11563 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
11564 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11565 ; SSE-NEXT:    movapd 32(%r8), %xmm1
11566 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
11567 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11568 ; SSE-NEXT:    movapd 32(%r9), %xmm2
11569 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11570 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11571 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11572 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11573 ; SSE-NEXT:    movapd 48(%rdi), %xmm1
11574 ; SSE-NEXT:    movapd 48(%rsi), %xmm2
11575 ; SSE-NEXT:    movapd %xmm1, %xmm0
11576 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11577 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11578 ; SSE-NEXT:    movapd 48(%rax), %xmm0
11579 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11580 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11581 ; SSE-NEXT:    movapd 48(%rdx), %xmm1
11582 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11583 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11584 ; SSE-NEXT:    movapd 48(%rcx), %xmm2
11585 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11586 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11587 ; SSE-NEXT:    movapd 48(%r8), %xmm1
11588 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11589 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11590 ; SSE-NEXT:    movapd 48(%r9), %xmm2
11591 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11592 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11593 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11594 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11595 ; SSE-NEXT:    movapd 64(%rdi), %xmm1
11596 ; SSE-NEXT:    movapd 64(%rsi), %xmm2
11597 ; SSE-NEXT:    movapd %xmm1, %xmm0
11598 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11599 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11600 ; SSE-NEXT:    movapd 64(%rax), %xmm0
11601 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11602 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11603 ; SSE-NEXT:    movapd 64(%rdx), %xmm1
11604 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11605 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11606 ; SSE-NEXT:    movapd 64(%rcx), %xmm2
11607 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11608 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11609 ; SSE-NEXT:    movapd 64(%r8), %xmm1
11610 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11611 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11612 ; SSE-NEXT:    movapd 64(%r9), %xmm2
11613 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11614 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11615 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11616 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11617 ; SSE-NEXT:    movapd 80(%rdi), %xmm1
11618 ; SSE-NEXT:    movapd 80(%rsi), %xmm2
11619 ; SSE-NEXT:    movapd %xmm1, %xmm0
11620 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11621 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11622 ; SSE-NEXT:    movapd 80(%rax), %xmm0
11623 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11624 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11625 ; SSE-NEXT:    movapd 80(%rdx), %xmm1
11626 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11627 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11628 ; SSE-NEXT:    movapd 80(%rcx), %xmm2
11629 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11630 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11631 ; SSE-NEXT:    movapd 80(%r8), %xmm1
11632 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11633 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11634 ; SSE-NEXT:    movapd 80(%r9), %xmm2
11635 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11636 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11637 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11638 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11639 ; SSE-NEXT:    movapd 96(%rdi), %xmm1
11640 ; SSE-NEXT:    movapd 96(%rsi), %xmm2
11641 ; SSE-NEXT:    movapd %xmm1, %xmm0
11642 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11643 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11644 ; SSE-NEXT:    movapd 96(%rax), %xmm0
11645 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11646 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11647 ; SSE-NEXT:    movapd 96(%rdx), %xmm1
11648 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11649 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11650 ; SSE-NEXT:    movapd 96(%rcx), %xmm2
11651 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11652 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11653 ; SSE-NEXT:    movapd 96(%r8), %xmm1
11654 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11655 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11656 ; SSE-NEXT:    movapd 96(%r9), %xmm2
11657 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11658 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11659 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11660 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11661 ; SSE-NEXT:    movapd 112(%rdi), %xmm1
11662 ; SSE-NEXT:    movapd 112(%rsi), %xmm2
11663 ; SSE-NEXT:    movapd %xmm1, %xmm0
11664 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11665 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11666 ; SSE-NEXT:    movapd 112(%rax), %xmm0
11667 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11668 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11669 ; SSE-NEXT:    movapd 112(%rdx), %xmm1
11670 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11671 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11672 ; SSE-NEXT:    movapd 112(%rcx), %xmm2
11673 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11674 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11675 ; SSE-NEXT:    movapd 112(%r8), %xmm1
11676 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11677 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11678 ; SSE-NEXT:    movapd 112(%r9), %xmm2
11679 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11680 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11681 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11682 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11683 ; SSE-NEXT:    movapd 128(%rdi), %xmm1
11684 ; SSE-NEXT:    movapd 128(%rsi), %xmm2
11685 ; SSE-NEXT:    movapd %xmm1, %xmm0
11686 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11687 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11688 ; SSE-NEXT:    movapd 128(%rax), %xmm0
11689 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11690 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11691 ; SSE-NEXT:    movapd 128(%rdx), %xmm1
11692 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11693 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11694 ; SSE-NEXT:    movapd 128(%rcx), %xmm2
11695 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11696 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11697 ; SSE-NEXT:    movapd 128(%r8), %xmm1
11698 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11699 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11700 ; SSE-NEXT:    movapd 128(%r9), %xmm2
11701 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11702 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11703 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11704 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11705 ; SSE-NEXT:    movapd 144(%rdi), %xmm1
11706 ; SSE-NEXT:    movapd 144(%rsi), %xmm2
11707 ; SSE-NEXT:    movapd %xmm1, %xmm0
11708 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11709 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11710 ; SSE-NEXT:    movapd 144(%rax), %xmm0
11711 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11712 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11713 ; SSE-NEXT:    movapd 144(%rdx), %xmm1
11714 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11715 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11716 ; SSE-NEXT:    movapd 144(%rcx), %xmm2
11717 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11718 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11719 ; SSE-NEXT:    movapd 144(%r8), %xmm1
11720 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11721 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11722 ; SSE-NEXT:    movapd 144(%r9), %xmm2
11723 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11724 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11725 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11726 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11727 ; SSE-NEXT:    movapd 160(%rdi), %xmm1
11728 ; SSE-NEXT:    movapd 160(%rsi), %xmm2
11729 ; SSE-NEXT:    movapd %xmm1, %xmm0
11730 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11731 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11732 ; SSE-NEXT:    movapd 160(%rax), %xmm0
11733 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11734 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11735 ; SSE-NEXT:    movapd 160(%rdx), %xmm1
11736 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11737 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11738 ; SSE-NEXT:    movapd 160(%rcx), %xmm2
11739 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11740 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11741 ; SSE-NEXT:    movapd 160(%r8), %xmm1
11742 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11743 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11744 ; SSE-NEXT:    movapd 160(%r9), %xmm2
11745 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11746 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11747 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11748 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11749 ; SSE-NEXT:    movapd 176(%rdi), %xmm1
11750 ; SSE-NEXT:    movapd 176(%rsi), %xmm2
11751 ; SSE-NEXT:    movapd %xmm1, %xmm0
11752 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11753 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11754 ; SSE-NEXT:    movapd 176(%rax), %xmm0
11755 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11756 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11757 ; SSE-NEXT:    movapd 176(%rdx), %xmm1
11758 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11759 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11760 ; SSE-NEXT:    movapd 176(%rcx), %xmm2
11761 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11762 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11763 ; SSE-NEXT:    movapd 176(%r8), %xmm1
11764 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11765 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11766 ; SSE-NEXT:    movapd 176(%r9), %xmm2
11767 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11768 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11769 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11770 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11771 ; SSE-NEXT:    movapd 192(%rdi), %xmm1
11772 ; SSE-NEXT:    movapd 192(%rsi), %xmm2
11773 ; SSE-NEXT:    movapd %xmm1, %xmm0
11774 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11775 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11776 ; SSE-NEXT:    movapd 192(%rax), %xmm0
11777 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11778 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11779 ; SSE-NEXT:    movapd 192(%rdx), %xmm1
11780 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11781 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11782 ; SSE-NEXT:    movapd 192(%rcx), %xmm2
11783 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11784 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11785 ; SSE-NEXT:    movapd 192(%r8), %xmm1
11786 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11787 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11788 ; SSE-NEXT:    movapd 192(%r9), %xmm2
11789 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11790 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11791 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11792 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11793 ; SSE-NEXT:    movapd 208(%rdi), %xmm1
11794 ; SSE-NEXT:    movapd 208(%rsi), %xmm2
11795 ; SSE-NEXT:    movapd %xmm1, %xmm0
11796 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11797 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11798 ; SSE-NEXT:    movapd 208(%rax), %xmm0
11799 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11800 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11801 ; SSE-NEXT:    movapd 208(%rdx), %xmm1
11802 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11803 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11804 ; SSE-NEXT:    movapd 208(%rcx), %xmm2
11805 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11806 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11807 ; SSE-NEXT:    movapd 208(%r8), %xmm1
11808 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11809 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11810 ; SSE-NEXT:    movapd 208(%r9), %xmm2
11811 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11812 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11813 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11814 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11815 ; SSE-NEXT:    movapd 224(%rdi), %xmm1
11816 ; SSE-NEXT:    movapd 224(%rsi), %xmm2
11817 ; SSE-NEXT:    movapd %xmm1, %xmm0
11818 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11819 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11820 ; SSE-NEXT:    movapd 224(%rax), %xmm0
11821 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11822 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11823 ; SSE-NEXT:    movapd 224(%rdx), %xmm1
11824 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11825 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11826 ; SSE-NEXT:    movapd 224(%rcx), %xmm2
11827 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11828 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11829 ; SSE-NEXT:    movapd 224(%r8), %xmm1
11830 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11831 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11832 ; SSE-NEXT:    movapd 224(%r9), %xmm2
11833 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11834 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11835 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11836 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11837 ; SSE-NEXT:    movapd 240(%rdi), %xmm1
11838 ; SSE-NEXT:    movapd 240(%rsi), %xmm2
11839 ; SSE-NEXT:    movapd %xmm1, %xmm0
11840 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11841 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11842 ; SSE-NEXT:    movapd 240(%rax), %xmm0
11843 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11844 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11845 ; SSE-NEXT:    movapd 240(%rdx), %xmm1
11846 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11847 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11848 ; SSE-NEXT:    movapd 240(%rcx), %xmm2
11849 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11850 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11851 ; SSE-NEXT:    movapd 240(%r8), %xmm1
11852 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11853 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11854 ; SSE-NEXT:    movapd 240(%r9), %xmm2
11855 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11856 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11857 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11858 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11859 ; SSE-NEXT:    movapd 256(%rdi), %xmm1
11860 ; SSE-NEXT:    movapd 256(%rsi), %xmm2
11861 ; SSE-NEXT:    movapd %xmm1, %xmm0
11862 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11863 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11864 ; SSE-NEXT:    movapd 256(%rax), %xmm0
11865 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11866 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11867 ; SSE-NEXT:    movapd 256(%rdx), %xmm1
11868 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11869 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11870 ; SSE-NEXT:    movapd 256(%rcx), %xmm2
11871 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11872 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11873 ; SSE-NEXT:    movapd 256(%r8), %xmm1
11874 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11875 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11876 ; SSE-NEXT:    movapd 256(%r9), %xmm2
11877 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11878 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11879 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11880 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11881 ; SSE-NEXT:    movapd 272(%rdi), %xmm1
11882 ; SSE-NEXT:    movapd 272(%rsi), %xmm2
11883 ; SSE-NEXT:    movapd %xmm1, %xmm0
11884 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11885 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11886 ; SSE-NEXT:    movapd 272(%rax), %xmm0
11887 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11888 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11889 ; SSE-NEXT:    movapd 272(%rdx), %xmm1
11890 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11891 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11892 ; SSE-NEXT:    movapd 272(%rcx), %xmm2
11893 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11894 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11895 ; SSE-NEXT:    movapd 272(%r8), %xmm1
11896 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11897 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11898 ; SSE-NEXT:    movapd 272(%r9), %xmm2
11899 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11900 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11901 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11902 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11903 ; SSE-NEXT:    movapd 288(%rdi), %xmm1
11904 ; SSE-NEXT:    movapd 288(%rsi), %xmm2
11905 ; SSE-NEXT:    movapd %xmm1, %xmm0
11906 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11907 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11908 ; SSE-NEXT:    movapd 288(%rax), %xmm0
11909 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11910 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11911 ; SSE-NEXT:    movapd 288(%rdx), %xmm1
11912 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11913 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11914 ; SSE-NEXT:    movapd 288(%rcx), %xmm2
11915 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11916 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11917 ; SSE-NEXT:    movapd 288(%r8), %xmm1
11918 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11919 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11920 ; SSE-NEXT:    movapd 288(%r9), %xmm2
11921 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11922 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11923 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11924 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11925 ; SSE-NEXT:    movapd 304(%rdi), %xmm1
11926 ; SSE-NEXT:    movapd 304(%rsi), %xmm2
11927 ; SSE-NEXT:    movapd %xmm1, %xmm0
11928 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11929 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11930 ; SSE-NEXT:    movapd 304(%rax), %xmm0
11931 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11932 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11933 ; SSE-NEXT:    movapd 304(%rdx), %xmm1
11934 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11935 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11936 ; SSE-NEXT:    movapd 304(%rcx), %xmm2
11937 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11938 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11939 ; SSE-NEXT:    movapd 304(%r8), %xmm1
11940 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11941 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11942 ; SSE-NEXT:    movapd 304(%r9), %xmm2
11943 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11944 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11945 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11946 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11947 ; SSE-NEXT:    movapd 320(%rdi), %xmm1
11948 ; SSE-NEXT:    movapd 320(%rsi), %xmm2
11949 ; SSE-NEXT:    movapd %xmm1, %xmm0
11950 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11951 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11952 ; SSE-NEXT:    movapd 320(%rax), %xmm0
11953 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11954 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11955 ; SSE-NEXT:    movapd 320(%rdx), %xmm1
11956 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11957 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11958 ; SSE-NEXT:    movapd 320(%rcx), %xmm2
11959 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11960 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11961 ; SSE-NEXT:    movapd 320(%r8), %xmm1
11962 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11963 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11964 ; SSE-NEXT:    movapd 320(%r9), %xmm2
11965 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11966 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11967 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11968 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11969 ; SSE-NEXT:    movapd 336(%rdi), %xmm1
11970 ; SSE-NEXT:    movapd 336(%rsi), %xmm2
11971 ; SSE-NEXT:    movapd %xmm1, %xmm0
11972 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11973 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11974 ; SSE-NEXT:    movapd 336(%rax), %xmm0
11975 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11976 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11977 ; SSE-NEXT:    movapd 336(%rdx), %xmm1
11978 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11979 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11980 ; SSE-NEXT:    movapd 336(%rcx), %xmm2
11981 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11982 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11983 ; SSE-NEXT:    movapd 336(%r8), %xmm1
11984 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
11985 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11986 ; SSE-NEXT:    movapd 336(%r9), %xmm2
11987 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
11988 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11989 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
11990 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11991 ; SSE-NEXT:    movapd 352(%rdi), %xmm1
11992 ; SSE-NEXT:    movapd 352(%rsi), %xmm2
11993 ; SSE-NEXT:    movapd %xmm1, %xmm0
11994 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
11995 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11996 ; SSE-NEXT:    movapd 352(%rax), %xmm0
11997 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
11998 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11999 ; SSE-NEXT:    movapd 352(%rdx), %xmm1
12000 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12001 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12002 ; SSE-NEXT:    movapd 352(%rcx), %xmm2
12003 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12004 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12005 ; SSE-NEXT:    movapd 352(%r8), %xmm1
12006 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12007 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12008 ; SSE-NEXT:    movapd 352(%r9), %xmm2
12009 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12010 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12011 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12012 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12013 ; SSE-NEXT:    movapd 368(%rdi), %xmm1
12014 ; SSE-NEXT:    movapd 368(%rsi), %xmm2
12015 ; SSE-NEXT:    movapd %xmm1, %xmm0
12016 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12017 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12018 ; SSE-NEXT:    movapd 368(%rax), %xmm0
12019 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12020 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12021 ; SSE-NEXT:    movapd 368(%rdx), %xmm1
12022 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12023 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12024 ; SSE-NEXT:    movapd 368(%rcx), %xmm2
12025 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12026 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12027 ; SSE-NEXT:    movapd 368(%r8), %xmm1
12028 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12029 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12030 ; SSE-NEXT:    movapd 368(%r9), %xmm2
12031 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12032 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12033 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12034 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12035 ; SSE-NEXT:    movapd 384(%rdi), %xmm1
12036 ; SSE-NEXT:    movapd 384(%rsi), %xmm2
12037 ; SSE-NEXT:    movapd %xmm1, %xmm0
12038 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12039 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12040 ; SSE-NEXT:    movapd 384(%rax), %xmm0
12041 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12042 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12043 ; SSE-NEXT:    movapd 384(%rdx), %xmm1
12044 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12045 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12046 ; SSE-NEXT:    movapd 384(%rcx), %xmm2
12047 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12048 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12049 ; SSE-NEXT:    movapd 384(%r8), %xmm1
12050 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12051 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12052 ; SSE-NEXT:    movapd 384(%r9), %xmm2
12053 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12054 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12055 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12056 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12057 ; SSE-NEXT:    movapd 400(%rdi), %xmm1
12058 ; SSE-NEXT:    movapd 400(%rsi), %xmm2
12059 ; SSE-NEXT:    movapd %xmm1, %xmm0
12060 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12061 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12062 ; SSE-NEXT:    movapd 400(%rax), %xmm0
12063 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12064 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12065 ; SSE-NEXT:    movapd 400(%rdx), %xmm1
12066 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12067 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12068 ; SSE-NEXT:    movapd 400(%rcx), %xmm2
12069 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12070 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12071 ; SSE-NEXT:    movapd 400(%r8), %xmm1
12072 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12073 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12074 ; SSE-NEXT:    movapd 400(%r9), %xmm2
12075 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12076 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12077 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12078 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12079 ; SSE-NEXT:    movapd 416(%rdi), %xmm1
12080 ; SSE-NEXT:    movapd 416(%rsi), %xmm2
12081 ; SSE-NEXT:    movapd %xmm1, %xmm0
12082 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12083 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12084 ; SSE-NEXT:    movapd 416(%rax), %xmm0
12085 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12086 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12087 ; SSE-NEXT:    movapd 416(%rdx), %xmm1
12088 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12089 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12090 ; SSE-NEXT:    movapd 416(%rcx), %xmm2
12091 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12092 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12093 ; SSE-NEXT:    movapd 416(%r8), %xmm1
12094 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12095 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12096 ; SSE-NEXT:    movapd 416(%r9), %xmm2
12097 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12098 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12099 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12100 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12101 ; SSE-NEXT:    movapd 432(%rdi), %xmm1
12102 ; SSE-NEXT:    movapd 432(%rsi), %xmm2
12103 ; SSE-NEXT:    movapd %xmm1, %xmm0
12104 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12105 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12106 ; SSE-NEXT:    movapd 432(%rax), %xmm0
12107 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12108 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12109 ; SSE-NEXT:    movapd 432(%rdx), %xmm1
12110 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12111 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12112 ; SSE-NEXT:    movapd 432(%rcx), %xmm2
12113 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12114 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12115 ; SSE-NEXT:    movapd 432(%r8), %xmm1
12116 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12117 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12118 ; SSE-NEXT:    movapd 432(%r9), %xmm2
12119 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12120 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12121 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12122 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12123 ; SSE-NEXT:    movapd 448(%rdi), %xmm1
12124 ; SSE-NEXT:    movapd 448(%rsi), %xmm2
12125 ; SSE-NEXT:    movapd %xmm1, %xmm0
12126 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12127 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12128 ; SSE-NEXT:    movapd 448(%rax), %xmm0
12129 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12130 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12131 ; SSE-NEXT:    movapd 448(%rdx), %xmm1
12132 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12133 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12134 ; SSE-NEXT:    movapd 448(%rcx), %xmm2
12135 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12136 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12137 ; SSE-NEXT:    movapd 448(%r8), %xmm1
12138 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12139 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12140 ; SSE-NEXT:    movapd 448(%r9), %xmm2
12141 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12142 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
12143 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12144 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12145 ; SSE-NEXT:    movapd 464(%rdi), %xmm1
12146 ; SSE-NEXT:    movapd 464(%rsi), %xmm2
12147 ; SSE-NEXT:    movapd %xmm1, %xmm0
12148 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12149 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12150 ; SSE-NEXT:    movapd 464(%rax), %xmm0
12151 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12152 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12153 ; SSE-NEXT:    movapd 464(%rdx), %xmm1
12154 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12155 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12156 ; SSE-NEXT:    movapd 464(%rcx), %xmm14
12157 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm14[0]
12158 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12159 ; SSE-NEXT:    movapd 464(%r8), %xmm1
12160 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
12161 ; SSE-NEXT:    movapd 464(%r9), %xmm13
12162 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm13[0]
12163 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12164 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
12165 ; SSE-NEXT:    movapd 480(%rdi), %xmm15
12166 ; SSE-NEXT:    movapd 480(%rsi), %xmm12
12167 ; SSE-NEXT:    movapd %xmm15, %xmm0
12168 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm12[0]
12169 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12170 ; SSE-NEXT:    movapd 480(%rax), %xmm3
12171 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm3[0],xmm15[1]
12172 ; SSE-NEXT:    movapd 480(%rdx), %xmm11
12173 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
12174 ; SSE-NEXT:    movapd 480(%rcx), %xmm8
12175 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm8[0]
12176 ; SSE-NEXT:    movapd 480(%r8), %xmm9
12177 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
12178 ; SSE-NEXT:    movapd 480(%r9), %xmm6
12179 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
12180 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
12181 ; SSE-NEXT:    movapd 496(%rdi), %xmm5
12182 ; SSE-NEXT:    movapd 496(%rsi), %xmm4
12183 ; SSE-NEXT:    movapd %xmm5, %xmm7
12184 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm4[0]
12185 ; SSE-NEXT:    movapd 496(%rax), %xmm10
12186 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm10[0],xmm5[1]
12187 ; SSE-NEXT:    movapd 496(%rdx), %xmm3
12188 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
12189 ; SSE-NEXT:    movapd 496(%rcx), %xmm2
12190 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
12191 ; SSE-NEXT:    movapd 496(%r8), %xmm1
12192 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12193 ; SSE-NEXT:    movapd 496(%r9), %xmm0
12194 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
12195 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
12196 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12197 ; SSE-NEXT:    movapd %xmm0, 3568(%rax)
12198 ; SSE-NEXT:    movapd %xmm2, 3552(%rax)
12199 ; SSE-NEXT:    movapd %xmm4, 3536(%rax)
12200 ; SSE-NEXT:    movapd %xmm5, 3520(%rax)
12201 ; SSE-NEXT:    movapd %xmm1, 3504(%rax)
12202 ; SSE-NEXT:    movapd %xmm3, 3488(%rax)
12203 ; SSE-NEXT:    movapd %xmm7, 3472(%rax)
12204 ; SSE-NEXT:    movapd %xmm6, 3456(%rax)
12205 ; SSE-NEXT:    movapd %xmm8, 3440(%rax)
12206 ; SSE-NEXT:    movapd %xmm12, 3424(%rax)
12207 ; SSE-NEXT:    movapd %xmm15, 3408(%rax)
12208 ; SSE-NEXT:    movapd %xmm9, 3392(%rax)
12209 ; SSE-NEXT:    movapd %xmm11, 3376(%rax)
12210 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12211 ; SSE-NEXT:    movaps %xmm0, 3360(%rax)
12212 ; SSE-NEXT:    movapd %xmm13, 3344(%rax)
12213 ; SSE-NEXT:    movapd %xmm14, 3328(%rax)
12214 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12215 ; SSE-NEXT:    movaps %xmm0, 3312(%rax)
12216 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12217 ; SSE-NEXT:    movaps %xmm0, 3296(%rax)
12218 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12219 ; SSE-NEXT:    movaps %xmm0, 3280(%rax)
12220 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12221 ; SSE-NEXT:    movaps %xmm0, 3264(%rax)
12222 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12223 ; SSE-NEXT:    movaps %xmm0, 3248(%rax)
12224 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12225 ; SSE-NEXT:    movaps %xmm0, 3232(%rax)
12226 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12227 ; SSE-NEXT:    movaps %xmm0, 3216(%rax)
12228 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12229 ; SSE-NEXT:    movaps %xmm0, 3200(%rax)
12230 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12231 ; SSE-NEXT:    movaps %xmm0, 3184(%rax)
12232 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
12233 ; SSE-NEXT:    movaps %xmm0, 3168(%rax)
12234 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12235 ; SSE-NEXT:    movaps %xmm0, 3152(%rax)
12236 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12237 ; SSE-NEXT:    movaps %xmm0, 3136(%rax)
12238 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12239 ; SSE-NEXT:    movaps %xmm0, 3120(%rax)
12240 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12241 ; SSE-NEXT:    movaps %xmm0, 3104(%rax)
12242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12243 ; SSE-NEXT:    movaps %xmm0, 3088(%rax)
12244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12245 ; SSE-NEXT:    movaps %xmm0, 3072(%rax)
12246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12247 ; SSE-NEXT:    movaps %xmm0, 3056(%rax)
12248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12249 ; SSE-NEXT:    movaps %xmm0, 3040(%rax)
12250 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12251 ; SSE-NEXT:    movaps %xmm0, 3024(%rax)
12252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12253 ; SSE-NEXT:    movaps %xmm0, 3008(%rax)
12254 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12255 ; SSE-NEXT:    movaps %xmm0, 2992(%rax)
12256 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12257 ; SSE-NEXT:    movaps %xmm0, 2976(%rax)
12258 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12259 ; SSE-NEXT:    movaps %xmm0, 2960(%rax)
12260 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12261 ; SSE-NEXT:    movaps %xmm0, 2944(%rax)
12262 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12263 ; SSE-NEXT:    movaps %xmm0, 2928(%rax)
12264 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12265 ; SSE-NEXT:    movaps %xmm0, 2912(%rax)
12266 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12267 ; SSE-NEXT:    movaps %xmm0, 2896(%rax)
12268 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12269 ; SSE-NEXT:    movaps %xmm0, 2880(%rax)
12270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12271 ; SSE-NEXT:    movaps %xmm0, 2864(%rax)
12272 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12273 ; SSE-NEXT:    movaps %xmm0, 2848(%rax)
12274 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12275 ; SSE-NEXT:    movaps %xmm0, 2832(%rax)
12276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12277 ; SSE-NEXT:    movaps %xmm0, 2816(%rax)
12278 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12279 ; SSE-NEXT:    movaps %xmm0, 2800(%rax)
12280 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12281 ; SSE-NEXT:    movaps %xmm0, 2784(%rax)
12282 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12283 ; SSE-NEXT:    movaps %xmm0, 2768(%rax)
12284 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12285 ; SSE-NEXT:    movaps %xmm0, 2752(%rax)
12286 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12287 ; SSE-NEXT:    movaps %xmm0, 2736(%rax)
12288 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12289 ; SSE-NEXT:    movaps %xmm0, 2720(%rax)
12290 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12291 ; SSE-NEXT:    movaps %xmm0, 2704(%rax)
12292 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12293 ; SSE-NEXT:    movaps %xmm0, 2688(%rax)
12294 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12295 ; SSE-NEXT:    movaps %xmm0, 2672(%rax)
12296 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12297 ; SSE-NEXT:    movaps %xmm0, 2656(%rax)
12298 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12299 ; SSE-NEXT:    movaps %xmm0, 2640(%rax)
12300 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12301 ; SSE-NEXT:    movaps %xmm0, 2624(%rax)
12302 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12303 ; SSE-NEXT:    movaps %xmm0, 2608(%rax)
12304 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12305 ; SSE-NEXT:    movaps %xmm0, 2592(%rax)
12306 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12307 ; SSE-NEXT:    movaps %xmm0, 2576(%rax)
12308 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12309 ; SSE-NEXT:    movaps %xmm0, 2560(%rax)
12310 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12311 ; SSE-NEXT:    movaps %xmm0, 2544(%rax)
12312 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12313 ; SSE-NEXT:    movaps %xmm0, 2528(%rax)
12314 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12315 ; SSE-NEXT:    movaps %xmm0, 2512(%rax)
12316 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12317 ; SSE-NEXT:    movaps %xmm0, 2496(%rax)
12318 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12319 ; SSE-NEXT:    movaps %xmm0, 2480(%rax)
12320 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12321 ; SSE-NEXT:    movaps %xmm0, 2464(%rax)
12322 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12323 ; SSE-NEXT:    movaps %xmm0, 2448(%rax)
12324 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12325 ; SSE-NEXT:    movaps %xmm0, 2432(%rax)
12326 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12327 ; SSE-NEXT:    movaps %xmm0, 2416(%rax)
12328 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12329 ; SSE-NEXT:    movaps %xmm0, 2400(%rax)
12330 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12331 ; SSE-NEXT:    movaps %xmm0, 2384(%rax)
12332 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12333 ; SSE-NEXT:    movaps %xmm0, 2368(%rax)
12334 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12335 ; SSE-NEXT:    movaps %xmm0, 2352(%rax)
12336 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12337 ; SSE-NEXT:    movaps %xmm0, 2336(%rax)
12338 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12339 ; SSE-NEXT:    movaps %xmm0, 2320(%rax)
12340 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12341 ; SSE-NEXT:    movaps %xmm0, 2304(%rax)
12342 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12343 ; SSE-NEXT:    movaps %xmm0, 2288(%rax)
12344 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12345 ; SSE-NEXT:    movaps %xmm0, 2272(%rax)
12346 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12347 ; SSE-NEXT:    movaps %xmm0, 2256(%rax)
12348 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12349 ; SSE-NEXT:    movaps %xmm0, 2240(%rax)
12350 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12351 ; SSE-NEXT:    movaps %xmm0, 2224(%rax)
12352 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12353 ; SSE-NEXT:    movaps %xmm0, 2208(%rax)
12354 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12355 ; SSE-NEXT:    movaps %xmm0, 2192(%rax)
12356 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12357 ; SSE-NEXT:    movaps %xmm0, 2176(%rax)
12358 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12359 ; SSE-NEXT:    movaps %xmm0, 2160(%rax)
12360 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12361 ; SSE-NEXT:    movaps %xmm0, 2144(%rax)
12362 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12363 ; SSE-NEXT:    movaps %xmm0, 2128(%rax)
12364 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12365 ; SSE-NEXT:    movaps %xmm0, 2112(%rax)
12366 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12367 ; SSE-NEXT:    movaps %xmm0, 2096(%rax)
12368 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12369 ; SSE-NEXT:    movaps %xmm0, 2080(%rax)
12370 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12371 ; SSE-NEXT:    movaps %xmm0, 2064(%rax)
12372 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12373 ; SSE-NEXT:    movaps %xmm0, 2048(%rax)
12374 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12375 ; SSE-NEXT:    movaps %xmm0, 2032(%rax)
12376 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12377 ; SSE-NEXT:    movaps %xmm0, 2016(%rax)
12378 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12379 ; SSE-NEXT:    movaps %xmm0, 2000(%rax)
12380 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12381 ; SSE-NEXT:    movaps %xmm0, 1984(%rax)
12382 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12383 ; SSE-NEXT:    movaps %xmm0, 1968(%rax)
12384 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12385 ; SSE-NEXT:    movaps %xmm0, 1952(%rax)
12386 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12387 ; SSE-NEXT:    movaps %xmm0, 1936(%rax)
12388 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12389 ; SSE-NEXT:    movaps %xmm0, 1920(%rax)
12390 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12391 ; SSE-NEXT:    movaps %xmm0, 1904(%rax)
12392 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12393 ; SSE-NEXT:    movaps %xmm0, 1888(%rax)
12394 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12395 ; SSE-NEXT:    movaps %xmm0, 1872(%rax)
12396 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12397 ; SSE-NEXT:    movaps %xmm0, 1856(%rax)
12398 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12399 ; SSE-NEXT:    movaps %xmm0, 1840(%rax)
12400 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12401 ; SSE-NEXT:    movaps %xmm0, 1824(%rax)
12402 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12403 ; SSE-NEXT:    movaps %xmm0, 1808(%rax)
12404 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12405 ; SSE-NEXT:    movaps %xmm0, 1792(%rax)
12406 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12407 ; SSE-NEXT:    movaps %xmm0, 1776(%rax)
12408 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12409 ; SSE-NEXT:    movaps %xmm0, 1760(%rax)
12410 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12411 ; SSE-NEXT:    movaps %xmm0, 1744(%rax)
12412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12413 ; SSE-NEXT:    movaps %xmm0, 1728(%rax)
12414 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12415 ; SSE-NEXT:    movaps %xmm0, 1712(%rax)
12416 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12417 ; SSE-NEXT:    movaps %xmm0, 1696(%rax)
12418 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12419 ; SSE-NEXT:    movaps %xmm0, 1680(%rax)
12420 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12421 ; SSE-NEXT:    movaps %xmm0, 1664(%rax)
12422 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12423 ; SSE-NEXT:    movaps %xmm0, 1648(%rax)
12424 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12425 ; SSE-NEXT:    movaps %xmm0, 1632(%rax)
12426 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12427 ; SSE-NEXT:    movaps %xmm0, 1616(%rax)
12428 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12429 ; SSE-NEXT:    movaps %xmm0, 1600(%rax)
12430 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12431 ; SSE-NEXT:    movaps %xmm0, 1584(%rax)
12432 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12433 ; SSE-NEXT:    movaps %xmm0, 1568(%rax)
12434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12435 ; SSE-NEXT:    movaps %xmm0, 1552(%rax)
12436 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12437 ; SSE-NEXT:    movaps %xmm0, 1536(%rax)
12438 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12439 ; SSE-NEXT:    movaps %xmm0, 1520(%rax)
12440 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12441 ; SSE-NEXT:    movaps %xmm0, 1504(%rax)
12442 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12443 ; SSE-NEXT:    movaps %xmm0, 1488(%rax)
12444 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12445 ; SSE-NEXT:    movaps %xmm0, 1472(%rax)
12446 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12447 ; SSE-NEXT:    movaps %xmm0, 1456(%rax)
12448 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12449 ; SSE-NEXT:    movaps %xmm0, 1440(%rax)
12450 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12451 ; SSE-NEXT:    movaps %xmm0, 1424(%rax)
12452 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12453 ; SSE-NEXT:    movaps %xmm0, 1408(%rax)
12454 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12455 ; SSE-NEXT:    movaps %xmm0, 1392(%rax)
12456 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12457 ; SSE-NEXT:    movaps %xmm0, 1376(%rax)
12458 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12459 ; SSE-NEXT:    movaps %xmm0, 1360(%rax)
12460 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12461 ; SSE-NEXT:    movaps %xmm0, 1344(%rax)
12462 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12463 ; SSE-NEXT:    movaps %xmm0, 1328(%rax)
12464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12465 ; SSE-NEXT:    movaps %xmm0, 1312(%rax)
12466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12467 ; SSE-NEXT:    movaps %xmm0, 1296(%rax)
12468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12469 ; SSE-NEXT:    movaps %xmm0, 1280(%rax)
12470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12471 ; SSE-NEXT:    movaps %xmm0, 1264(%rax)
12472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12473 ; SSE-NEXT:    movaps %xmm0, 1248(%rax)
12474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12475 ; SSE-NEXT:    movaps %xmm0, 1232(%rax)
12476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12477 ; SSE-NEXT:    movaps %xmm0, 1216(%rax)
12478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12479 ; SSE-NEXT:    movaps %xmm0, 1200(%rax)
12480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12481 ; SSE-NEXT:    movaps %xmm0, 1184(%rax)
12482 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12483 ; SSE-NEXT:    movaps %xmm0, 1168(%rax)
12484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12485 ; SSE-NEXT:    movaps %xmm0, 1152(%rax)
12486 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12487 ; SSE-NEXT:    movaps %xmm0, 1136(%rax)
12488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12489 ; SSE-NEXT:    movaps %xmm0, 1120(%rax)
12490 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12491 ; SSE-NEXT:    movaps %xmm0, 1104(%rax)
12492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12493 ; SSE-NEXT:    movaps %xmm0, 1088(%rax)
12494 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12495 ; SSE-NEXT:    movaps %xmm0, 1072(%rax)
12496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12497 ; SSE-NEXT:    movaps %xmm0, 1056(%rax)
12498 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12499 ; SSE-NEXT:    movaps %xmm0, 1040(%rax)
12500 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12501 ; SSE-NEXT:    movaps %xmm0, 1024(%rax)
12502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12503 ; SSE-NEXT:    movaps %xmm0, 1008(%rax)
12504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12505 ; SSE-NEXT:    movaps %xmm0, 992(%rax)
12506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12507 ; SSE-NEXT:    movaps %xmm0, 976(%rax)
12508 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12509 ; SSE-NEXT:    movaps %xmm0, 960(%rax)
12510 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12511 ; SSE-NEXT:    movaps %xmm0, 944(%rax)
12512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12513 ; SSE-NEXT:    movaps %xmm0, 928(%rax)
12514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12515 ; SSE-NEXT:    movaps %xmm0, 912(%rax)
12516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12517 ; SSE-NEXT:    movaps %xmm0, 896(%rax)
12518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12519 ; SSE-NEXT:    movaps %xmm0, 880(%rax)
12520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12521 ; SSE-NEXT:    movaps %xmm0, 864(%rax)
12522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12523 ; SSE-NEXT:    movaps %xmm0, 848(%rax)
12524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12525 ; SSE-NEXT:    movaps %xmm0, 832(%rax)
12526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12527 ; SSE-NEXT:    movaps %xmm0, 816(%rax)
12528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12529 ; SSE-NEXT:    movaps %xmm0, 800(%rax)
12530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12531 ; SSE-NEXT:    movaps %xmm0, 784(%rax)
12532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12533 ; SSE-NEXT:    movaps %xmm0, 768(%rax)
12534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12535 ; SSE-NEXT:    movaps %xmm0, 752(%rax)
12536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12537 ; SSE-NEXT:    movaps %xmm0, 736(%rax)
12538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12539 ; SSE-NEXT:    movaps %xmm0, 720(%rax)
12540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12541 ; SSE-NEXT:    movaps %xmm0, 704(%rax)
12542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12543 ; SSE-NEXT:    movaps %xmm0, 688(%rax)
12544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12545 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
12546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12547 ; SSE-NEXT:    movaps %xmm0, 656(%rax)
12548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12549 ; SSE-NEXT:    movaps %xmm0, 640(%rax)
12550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12551 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
12552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12553 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
12554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12555 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
12556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12557 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
12558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12559 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
12560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12561 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
12562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12563 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
12564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12565 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
12566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12567 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
12568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12569 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
12570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12571 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
12572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12573 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
12574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12575 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
12576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12577 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
12578 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12579 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
12580 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12581 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
12582 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12583 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
12584 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12585 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
12586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12587 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
12588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12589 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
12590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12591 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
12592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12593 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
12594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12595 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
12596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12597 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
12598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12599 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
12600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12601 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
12602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12603 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
12604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12605 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
12606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12607 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
12608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12609 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
12610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12611 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
12612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12613 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
12614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12615 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
12616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12617 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
12618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12619 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
12620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12621 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
12622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12623 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
12624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12625 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
12626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12627 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
12628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12629 ; SSE-NEXT:    movaps %xmm0, (%rax)
12630 ; SSE-NEXT:    addq $3224, %rsp # imm = 0xC98
12631 ; SSE-NEXT:    retq
12633 ; AVX-LABEL: store_i64_stride7_vf64:
12634 ; AVX:       # %bb.0:
12635 ; AVX-NEXT:    subq $3816, %rsp # imm = 0xEE8
12636 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12637 ; AVX-NEXT:    vmovaps (%rsi), %ymm4
12638 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12639 ; AVX-NEXT:    vmovaps (%rdx), %ymm0
12640 ; AVX-NEXT:    vmovaps (%r9), %ymm5
12641 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12642 ; AVX-NEXT:    vmovaps (%r9), %xmm2
12643 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12644 ; AVX-NEXT:    vmovaps (%r8), %xmm1
12645 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm2[0]
12646 ; AVX-NEXT:    vmovaps (%rdi), %xmm3
12647 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12648 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm3
12649 ; AVX-NEXT:    vmovaps (%rax), %xmm6
12650 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12651 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm2, %ymm2
12652 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
12653 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12654 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm2
12655 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12656 ; AVX-NEXT:    vmovaps (%rsi), %xmm3
12657 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12658 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12659 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12660 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12661 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12662 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12663 ; AVX-NEXT:    vmovaps 16(%rax), %xmm1
12664 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm2
12665 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
12666 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12667 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12668 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12669 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm0
12670 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12671 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
12672 ; AVX-NEXT:    vmovaps 16(%r8), %xmm1
12673 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
12674 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
12675 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
12676 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12677 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm0
12678 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm1
12679 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12680 ; AVX-NEXT:    vinsertf128 $1, 32(%rcx), %ymm2, %ymm3
12681 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm4
12682 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12683 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12684 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12685 ; AVX-NEXT:    vmovaps 32(%rax), %xmm5
12686 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12687 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12688 ; AVX-NEXT:    vmovaps 32(%r9), %xmm3
12689 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12690 ; AVX-NEXT:    vmovaps 32(%r8), %xmm2
12691 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12692 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12693 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12694 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12695 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12696 ; AVX-NEXT:    vbroadcastsd 40(%rcx), %ymm1
12697 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12698 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12699 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12700 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12701 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm1
12702 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12703 ; AVX-NEXT:    vmovaps 48(%rdi), %xmm0
12704 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12705 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12706 ; AVX-NEXT:    vmovaps 48(%rax), %xmm1
12707 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12708 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12709 ; AVX-NEXT:    vmovaps 32(%r9), %ymm1
12710 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12711 ; AVX-NEXT:    vmovaps 48(%r8), %xmm0
12712 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12713 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12714 ; AVX-NEXT:    vmovaps 48(%rcx), %xmm1
12715 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12716 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12717 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12718 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12719 ; AVX-NEXT:    vmovaps 64(%r9), %xmm1
12720 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12721 ; AVX-NEXT:    vmovaps 64(%r8), %xmm0
12722 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12723 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm2
12724 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12725 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12726 ; AVX-NEXT:    vmovaps 64(%rax), %xmm3
12727 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12728 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12729 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12730 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12731 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm1
12732 ; AVX-NEXT:    vbroadcastsd 72(%rcx), %ymm2
12733 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12734 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm3
12735 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12736 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12737 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12738 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12739 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12740 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12741 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm2
12742 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12743 ; AVX-NEXT:    vmovaps 80(%rdi), %xmm0
12744 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12745 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12746 ; AVX-NEXT:    vmovaps 80(%rax), %xmm1
12747 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12748 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12749 ; AVX-NEXT:    vmovaps 64(%r9), %ymm1
12750 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12751 ; AVX-NEXT:    vmovaps 80(%r8), %xmm0
12752 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12753 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12754 ; AVX-NEXT:    vmovaps 80(%rcx), %xmm1
12755 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12756 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12757 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12758 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12759 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm0
12760 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm1
12761 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12762 ; AVX-NEXT:    vinsertf128 $1, 96(%rcx), %ymm2, %ymm3
12763 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm4
12764 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12765 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12766 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12767 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12768 ; AVX-NEXT:    vmovaps 96(%r9), %xmm3
12769 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12770 ; AVX-NEXT:    vmovaps 96(%r8), %xmm2
12771 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12772 ; AVX-NEXT:    vmovaps 96(%rax), %xmm5
12773 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12774 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12775 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12776 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12777 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12778 ; AVX-NEXT:    vbroadcastsd 104(%rcx), %ymm1
12779 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12780 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12781 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12782 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12783 ; AVX-NEXT:    vmovaps 96(%rsi), %ymm1
12784 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12785 ; AVX-NEXT:    vmovaps 112(%rdi), %xmm0
12786 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12787 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12788 ; AVX-NEXT:    vmovaps 112(%rax), %xmm1
12789 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12790 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12791 ; AVX-NEXT:    vmovaps 96(%r9), %ymm1
12792 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12793 ; AVX-NEXT:    vmovaps 112(%r8), %xmm0
12794 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12795 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12796 ; AVX-NEXT:    vmovaps 112(%rcx), %xmm1
12797 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12798 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12799 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12800 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12801 ; AVX-NEXT:    vmovaps 128(%r9), %xmm1
12802 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12803 ; AVX-NEXT:    vmovaps 128(%r8), %xmm0
12804 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12805 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm2
12806 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12807 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12808 ; AVX-NEXT:    vmovaps 128(%rax), %xmm3
12809 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12810 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12811 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12812 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12813 ; AVX-NEXT:    vmovaps 128(%rdx), %ymm1
12814 ; AVX-NEXT:    vbroadcastsd 136(%rcx), %ymm2
12815 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12816 ; AVX-NEXT:    vmovaps 128(%rsi), %xmm3
12817 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12818 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12819 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12820 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12821 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12822 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12823 ; AVX-NEXT:    vmovaps 128(%rsi), %ymm2
12824 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12825 ; AVX-NEXT:    vmovaps 144(%rdi), %xmm0
12826 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12827 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12828 ; AVX-NEXT:    vmovaps 144(%rax), %xmm1
12829 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12830 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12831 ; AVX-NEXT:    vmovaps 128(%r9), %ymm1
12832 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12833 ; AVX-NEXT:    vmovaps 144(%r8), %xmm0
12834 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12835 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12836 ; AVX-NEXT:    vmovaps 144(%rcx), %xmm1
12837 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12838 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12839 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12840 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12841 ; AVX-NEXT:    vmovaps 160(%rsi), %xmm0
12842 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm1
12843 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12844 ; AVX-NEXT:    vinsertf128 $1, 160(%rcx), %ymm2, %ymm3
12845 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm4
12846 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12847 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12848 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12849 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12850 ; AVX-NEXT:    vmovaps 160(%r9), %xmm3
12851 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12852 ; AVX-NEXT:    vmovaps 160(%r8), %xmm2
12853 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12854 ; AVX-NEXT:    vmovaps 160(%rax), %xmm5
12855 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12856 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12857 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12858 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12859 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12860 ; AVX-NEXT:    vbroadcastsd 168(%rcx), %ymm1
12861 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12862 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12863 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12864 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12865 ; AVX-NEXT:    vmovaps 160(%rsi), %ymm1
12866 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12867 ; AVX-NEXT:    vmovaps 176(%rdi), %xmm0
12868 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12869 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12870 ; AVX-NEXT:    vmovaps 176(%rax), %xmm1
12871 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12872 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12873 ; AVX-NEXT:    vmovaps 160(%r9), %ymm1
12874 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12875 ; AVX-NEXT:    vmovaps 176(%r8), %xmm0
12876 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12877 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12878 ; AVX-NEXT:    vmovaps 176(%rcx), %xmm1
12879 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12880 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12881 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12882 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12883 ; AVX-NEXT:    vmovaps 192(%r9), %xmm1
12884 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12885 ; AVX-NEXT:    vmovaps 192(%r8), %xmm0
12886 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12887 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm2
12888 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12889 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12890 ; AVX-NEXT:    vmovaps 192(%rax), %xmm3
12891 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12892 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12893 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12894 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12895 ; AVX-NEXT:    vmovaps 192(%rdx), %ymm1
12896 ; AVX-NEXT:    vbroadcastsd 200(%rcx), %ymm2
12897 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12898 ; AVX-NEXT:    vmovaps 192(%rsi), %xmm3
12899 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12900 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12901 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12902 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12903 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12904 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12905 ; AVX-NEXT:    vmovaps 192(%rsi), %ymm2
12906 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12907 ; AVX-NEXT:    vmovaps 208(%rdi), %xmm0
12908 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12909 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12910 ; AVX-NEXT:    vmovaps 208(%rax), %xmm1
12911 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12912 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12913 ; AVX-NEXT:    vmovaps 192(%r9), %ymm1
12914 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12915 ; AVX-NEXT:    vmovaps 208(%r8), %xmm0
12916 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12917 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12918 ; AVX-NEXT:    vmovaps 208(%rcx), %xmm1
12919 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12920 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12921 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12922 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12923 ; AVX-NEXT:    vmovaps 224(%rsi), %xmm0
12924 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm1
12925 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12926 ; AVX-NEXT:    vinsertf128 $1, 224(%rcx), %ymm2, %ymm3
12927 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm4
12928 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12929 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12930 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12931 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12932 ; AVX-NEXT:    vmovaps 224(%r9), %xmm3
12933 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12934 ; AVX-NEXT:    vmovaps 224(%r8), %xmm2
12935 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12936 ; AVX-NEXT:    vmovaps 224(%rax), %xmm5
12937 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12938 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12939 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12940 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12941 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12942 ; AVX-NEXT:    vbroadcastsd 232(%rcx), %ymm1
12943 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12944 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12945 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12946 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12947 ; AVX-NEXT:    vmovaps 224(%rsi), %ymm1
12948 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12949 ; AVX-NEXT:    vmovaps 240(%rdi), %xmm0
12950 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12951 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12952 ; AVX-NEXT:    vmovaps 240(%rax), %xmm1
12953 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12954 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12955 ; AVX-NEXT:    vmovaps 224(%r9), %ymm1
12956 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12957 ; AVX-NEXT:    vmovaps 240(%r8), %xmm0
12958 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12959 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12960 ; AVX-NEXT:    vmovaps 240(%rcx), %xmm1
12961 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12962 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12963 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12964 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12965 ; AVX-NEXT:    vmovaps 256(%r9), %xmm1
12966 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12967 ; AVX-NEXT:    vmovaps 256(%r8), %xmm0
12968 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12969 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm2
12970 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12971 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12972 ; AVX-NEXT:    vmovaps 256(%rax), %xmm3
12973 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12974 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12975 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12976 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12977 ; AVX-NEXT:    vmovaps 256(%rdx), %ymm1
12978 ; AVX-NEXT:    vbroadcastsd 264(%rcx), %ymm2
12979 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12980 ; AVX-NEXT:    vmovaps 256(%rsi), %xmm3
12981 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12982 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12983 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12984 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12985 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12986 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12987 ; AVX-NEXT:    vmovaps 256(%rsi), %ymm2
12988 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12989 ; AVX-NEXT:    vmovaps 272(%rdi), %xmm0
12990 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12991 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12992 ; AVX-NEXT:    vmovaps 272(%rax), %xmm1
12993 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12994 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12995 ; AVX-NEXT:    vmovaps 256(%r9), %ymm1
12996 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12997 ; AVX-NEXT:    vmovaps 272(%r8), %xmm0
12998 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12999 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13000 ; AVX-NEXT:    vmovaps 272(%rcx), %xmm1
13001 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13002 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13003 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13004 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13005 ; AVX-NEXT:    vmovaps 288(%rsi), %xmm0
13006 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm1
13007 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
13008 ; AVX-NEXT:    vinsertf128 $1, 288(%rcx), %ymm2, %ymm3
13009 ; AVX-NEXT:    vmovaps 288(%rdx), %xmm4
13010 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13011 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
13012 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13013 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13014 ; AVX-NEXT:    vmovaps 288(%r9), %xmm3
13015 ; AVX-NEXT:    vmovaps %xmm3, (%rsp) # 16-byte Spill
13016 ; AVX-NEXT:    vmovaps 288(%r8), %xmm2
13017 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
13018 ; AVX-NEXT:    vmovaps 288(%rax), %xmm5
13019 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13020 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
13021 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
13022 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13023 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13024 ; AVX-NEXT:    vbroadcastsd 296(%rcx), %ymm1
13025 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13026 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
13027 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13028 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13029 ; AVX-NEXT:    vmovaps 288(%rsi), %ymm1
13030 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13031 ; AVX-NEXT:    vmovaps 304(%rdi), %xmm0
13032 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13033 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13034 ; AVX-NEXT:    vmovaps 304(%rax), %xmm1
13035 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13036 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13037 ; AVX-NEXT:    vmovaps 288(%r9), %ymm1
13038 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13039 ; AVX-NEXT:    vmovaps 304(%r8), %xmm0
13040 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13041 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13042 ; AVX-NEXT:    vmovaps 304(%rcx), %xmm1
13043 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13044 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13045 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13046 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13047 ; AVX-NEXT:    vmovaps 320(%r9), %xmm1
13048 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13049 ; AVX-NEXT:    vmovaps 320(%r8), %xmm0
13050 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
13051 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm2
13052 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13053 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
13054 ; AVX-NEXT:    vmovaps 320(%rax), %xmm3
13055 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13056 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
13057 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
13058 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13059 ; AVX-NEXT:    vmovaps 320(%rdx), %ymm1
13060 ; AVX-NEXT:    vbroadcastsd 328(%rcx), %ymm2
13061 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13062 ; AVX-NEXT:    vmovaps 320(%rsi), %xmm3
13063 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13064 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
13065 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
13066 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13067 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13068 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13069 ; AVX-NEXT:    vmovaps 320(%rsi), %ymm2
13070 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13071 ; AVX-NEXT:    vmovaps 336(%rdi), %xmm0
13072 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
13073 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13074 ; AVX-NEXT:    vmovaps 336(%rax), %xmm1
13075 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13076 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13077 ; AVX-NEXT:    vmovaps 320(%r9), %ymm1
13078 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13079 ; AVX-NEXT:    vmovaps 336(%r8), %xmm0
13080 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13081 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13082 ; AVX-NEXT:    vmovaps 336(%rcx), %xmm1
13083 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13084 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13085 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13086 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13087 ; AVX-NEXT:    vmovaps 352(%rsi), %xmm0
13088 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm1
13089 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
13090 ; AVX-NEXT:    vinsertf128 $1, 352(%rcx), %ymm2, %ymm3
13091 ; AVX-NEXT:    vmovaps 352(%rdx), %xmm4
13092 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13093 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
13094 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13095 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13096 ; AVX-NEXT:    vmovaps 352(%r9), %xmm3
13097 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13098 ; AVX-NEXT:    vmovaps 352(%r8), %xmm2
13099 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
13100 ; AVX-NEXT:    vmovaps 352(%rax), %xmm5
13101 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13102 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
13103 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
13104 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13105 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13106 ; AVX-NEXT:    vbroadcastsd 360(%rcx), %ymm1
13107 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13108 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
13109 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13110 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13111 ; AVX-NEXT:    vmovaps 352(%rsi), %ymm15
13112 ; AVX-NEXT:    vmovaps 368(%rdi), %xmm0
13113 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]
13114 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13115 ; AVX-NEXT:    vmovaps 368(%rax), %xmm1
13116 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13117 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13118 ; AVX-NEXT:    vmovaps 352(%r9), %ymm14
13119 ; AVX-NEXT:    vmovaps 368(%r8), %xmm0
13120 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm14[1],ymm0[1],ymm14[3],ymm0[3]
13121 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13122 ; AVX-NEXT:    vmovaps 368(%rcx), %xmm12
13123 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[2,3,2,3]
13124 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13125 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13126 ; AVX-NEXT:    vmovaps 384(%r9), %xmm13
13127 ; AVX-NEXT:    vmovaps 384(%r8), %xmm0
13128 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm13[0]
13129 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm2
13130 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13131 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
13132 ; AVX-NEXT:    vmovaps 384(%rax), %xmm11
13133 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm1, %ymm1
13134 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
13135 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13136 ; AVX-NEXT:    vmovaps 384(%rdx), %ymm1
13137 ; AVX-NEXT:    vbroadcastsd 392(%rcx), %ymm2
13138 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13139 ; AVX-NEXT:    vmovaps 384(%rsi), %xmm3
13140 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13141 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
13142 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
13143 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13144 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13145 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13146 ; AVX-NEXT:    vmovaps 384(%rsi), %ymm10
13147 ; AVX-NEXT:    vmovaps 400(%rdi), %xmm0
13148 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
13149 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13150 ; AVX-NEXT:    vmovaps 400(%rax), %xmm1
13151 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13152 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13153 ; AVX-NEXT:    vmovaps 384(%r9), %ymm9
13154 ; AVX-NEXT:    vmovaps 400(%r8), %xmm0
13155 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm9[1],ymm0[1],ymm9[3],ymm0[3]
13156 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13157 ; AVX-NEXT:    vmovaps 400(%rcx), %xmm8
13158 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm8[2,3,2,3]
13159 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13160 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13161 ; AVX-NEXT:    vmovaps 416(%rsi), %xmm5
13162 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm0
13163 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm5[0]
13164 ; AVX-NEXT:    vinsertf128 $1, 416(%rcx), %ymm1, %ymm6
13165 ; AVX-NEXT:    vmovaps 416(%rdx), %xmm2
13166 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13167 ; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm6[1],ymm1[2],ymm6[2]
13168 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13169 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm6
13170 ; AVX-NEXT:    vmovapd 416(%r9), %xmm7
13171 ; AVX-NEXT:    vmovapd 416(%r8), %xmm0
13172 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],xmm7[0]
13173 ; AVX-NEXT:    vmovapd 416(%rax), %xmm4
13174 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
13175 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm6[6,7]
13176 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13177 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm5[1],xmm2[1]
13178 ; AVX-NEXT:    vbroadcastsd 424(%rcx), %ymm2
13179 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13180 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13181 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13182 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13183 ; AVX-NEXT:    vmovaps 448(%rsi), %xmm0
13184 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13185 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
13186 ; AVX-NEXT:    vbroadcastsd 456(%rcx), %ymm1
13187 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
13188 ; AVX-NEXT:    vmovapd 448(%rdx), %ymm5
13189 ; AVX-NEXT:    vinsertf128 $1, 448(%r8), %ymm5, %ymm1
13190 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
13191 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13192 ; AVX-NEXT:    vmovaps 480(%rsi), %xmm2
13193 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm6
13194 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm6[0],xmm2[0]
13195 ; AVX-NEXT:    vinsertf128 $1, 480(%rcx), %ymm1, %ymm3
13196 ; AVX-NEXT:    vmovaps 480(%rdx), %xmm0
13197 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm1
13198 ; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[2]
13199 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13200 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]
13201 ; AVX-NEXT:    vbroadcastsd 488(%rcx), %ymm2
13202 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13203 ; AVX-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm0
13204 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
13205 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13206 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
13207 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13208 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13209 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13210 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13211 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13212 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13213 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13214 ; AVX-NEXT:    vmovaps (%r8), %ymm0
13215 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13216 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13217 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm1
13218 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13219 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13220 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13221 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13222 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
13223 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13224 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13225 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13226 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13227 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13228 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13229 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13230 ; AVX-NEXT:    vmovaps 32(%r8), %ymm0
13231 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13232 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13233 ; AVX-NEXT:    vmovaps 48(%rdx), %xmm1
13234 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13235 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13236 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13237 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13238 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm0
13239 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13240 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13241 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13242 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13243 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13244 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13245 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13246 ; AVX-NEXT:    vmovaps 64(%r8), %ymm0
13247 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13248 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13249 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm1
13250 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13251 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13252 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13253 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13254 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm0
13255 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13256 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13257 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13258 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13259 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13260 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13261 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13262 ; AVX-NEXT:    vmovaps 96(%r8), %ymm0
13263 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13264 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13265 ; AVX-NEXT:    vmovaps 112(%rdx), %xmm1
13266 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13267 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13268 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13269 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13270 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm0
13271 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13272 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13273 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13274 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13275 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13276 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13277 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13278 ; AVX-NEXT:    vmovaps 128(%r8), %ymm0
13279 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13280 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13281 ; AVX-NEXT:    vmovaps 144(%rdx), %xmm1
13282 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13283 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13284 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13285 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13286 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm0
13287 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13288 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13289 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13290 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13291 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13292 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13293 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13294 ; AVX-NEXT:    vmovaps 160(%r8), %ymm0
13295 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13296 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13297 ; AVX-NEXT:    vmovaps 176(%rdx), %xmm1
13298 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13299 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13300 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13301 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13302 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm0
13303 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13304 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13305 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13306 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13307 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13308 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13309 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13310 ; AVX-NEXT:    vmovaps 192(%r8), %ymm0
13311 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13312 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13313 ; AVX-NEXT:    vmovaps 208(%rdx), %xmm1
13314 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13315 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13316 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13317 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13318 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm0
13319 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13320 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13321 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13322 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13323 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13324 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13325 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13326 ; AVX-NEXT:    vmovaps 224(%r8), %ymm0
13327 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13328 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13329 ; AVX-NEXT:    vmovaps 240(%rdx), %xmm1
13330 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13331 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13332 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13333 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13334 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm0
13335 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13336 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13337 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13338 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13339 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13340 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13341 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13342 ; AVX-NEXT:    vmovaps 256(%r8), %ymm0
13343 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13344 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13345 ; AVX-NEXT:    vmovaps 272(%rdx), %xmm1
13346 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13347 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13348 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13349 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13350 ; AVX-NEXT:    vmovaps 288(%rdi), %ymm0
13351 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13352 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13353 ; AVX-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
13354 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13355 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13356 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13357 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13358 ; AVX-NEXT:    vmovaps 288(%r8), %ymm0
13359 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13360 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13361 ; AVX-NEXT:    vmovaps 304(%rdx), %xmm1
13362 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13363 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13364 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13365 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13366 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm0
13367 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13368 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13369 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13370 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13371 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13372 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13373 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13374 ; AVX-NEXT:    vmovaps 320(%r8), %ymm0
13375 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13376 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13377 ; AVX-NEXT:    vmovaps 336(%rdx), %xmm1
13378 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13379 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13380 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13381 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13382 ; AVX-NEXT:    vmovaps 352(%rdi), %ymm0
13383 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm15[0],ymm0[2],ymm15[2]
13384 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13385 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13386 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13387 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13388 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13389 ; AVX-NEXT:    vmovaps 352(%r8), %ymm0
13390 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm14[0],ymm0[2],ymm14[2]
13391 ; AVX-NEXT:    vmovaps 368(%rdx), %xmm1
13392 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm12[0]
13393 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13394 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13395 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm0
13396 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
13397 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm13[1],xmm11[1]
13398 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13399 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13400 ; AVX-NEXT:    vmovaps 384(%r8), %ymm0
13401 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm9[0],ymm0[2],ymm9[2]
13402 ; AVX-NEXT:    vmovaps 400(%rdx), %xmm1
13403 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm8[0]
13404 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13405 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13406 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm7[1],xmm4[1]
13407 ; AVX-NEXT:    vmovapd 416(%rdi), %ymm1
13408 ; AVX-NEXT:    vmovapd 416(%rsi), %ymm2
13409 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13410 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
13411 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13412 ; AVX-NEXT:    vmovapd 416(%r8), %ymm0
13413 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13414 ; AVX-NEXT:    vmovapd 432(%rcx), %xmm1
13415 ; AVX-NEXT:    vmovapd 432(%rdx), %xmm3
13416 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],xmm1[0]
13417 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
13418 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13419 ; AVX-NEXT:    vmovapd 432(%rdi), %xmm0
13420 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],mem[2,3]
13421 ; AVX-NEXT:    vshufpd {{.*#+}} ymm3 = ymm2[0,0,3,2]
13422 ; AVX-NEXT:    vmovapd 416(%rax), %ymm2
13423 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[2,3],ymm3[2,3]
13424 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0],ymm0[1],ymm3[2],ymm0[3]
13425 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13426 ; AVX-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13427 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm4
13428 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm3
13429 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3],ymm3[4,5,6,7]
13430 ; AVX-NEXT:    vmovapd 448(%r8), %ymm3
13431 ; AVX-NEXT:    vinsertf128 $1, 448(%rax), %ymm3, %ymm7
13432 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3],ymm7[4,5],ymm0[6,7]
13433 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13434 ; AVX-NEXT:    vmovapd 448(%rdi), %ymm0
13435 ; AVX-NEXT:    vmovapd 448(%rsi), %ymm7
13436 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
13437 ; AVX-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
13438 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3]
13439 ; AVX-NEXT:    vmovapd 464(%rdi), %xmm8
13440 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm8[0,1],ymm5[2,3]
13441 ; AVX-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0,0,3,2]
13442 ; AVX-NEXT:    vmovapd 448(%rax), %ymm10
13443 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm10[2,3],ymm7[2,3]
13444 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0],ymm5[1],ymm7[2],ymm5[3]
13445 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13446 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm5
13447 ; AVX-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
13448 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3],ymm5[4,5,6,7]
13449 ; AVX-NEXT:    vmovapd 480(%r8), %ymm13
13450 ; AVX-NEXT:    vinsertf128 $1, 480(%rax), %ymm13, %ymm6
13451 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
13452 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13453 ; AVX-NEXT:    vmovapd 480(%rdi), %ymm5
13454 ; AVX-NEXT:    vmovapd 480(%rsi), %ymm6
13455 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
13456 ; AVX-NEXT:    vmovddup {{.*#+}} xmm7 = mem[0,0]
13457 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3]
13458 ; AVX-NEXT:    vmovapd 496(%rdi), %xmm7
13459 ; AVX-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],mem[2,3]
13460 ; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[0,0,3,2]
13461 ; AVX-NEXT:    vmovapd 480(%rax), %ymm15
13462 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm15[2,3],ymm6[2,3]
13463 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2],ymm7[3]
13464 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13465 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
13466 ; AVX-NEXT:    vbroadcastsd 440(%r9), %ymm6
13467 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm6[2,3]
13468 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3]
13469 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13470 ; AVX-NEXT:    vmovapd 464(%rcx), %xmm1
13471 ; AVX-NEXT:    vmovapd 464(%rdx), %xmm2
13472 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],xmm1[0]
13473 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
13474 ; AVX-NEXT:    vbroadcastsd 464(%r9), %ymm3
13475 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3]
13476 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13477 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
13478 ; AVX-NEXT:    vbroadcastsd 472(%r9), %ymm2
13479 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
13480 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0],ymm10[1],ymm0[2,3]
13481 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13482 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm10[3]
13483 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13484 ; AVX-NEXT:    vmovapd 496(%rcx), %xmm0
13485 ; AVX-NEXT:    vmovapd 496(%rdx), %xmm1
13486 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
13487 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm13[2,3]
13488 ; AVX-NEXT:    vbroadcastsd 496(%r9), %ymm2
13489 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3]
13490 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13491 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],mem[1]
13492 ; AVX-NEXT:    vbroadcastsd 504(%r9), %ymm1
13493 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
13494 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0],ymm15[1],ymm5[2,3]
13495 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13496 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3]
13497 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13498 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13499 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload
13500 ; AVX-NEXT:    # xmm7 = xmm0[0],mem[0]
13501 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13502 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
13503 ; AVX-NEXT:    # xmm6 = xmm0[0],mem[0]
13504 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13505 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
13506 ; AVX-NEXT:    # xmm5 = xmm0[0],mem[0]
13507 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13508 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
13509 ; AVX-NEXT:    # xmm3 = xmm0[0],mem[0]
13510 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13511 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
13512 ; AVX-NEXT:    # xmm2 = xmm0[0],mem[0]
13513 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
13514 ; AVX-NEXT:    # xmm4 = xmm4[0],mem[0]
13515 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13516 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13517 ; AVX-NEXT:    # xmm1 = xmm0[0],mem[0]
13518 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13519 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13520 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
13521 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13522 ; AVX-NEXT:    vmovaps 256(%rdx), %xmm14
13523 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
13524 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm10
13525 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
13526 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm12
13527 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
13528 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm13
13529 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
13530 ; AVX-NEXT:    vmovaps 320(%rdx), %xmm15
13531 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
13532 ; AVX-NEXT:    vmovaps 448(%rdx), %xmm11
13533 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
13534 ; AVX-NEXT:    vmovaps 384(%rdx), %xmm9
13535 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
13536 ; AVX-NEXT:    vmovaps (%rdx), %xmm8
13537 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
13538 ; AVX-NEXT:    vmovaps %xmm8, 16(%rax)
13539 ; AVX-NEXT:    vmovaps %xmm0, (%rax)
13540 ; AVX-NEXT:    vmovaps %xmm9, 2704(%rax)
13541 ; AVX-NEXT:    vmovaps %xmm1, 2688(%rax)
13542 ; AVX-NEXT:    vmovaps %xmm11, 3152(%rax)
13543 ; AVX-NEXT:    vmovaps %xmm4, 3136(%rax)
13544 ; AVX-NEXT:    vmovaps %xmm15, 2256(%rax)
13545 ; AVX-NEXT:    vmovaps %xmm2, 2240(%rax)
13546 ; AVX-NEXT:    vmovaps %xmm13, 1360(%rax)
13547 ; AVX-NEXT:    vmovaps %xmm3, 1344(%rax)
13548 ; AVX-NEXT:    vmovaps %xmm12, 464(%rax)
13549 ; AVX-NEXT:    vmovaps %xmm5, 448(%rax)
13550 ; AVX-NEXT:    vmovaps %xmm10, 912(%rax)
13551 ; AVX-NEXT:    vmovaps %xmm6, 896(%rax)
13552 ; AVX-NEXT:    vmovaps %xmm14, 1808(%rax)
13553 ; AVX-NEXT:    vmovaps %xmm7, 1792(%rax)
13554 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13555 ; AVX-NEXT:    vmovaps %ymm0, 3520(%rax)
13556 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13557 ; AVX-NEXT:    vmovaps %ymm0, 3456(%rax)
13558 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13559 ; AVX-NEXT:    vmovaps %ymm0, 3392(%rax)
13560 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13561 ; AVX-NEXT:    vmovaps %ymm0, 3296(%rax)
13562 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13563 ; AVX-NEXT:    vmovaps %ymm0, 3232(%rax)
13564 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13565 ; AVX-NEXT:    vmovaps %ymm0, 3168(%rax)
13566 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13567 ; AVX-NEXT:    vmovaps %ymm0, 3072(%rax)
13568 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13569 ; AVX-NEXT:    vmovaps %ymm0, 3040(%rax)
13570 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13571 ; AVX-NEXT:    vmovaps %ymm0, 3008(%rax)
13572 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13573 ; AVX-NEXT:    vmovaps %ymm0, 2816(%rax)
13574 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13575 ; AVX-NEXT:    vmovaps %ymm0, 2784(%rax)
13576 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13577 ; AVX-NEXT:    vmovaps %ymm0, 2592(%rax)
13578 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13579 ; AVX-NEXT:    vmovaps %ymm0, 2560(%rax)
13580 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13581 ; AVX-NEXT:    vmovaps %ymm0, 2368(%rax)
13582 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13583 ; AVX-NEXT:    vmovaps %ymm0, 2336(%rax)
13584 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13585 ; AVX-NEXT:    vmovaps %ymm0, 2144(%rax)
13586 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13587 ; AVX-NEXT:    vmovaps %ymm0, 2112(%rax)
13588 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13589 ; AVX-NEXT:    vmovaps %ymm0, 1920(%rax)
13590 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13591 ; AVX-NEXT:    vmovaps %ymm0, 1888(%rax)
13592 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13593 ; AVX-NEXT:    vmovaps %ymm0, 1696(%rax)
13594 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13595 ; AVX-NEXT:    vmovaps %ymm0, 1664(%rax)
13596 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13597 ; AVX-NEXT:    vmovaps %ymm0, 1472(%rax)
13598 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13599 ; AVX-NEXT:    vmovaps %ymm0, 1440(%rax)
13600 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13601 ; AVX-NEXT:    vmovaps %ymm0, 1248(%rax)
13602 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13603 ; AVX-NEXT:    vmovaps %ymm0, 1216(%rax)
13604 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13605 ; AVX-NEXT:    vmovaps %ymm0, 1024(%rax)
13606 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13607 ; AVX-NEXT:    vmovaps %ymm0, 992(%rax)
13608 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13609 ; AVX-NEXT:    vmovaps %ymm0, 800(%rax)
13610 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13611 ; AVX-NEXT:    vmovaps %ymm0, 768(%rax)
13612 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13613 ; AVX-NEXT:    vmovaps %ymm0, 576(%rax)
13614 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13615 ; AVX-NEXT:    vmovaps %ymm0, 544(%rax)
13616 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13617 ; AVX-NEXT:    vmovaps %ymm0, 352(%rax)
13618 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13619 ; AVX-NEXT:    vmovaps %ymm0, 320(%rax)
13620 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13621 ; AVX-NEXT:    vmovaps %ymm0, 128(%rax)
13622 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13623 ; AVX-NEXT:    vmovaps %ymm0, 96(%rax)
13624 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13625 ; AVX-NEXT:    vmovaps %ymm0, 3552(%rax)
13626 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13627 ; AVX-NEXT:    vmovaps %ymm0, 3488(%rax)
13628 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13629 ; AVX-NEXT:    vmovaps %ymm0, 3424(%rax)
13630 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13631 ; AVX-NEXT:    vmovaps %ymm0, 3360(%rax)
13632 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13633 ; AVX-NEXT:    vmovaps %ymm0, 3328(%rax)
13634 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13635 ; AVX-NEXT:    vmovaps %ymm0, 3264(%rax)
13636 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13637 ; AVX-NEXT:    vmovaps %ymm0, 3200(%rax)
13638 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13639 ; AVX-NEXT:    vmovaps %ymm0, 3104(%rax)
13640 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13641 ; AVX-NEXT:    vmovaps %ymm0, 2976(%rax)
13642 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13643 ; AVX-NEXT:    vmovaps %ymm0, 2944(%rax)
13644 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13645 ; AVX-NEXT:    vmovaps %ymm0, 2912(%rax)
13646 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13647 ; AVX-NEXT:    vmovaps %ymm0, 2880(%rax)
13648 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13649 ; AVX-NEXT:    vmovaps %ymm0, 2848(%rax)
13650 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13651 ; AVX-NEXT:    vmovaps %ymm0, 2752(%rax)
13652 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13653 ; AVX-NEXT:    vmovaps %ymm0, 2720(%rax)
13654 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13655 ; AVX-NEXT:    vmovaps %ymm0, 2656(%rax)
13656 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13657 ; AVX-NEXT:    vmovaps %ymm0, 2624(%rax)
13658 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13659 ; AVX-NEXT:    vmovaps %ymm0, 2528(%rax)
13660 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13661 ; AVX-NEXT:    vmovaps %ymm0, 2496(%rax)
13662 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13663 ; AVX-NEXT:    vmovaps %ymm0, 2464(%rax)
13664 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13665 ; AVX-NEXT:    vmovaps %ymm0, 2432(%rax)
13666 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13667 ; AVX-NEXT:    vmovaps %ymm0, 2400(%rax)
13668 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13669 ; AVX-NEXT:    vmovaps %ymm0, 2304(%rax)
13670 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13671 ; AVX-NEXT:    vmovaps %ymm0, 2272(%rax)
13672 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13673 ; AVX-NEXT:    vmovaps %ymm0, 2208(%rax)
13674 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13675 ; AVX-NEXT:    vmovaps %ymm0, 2176(%rax)
13676 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13677 ; AVX-NEXT:    vmovaps %ymm0, 2080(%rax)
13678 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13679 ; AVX-NEXT:    vmovaps %ymm0, 2048(%rax)
13680 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13681 ; AVX-NEXT:    vmovaps %ymm0, 2016(%rax)
13682 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13683 ; AVX-NEXT:    vmovaps %ymm0, 1984(%rax)
13684 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13685 ; AVX-NEXT:    vmovaps %ymm0, 1952(%rax)
13686 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13687 ; AVX-NEXT:    vmovaps %ymm0, 1856(%rax)
13688 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13689 ; AVX-NEXT:    vmovaps %ymm0, 1824(%rax)
13690 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13691 ; AVX-NEXT:    vmovaps %ymm0, 1760(%rax)
13692 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13693 ; AVX-NEXT:    vmovaps %ymm0, 1728(%rax)
13694 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13695 ; AVX-NEXT:    vmovaps %ymm0, 1632(%rax)
13696 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13697 ; AVX-NEXT:    vmovaps %ymm0, 1600(%rax)
13698 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13699 ; AVX-NEXT:    vmovaps %ymm0, 1568(%rax)
13700 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13701 ; AVX-NEXT:    vmovaps %ymm0, 1536(%rax)
13702 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13703 ; AVX-NEXT:    vmovaps %ymm0, 1504(%rax)
13704 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13705 ; AVX-NEXT:    vmovaps %ymm0, 1408(%rax)
13706 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13707 ; AVX-NEXT:    vmovaps %ymm0, 1376(%rax)
13708 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13709 ; AVX-NEXT:    vmovaps %ymm0, 1312(%rax)
13710 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13711 ; AVX-NEXT:    vmovaps %ymm0, 1280(%rax)
13712 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13713 ; AVX-NEXT:    vmovaps %ymm0, 1184(%rax)
13714 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13715 ; AVX-NEXT:    vmovaps %ymm0, 1152(%rax)
13716 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13717 ; AVX-NEXT:    vmovaps %ymm0, 1120(%rax)
13718 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13719 ; AVX-NEXT:    vmovaps %ymm0, 1088(%rax)
13720 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13721 ; AVX-NEXT:    vmovaps %ymm0, 1056(%rax)
13722 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13723 ; AVX-NEXT:    vmovaps %ymm0, 960(%rax)
13724 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13725 ; AVX-NEXT:    vmovaps %ymm0, 928(%rax)
13726 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13727 ; AVX-NEXT:    vmovaps %ymm0, 864(%rax)
13728 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13729 ; AVX-NEXT:    vmovaps %ymm0, 832(%rax)
13730 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13731 ; AVX-NEXT:    vmovaps %ymm0, 736(%rax)
13732 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13733 ; AVX-NEXT:    vmovaps %ymm0, 704(%rax)
13734 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13735 ; AVX-NEXT:    vmovaps %ymm0, 672(%rax)
13736 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13737 ; AVX-NEXT:    vmovaps %ymm0, 640(%rax)
13738 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13739 ; AVX-NEXT:    vmovaps %ymm0, 608(%rax)
13740 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13741 ; AVX-NEXT:    vmovaps %ymm0, 512(%rax)
13742 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13743 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
13744 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13745 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
13746 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13747 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
13748 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13749 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
13750 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13751 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
13752 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13753 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
13754 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13755 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
13756 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13757 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
13758 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13759 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
13760 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13761 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
13762 ; AVX-NEXT:    addq $3816, %rsp # imm = 0xEE8
13763 ; AVX-NEXT:    vzeroupper
13764 ; AVX-NEXT:    retq
13766 ; AVX2-LABEL: store_i64_stride7_vf64:
13767 ; AVX2:       # %bb.0:
13768 ; AVX2-NEXT:    subq $3880, %rsp # imm = 0xF28
13769 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13770 ; AVX2-NEXT:    vmovaps (%rdi), %ymm0
13771 ; AVX2-NEXT:    vmovaps (%rsi), %ymm1
13772 ; AVX2-NEXT:    vmovaps (%rdx), %ymm2
13773 ; AVX2-NEXT:    vmovaps (%r8), %ymm5
13774 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13775 ; AVX2-NEXT:    vmovaps (%r9), %ymm6
13776 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13777 ; AVX2-NEXT:    vmovaps (%rsi), %xmm3
13778 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
13779 ; AVX2-NEXT:    vmovaps (%rdi), %xmm4
13780 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13781 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm7
13782 ; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13783 ; AVX2-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
13784 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13785 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13786 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
13787 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm4
13788 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
13789 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
13790 ; AVX2-NEXT:    vmovaps (%r8), %xmm4
13791 ; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13792 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
13793 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
13794 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13795 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
13796 ; AVX2-NEXT:    vmovaps (%rax), %xmm8
13797 ; AVX2-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
13798 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
13799 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
13800 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
13801 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13802 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
13803 ; AVX2-NEXT:    vmovaps 16(%rdx), %xmm4
13804 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
13805 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
13806 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13807 ; AVX2-NEXT:    vmovaps 16(%rax), %xmm3
13808 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm4
13809 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
13810 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
13811 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
13812 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
13813 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13814 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
13815 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm1
13816 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
13817 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13818 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13819 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13820 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm2
13821 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13822 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13823 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
13824 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm2
13825 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
13826 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13827 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13828 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13829 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13830 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13831 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1
13832 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm2
13833 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13834 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
13835 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13836 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm0
13837 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm4
13838 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13839 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm3
13840 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13841 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13842 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13843 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
13844 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13845 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
13846 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13847 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13848 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm1
13849 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13850 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13851 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm0
13852 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
13853 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm1
13854 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13855 ; AVX2-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
13856 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
13857 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13858 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm0
13859 ; AVX2-NEXT:    vbroadcastsd 72(%rcx), %ymm1
13860 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13861 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
13862 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
13863 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm2
13864 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13865 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13866 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
13867 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13868 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm2
13869 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13870 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13871 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
13872 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
13873 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm3
13874 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
13875 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
13876 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13877 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm4
13878 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13879 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm1
13880 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13881 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
13882 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13883 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
13884 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13885 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
13886 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13887 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13888 ; AVX2-NEXT:    vmovaps 80(%rax), %xmm1
13889 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13890 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13891 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm0
13892 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
13893 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm2
13894 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13895 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm3
13896 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13897 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
13898 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
13899 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13900 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm3
13901 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13902 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13903 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
13904 ; AVX2-NEXT:    vbroadcastsd 104(%rcx), %ymm3
13905 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
13906 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13907 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13908 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13909 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13910 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
13911 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
13912 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm2
13913 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13914 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
13915 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13916 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm0
13917 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm4
13918 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13919 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm3
13920 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13921 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13922 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13923 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
13924 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13925 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
13926 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13927 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13928 ; AVX2-NEXT:    vmovaps 112(%rax), %xmm1
13929 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13930 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13931 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
13932 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
13933 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
13934 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13935 ; AVX2-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
13936 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
13937 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13938 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm0
13939 ; AVX2-NEXT:    vbroadcastsd 136(%rcx), %ymm1
13940 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13941 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
13942 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
13943 ; AVX2-NEXT:    vmovaps 128(%r8), %xmm2
13944 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13945 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13946 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
13947 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13948 ; AVX2-NEXT:    vmovaps 128(%rax), %xmm2
13949 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13950 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13951 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
13952 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
13953 ; AVX2-NEXT:    vmovaps 128(%rsi), %ymm3
13954 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
13955 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
13956 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13957 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm4
13958 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13959 ; AVX2-NEXT:    vmovaps 128(%r9), %ymm1
13960 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13961 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
13962 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13963 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
13964 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13965 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
13966 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13967 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13968 ; AVX2-NEXT:    vmovaps 144(%rax), %xmm1
13969 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13970 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13971 ; AVX2-NEXT:    vmovaps 160(%r8), %xmm0
13972 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
13973 ; AVX2-NEXT:    vmovaps 160(%rax), %xmm2
13974 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13975 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm3
13976 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13977 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
13978 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
13979 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13980 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm3
13981 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13982 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13983 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
13984 ; AVX2-NEXT:    vbroadcastsd 168(%rcx), %ymm3
13985 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
13986 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13987 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13988 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13989 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13990 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
13991 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm1
13992 ; AVX2-NEXT:    vmovaps 160(%rsi), %ymm2
13993 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13994 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
13995 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13996 ; AVX2-NEXT:    vmovaps 160(%rdx), %ymm0
13997 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm4
13998 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13999 ; AVX2-NEXT:    vmovaps 160(%r9), %ymm3
14000 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14001 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14002 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14003 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14004 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14005 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14006 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14007 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14008 ; AVX2-NEXT:    vmovaps 176(%rax), %xmm1
14009 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14010 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14011 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
14012 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
14013 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm1
14014 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14015 ; AVX2-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
14016 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14017 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14018 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm0
14019 ; AVX2-NEXT:    vbroadcastsd 200(%rcx), %ymm1
14020 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14021 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14022 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14023 ; AVX2-NEXT:    vmovaps 192(%r8), %xmm2
14024 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14025 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14026 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14027 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14028 ; AVX2-NEXT:    vmovaps 192(%rax), %xmm2
14029 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14030 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14031 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14032 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
14033 ; AVX2-NEXT:    vmovaps 192(%rsi), %ymm3
14034 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14035 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14036 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14037 ; AVX2-NEXT:    vmovaps 208(%rdx), %xmm1
14038 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
14039 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm5
14040 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14041 ; AVX2-NEXT:    vmovaps 192(%r9), %ymm4
14042 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14043 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
14044 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14045 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14046 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14047 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14048 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14049 ; AVX2-NEXT:    vmovaps 208(%rax), %xmm1
14050 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14051 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14052 ; AVX2-NEXT:    vmovaps 224(%r8), %xmm0
14053 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14054 ; AVX2-NEXT:    vmovaps 224(%rax), %xmm2
14055 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14056 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm3
14057 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14058 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14059 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14060 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14061 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm3
14062 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14063 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14064 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14065 ; AVX2-NEXT:    vbroadcastsd 232(%rcx), %ymm3
14066 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14067 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14068 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14069 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14070 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14071 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14072 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm1
14073 ; AVX2-NEXT:    vmovaps 224(%rsi), %ymm2
14074 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14075 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14076 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14077 ; AVX2-NEXT:    vmovaps 224(%rdx), %ymm0
14078 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm4
14079 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14080 ; AVX2-NEXT:    vmovaps 224(%r9), %ymm3
14081 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14082 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14083 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14084 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14085 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14086 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14087 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14088 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14089 ; AVX2-NEXT:    vmovaps 240(%rax), %xmm1
14090 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14091 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14092 ; AVX2-NEXT:    vmovaps 256(%rsi), %xmm0
14093 ; AVX2-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
14094 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm1
14095 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14096 ; AVX2-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
14097 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14098 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14099 ; AVX2-NEXT:    vmovaps 256(%rdx), %ymm0
14100 ; AVX2-NEXT:    vbroadcastsd 264(%rcx), %ymm1
14101 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14102 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14103 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14104 ; AVX2-NEXT:    vmovaps 256(%r8), %xmm2
14105 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14106 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14107 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14108 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14109 ; AVX2-NEXT:    vmovaps 256(%rax), %xmm2
14110 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14111 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14112 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14113 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm2
14114 ; AVX2-NEXT:    vmovaps 256(%rsi), %ymm3
14115 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14116 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14117 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14118 ; AVX2-NEXT:    vmovaps 272(%rdx), %xmm1
14119 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
14120 ; AVX2-NEXT:    vmovaps 256(%r8), %ymm5
14121 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14122 ; AVX2-NEXT:    vmovaps 256(%r9), %ymm4
14123 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14124 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
14125 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14126 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14127 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14128 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14129 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14130 ; AVX2-NEXT:    vmovaps 272(%rax), %xmm1
14131 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14132 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14133 ; AVX2-NEXT:    vmovaps 288(%r8), %xmm0
14134 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14135 ; AVX2-NEXT:    vmovaps 288(%rax), %xmm2
14136 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14137 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm3
14138 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14139 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14140 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14141 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14142 ; AVX2-NEXT:    vmovaps 288(%rdx), %xmm3
14143 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14144 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14145 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14146 ; AVX2-NEXT:    vbroadcastsd 296(%rcx), %ymm3
14147 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14148 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14149 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14150 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14151 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14152 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14153 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm1
14154 ; AVX2-NEXT:    vmovaps 288(%rsi), %ymm2
14155 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14156 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14157 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14158 ; AVX2-NEXT:    vmovaps 288(%rdx), %ymm0
14159 ; AVX2-NEXT:    vmovaps 288(%r8), %ymm4
14160 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14161 ; AVX2-NEXT:    vmovaps 288(%r9), %ymm3
14162 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14163 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14164 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14165 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14166 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14167 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14168 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14169 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14170 ; AVX2-NEXT:    vmovaps 304(%rax), %xmm1
14171 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14172 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14173 ; AVX2-NEXT:    vmovaps 320(%rsi), %xmm0
14174 ; AVX2-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
14175 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm1
14176 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14177 ; AVX2-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
14178 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14179 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14180 ; AVX2-NEXT:    vmovaps 320(%rdx), %ymm0
14181 ; AVX2-NEXT:    vbroadcastsd 328(%rcx), %ymm1
14182 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14183 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14184 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14185 ; AVX2-NEXT:    vmovaps 320(%r8), %xmm2
14186 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14187 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14188 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14189 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14190 ; AVX2-NEXT:    vmovaps 320(%rax), %xmm10
14191 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14192 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
14193 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
14194 ; AVX2-NEXT:    vmovaps 320(%rsi), %ymm3
14195 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14196 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14197 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14198 ; AVX2-NEXT:    vmovaps 336(%rdx), %xmm1
14199 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
14200 ; AVX2-NEXT:    vmovaps 320(%r8), %ymm9
14201 ; AVX2-NEXT:    vmovaps 320(%r9), %ymm4
14202 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14203 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm9[0],ymm4[0],ymm9[2],ymm4[2]
14204 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14205 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14206 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14207 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14208 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14209 ; AVX2-NEXT:    vmovaps 336(%rax), %xmm1
14210 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14211 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14212 ; AVX2-NEXT:    vmovaps 352(%r8), %xmm0
14213 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14214 ; AVX2-NEXT:    vmovaps 352(%rax), %xmm2
14215 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14216 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm3
14217 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14218 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14219 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14220 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14221 ; AVX2-NEXT:    vmovaps 352(%rdx), %xmm7
14222 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14223 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
14224 ; AVX2-NEXT:    vbroadcastsd 360(%rcx), %ymm3
14225 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14226 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14227 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14228 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14229 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14230 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14231 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm1
14232 ; AVX2-NEXT:    vmovaps 352(%rsi), %ymm2
14233 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14234 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14235 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14236 ; AVX2-NEXT:    vmovaps 352(%rdx), %ymm0
14237 ; AVX2-NEXT:    vmovaps 352(%r8), %ymm5
14238 ; AVX2-NEXT:    vmovaps 352(%r9), %ymm3
14239 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14240 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
14241 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14242 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14243 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14244 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14245 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14246 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14247 ; AVX2-NEXT:    vmovaps 368(%rax), %xmm1
14248 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14249 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14250 ; AVX2-NEXT:    vmovaps 384(%rsi), %xmm0
14251 ; AVX2-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
14252 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm1
14253 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14254 ; AVX2-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
14255 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14256 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14257 ; AVX2-NEXT:    vmovaps 384(%rdx), %ymm0
14258 ; AVX2-NEXT:    vbroadcastsd 392(%rcx), %ymm1
14259 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14260 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14261 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14262 ; AVX2-NEXT:    vmovaps 384(%r8), %xmm2
14263 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14264 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14265 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14266 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14267 ; AVX2-NEXT:    vmovaps 384(%rax), %xmm2
14268 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14269 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14270 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14271 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm2
14272 ; AVX2-NEXT:    vmovaps 384(%rsi), %ymm3
14273 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14274 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14275 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14276 ; AVX2-NEXT:    vmovaps 400(%rdx), %xmm1
14277 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
14278 ; AVX2-NEXT:    vmovaps 384(%r8), %ymm15
14279 ; AVX2-NEXT:    vmovaps 384(%r9), %ymm4
14280 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14281 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
14282 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14283 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14284 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14285 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14286 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14287 ; AVX2-NEXT:    vmovaps 400(%rax), %xmm1
14288 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14289 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14290 ; AVX2-NEXT:    vmovaps 416(%r8), %xmm0
14291 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14292 ; AVX2-NEXT:    vmovaps 416(%rax), %xmm2
14293 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14294 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm13
14295 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
14296 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14297 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14298 ; AVX2-NEXT:    vmovaps 416(%rdx), %xmm14
14299 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14300 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
14301 ; AVX2-NEXT:    vbroadcastsd 424(%rcx), %ymm3
14302 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14303 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14304 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14305 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14306 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14307 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14308 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm1
14309 ; AVX2-NEXT:    vmovaps 416(%rsi), %ymm2
14310 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14311 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14312 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14313 ; AVX2-NEXT:    vmovaps 416(%r8), %ymm0
14314 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
14315 ; AVX2-NEXT:    vmovaps 416(%rdx), %ymm3
14316 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
14317 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
14318 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14319 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14320 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14321 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
14322 ; AVX2-NEXT:    vmovaps 432(%rax), %xmm1
14323 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14324 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14325 ; AVX2-NEXT:    vmovaps 448(%rsi), %xmm0
14326 ; AVX2-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
14327 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm1
14328 ; AVX2-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
14329 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14330 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14331 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm0
14332 ; AVX2-NEXT:    vmovaps 448(%r8), %ymm11
14333 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14334 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
14335 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
14336 ; AVX2-NEXT:    vbroadcastsd 448(%rax), %ymm2
14337 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
14338 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14339 ; AVX2-NEXT:    vmovaps 448(%rdx), %ymm2
14340 ; AVX2-NEXT:    vbroadcastsd 456(%rcx), %ymm1
14341 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
14342 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14343 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
14344 ; AVX2-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
14345 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14346 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14347 ; AVX2-NEXT:    vmovaps 448(%rsi), %ymm1
14348 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14349 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14350 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
14351 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14352 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14353 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14354 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
14355 ; AVX2-NEXT:    vmovaps 464(%rax), %xmm1
14356 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14357 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14358 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm0
14359 ; AVX2-NEXT:    vmovaps 480(%r8), %ymm12
14360 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14361 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
14362 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
14363 ; AVX2-NEXT:    vbroadcastsd 480(%rax), %ymm3
14364 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
14365 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14366 ; AVX2-NEXT:    vmovaps 480(%rdx), %xmm8
14367 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14368 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
14369 ; AVX2-NEXT:    vbroadcastsd 488(%rcx), %ymm3
14370 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14371 ; AVX2-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
14372 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14373 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14374 ; AVX2-NEXT:    vmovaps 480(%rsi), %ymm1
14375 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14376 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14377 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
14378 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14379 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14380 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14381 ; AVX2-NEXT:    vmovaps 480(%rdx), %ymm6
14382 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
14383 ; AVX2-NEXT:    vmovaps 496(%rax), %xmm1
14384 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14385 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14386 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14387 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14388 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14389 ; AVX2-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
14390 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14391 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14392 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14393 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14394 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14395 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14396 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14397 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm1
14398 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14399 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14400 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14401 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14402 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14403 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm1
14404 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14405 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14406 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14407 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14408 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14409 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14410 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14411 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm1
14412 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14413 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14414 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14415 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14416 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14417 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14418 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14419 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14420 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14421 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14422 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14423 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14424 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14425 ; AVX2-NEXT:    vbroadcastsd 88(%rcx), %ymm1
14426 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14427 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14428 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14429 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14430 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14431 ; AVX2-NEXT:    vbroadcastsd 96(%rcx), %ymm1
14432 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14433 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14434 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14435 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14436 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14437 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14438 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14439 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm1
14440 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14441 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14442 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14443 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14444 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14445 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14446 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14447 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14448 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14449 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14450 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14451 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14452 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14453 ; AVX2-NEXT:    vbroadcastsd 152(%rcx), %ymm1
14454 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14455 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14456 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14457 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14458 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14459 ; AVX2-NEXT:    vbroadcastsd 160(%rcx), %ymm1
14460 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14461 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14462 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14463 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14464 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14465 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14466 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14467 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm1
14468 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14469 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14470 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14471 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14472 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14473 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14474 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14475 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14476 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14477 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14478 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14479 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14480 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14481 ; AVX2-NEXT:    vbroadcastsd 216(%rcx), %ymm1
14482 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14483 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14484 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14485 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14486 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14487 ; AVX2-NEXT:    vbroadcastsd 224(%rcx), %ymm1
14488 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14489 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14490 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14491 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14492 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14493 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14494 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14495 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm1
14496 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14497 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14498 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14499 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14500 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14501 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14502 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14503 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14504 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14505 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14506 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14507 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14508 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14509 ; AVX2-NEXT:    vbroadcastsd 280(%rcx), %ymm1
14510 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14511 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14512 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14513 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14514 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14515 ; AVX2-NEXT:    vbroadcastsd 288(%rcx), %ymm1
14516 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14517 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14518 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14519 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14520 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14521 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14522 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14523 ; AVX2-NEXT:    vbroadcastsd 312(%rcx), %ymm1
14524 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14525 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14526 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14527 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14528 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14529 ; AVX2-NEXT:    vbroadcastsd %xmm10, %ymm1
14530 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14531 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
14532 ; AVX2-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
14533 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14534 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14535 ; AVX2-NEXT:    vbroadcastsd 344(%rcx), %ymm1
14536 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14537 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14538 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14539 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
14540 ; AVX2-NEXT:    vbroadcastsd 352(%rcx), %ymm1
14541 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14542 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
14543 ; AVX2-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
14544 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14545 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14546 ; AVX2-NEXT:    vbroadcastsd 376(%rcx), %ymm1
14547 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14548 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14549 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14550 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14551 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14552 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14553 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
14554 ; AVX2-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
14555 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14556 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14557 ; AVX2-NEXT:    vbroadcastsd 408(%rcx), %ymm15
14558 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
14559 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
14560 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
14561 ; AVX2-NEXT:    vbroadcastsd 416(%rcx), %ymm15
14562 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
14563 ; AVX2-NEXT:    vbroadcastsd 440(%rcx), %ymm15
14564 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
14565 ; AVX2-NEXT:    vbroadcastsd 440(%r9), %ymm13
14566 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
14567 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
14568 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
14569 ; AVX2-NEXT:    vbroadcastsd 464(%r9), %ymm11
14570 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
14571 ; AVX2-NEXT:    vbroadcastsd 472(%rcx), %ymm11
14572 ; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
14573 ; AVX2-NEXT:    vbroadcastsd 472(%r9), %ymm13
14574 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
14575 ; AVX2-NEXT:    vmovaps 448(%rax), %ymm0
14576 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
14577 ; AVX2-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
14578 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
14579 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm13
14580 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
14581 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
14582 ; AVX2-NEXT:    vbroadcastsd 480(%rcx), %ymm13
14583 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
14584 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
14585 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
14586 ; AVX2-NEXT:    vbroadcastsd 496(%r9), %ymm12
14587 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
14588 ; AVX2-NEXT:    vbroadcastsd 504(%rcx), %ymm12
14589 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
14590 ; AVX2-NEXT:    vbroadcastsd 504(%r9), %ymm13
14591 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
14592 ; AVX2-NEXT:    vmovaps 480(%rax), %ymm13
14593 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
14594 ; AVX2-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
14595 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
14596 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
14597 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
14598 ; AVX2-NEXT:    vmovaps %ymm12, 3552(%rcx)
14599 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
14600 ; AVX2-NEXT:    vmovaps %ymm12, 3520(%rcx)
14601 ; AVX2-NEXT:    vmovaps %ymm6, 3488(%rcx)
14602 ; AVX2-NEXT:    vmovaps %ymm0, 3456(%rcx)
14603 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14604 ; AVX2-NEXT:    vmovaps %ymm0, 3424(%rcx)
14605 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14606 ; AVX2-NEXT:    vmovaps %ymm0, 3392(%rcx)
14607 ; AVX2-NEXT:    vmovaps %ymm8, 3360(%rcx)
14608 ; AVX2-NEXT:    vmovaps %ymm1, 3328(%rcx)
14609 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14610 ; AVX2-NEXT:    vmovaps %ymm0, 3296(%rcx)
14611 ; AVX2-NEXT:    vmovaps %ymm2, 3264(%rcx)
14612 ; AVX2-NEXT:    vmovaps %ymm11, 3232(%rcx)
14613 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14614 ; AVX2-NEXT:    vmovaps %ymm0, 3200(%rcx)
14615 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14616 ; AVX2-NEXT:    vmovaps %ymm0, 3168(%rcx)
14617 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14618 ; AVX2-NEXT:    vmovaps %ymm0, 3136(%rcx)
14619 ; AVX2-NEXT:    vmovaps %ymm13, 3104(%rcx)
14620 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14621 ; AVX2-NEXT:    vmovaps %ymm0, 3072(%rcx)
14622 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14623 ; AVX2-NEXT:    vmovaps %ymm0, 3040(%rcx)
14624 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14625 ; AVX2-NEXT:    vmovaps %ymm0, 3008(%rcx)
14626 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14627 ; AVX2-NEXT:    vmovaps %ymm0, 2976(%rcx)
14628 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14629 ; AVX2-NEXT:    vmovaps %ymm0, 2944(%rcx)
14630 ; AVX2-NEXT:    vmovaps %ymm14, 2912(%rcx)
14631 ; AVX2-NEXT:    vmovaps %ymm3, 2880(%rcx)
14632 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14633 ; AVX2-NEXT:    vmovaps %ymm0, 2848(%rcx)
14634 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14635 ; AVX2-NEXT:    vmovaps %ymm0, 2816(%rcx)
14636 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14637 ; AVX2-NEXT:    vmovaps %ymm0, 2784(%rcx)
14638 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14639 ; AVX2-NEXT:    vmovaps %ymm0, 2752(%rcx)
14640 ; AVX2-NEXT:    vmovaps %ymm4, 2720(%rcx)
14641 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14642 ; AVX2-NEXT:    vmovaps %ymm0, 2688(%rcx)
14643 ; AVX2-NEXT:    vmovaps %ymm5, 2656(%rcx)
14644 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14645 ; AVX2-NEXT:    vmovaps %ymm0, 2624(%rcx)
14646 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14647 ; AVX2-NEXT:    vmovaps %ymm0, 2592(%rcx)
14648 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14649 ; AVX2-NEXT:    vmovaps %ymm0, 2560(%rcx)
14650 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14651 ; AVX2-NEXT:    vmovaps %ymm0, 2528(%rcx)
14652 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14653 ; AVX2-NEXT:    vmovaps %ymm0, 2496(%rcx)
14654 ; AVX2-NEXT:    vmovaps %ymm7, 2464(%rcx)
14655 ; AVX2-NEXT:    vmovaps %ymm9, 2432(%rcx)
14656 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14657 ; AVX2-NEXT:    vmovaps %ymm0, 2400(%rcx)
14658 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14659 ; AVX2-NEXT:    vmovaps %ymm0, 2368(%rcx)
14660 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14661 ; AVX2-NEXT:    vmovaps %ymm0, 2336(%rcx)
14662 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14663 ; AVX2-NEXT:    vmovaps %ymm0, 2304(%rcx)
14664 ; AVX2-NEXT:    vmovaps %ymm10, 2272(%rcx)
14665 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14666 ; AVX2-NEXT:    vmovaps %ymm0, 2240(%rcx)
14667 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14668 ; AVX2-NEXT:    vmovaps %ymm0, 2208(%rcx)
14669 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14670 ; AVX2-NEXT:    vmovaps %ymm0, 2176(%rcx)
14671 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14672 ; AVX2-NEXT:    vmovaps %ymm0, 2144(%rcx)
14673 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14674 ; AVX2-NEXT:    vmovaps %ymm0, 2112(%rcx)
14675 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14676 ; AVX2-NEXT:    vmovaps %ymm0, 2080(%rcx)
14677 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14678 ; AVX2-NEXT:    vmovaps %ymm0, 2048(%rcx)
14679 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14680 ; AVX2-NEXT:    vmovaps %ymm0, 2016(%rcx)
14681 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14682 ; AVX2-NEXT:    vmovaps %ymm0, 1984(%rcx)
14683 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14684 ; AVX2-NEXT:    vmovaps %ymm0, 1952(%rcx)
14685 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14686 ; AVX2-NEXT:    vmovaps %ymm0, 1920(%rcx)
14687 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14688 ; AVX2-NEXT:    vmovaps %ymm0, 1888(%rcx)
14689 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14690 ; AVX2-NEXT:    vmovaps %ymm0, 1856(%rcx)
14691 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14692 ; AVX2-NEXT:    vmovaps %ymm0, 1824(%rcx)
14693 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14694 ; AVX2-NEXT:    vmovaps %ymm0, 1792(%rcx)
14695 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14696 ; AVX2-NEXT:    vmovaps %ymm0, 1760(%rcx)
14697 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14698 ; AVX2-NEXT:    vmovaps %ymm0, 1728(%rcx)
14699 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14700 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%rcx)
14701 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14702 ; AVX2-NEXT:    vmovaps %ymm0, 1664(%rcx)
14703 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14704 ; AVX2-NEXT:    vmovaps %ymm0, 1632(%rcx)
14705 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14706 ; AVX2-NEXT:    vmovaps %ymm0, 1600(%rcx)
14707 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14708 ; AVX2-NEXT:    vmovaps %ymm0, 1568(%rcx)
14709 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14710 ; AVX2-NEXT:    vmovaps %ymm0, 1536(%rcx)
14711 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14712 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%rcx)
14713 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14714 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%rcx)
14715 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14716 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%rcx)
14717 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14718 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%rcx)
14719 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14720 ; AVX2-NEXT:    vmovaps %ymm0, 1376(%rcx)
14721 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14722 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%rcx)
14723 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14724 ; AVX2-NEXT:    vmovaps %ymm0, 1312(%rcx)
14725 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14726 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%rcx)
14727 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14728 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%rcx)
14729 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14730 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%rcx)
14731 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14732 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%rcx)
14733 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14734 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%rcx)
14735 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14736 ; AVX2-NEXT:    vmovaps %ymm0, 1120(%rcx)
14737 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14738 ; AVX2-NEXT:    vmovaps %ymm0, 1088(%rcx)
14739 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14740 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%rcx)
14741 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14742 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%rcx)
14743 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14744 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rcx)
14745 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14746 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rcx)
14747 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14748 ; AVX2-NEXT:    vmovaps %ymm0, 928(%rcx)
14749 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14750 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rcx)
14751 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14752 ; AVX2-NEXT:    vmovaps %ymm0, 864(%rcx)
14753 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14754 ; AVX2-NEXT:    vmovaps %ymm0, 832(%rcx)
14755 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14756 ; AVX2-NEXT:    vmovaps %ymm0, 800(%rcx)
14757 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14758 ; AVX2-NEXT:    vmovaps %ymm0, 768(%rcx)
14759 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14760 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rcx)
14761 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14762 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rcx)
14763 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14764 ; AVX2-NEXT:    vmovaps %ymm0, 672(%rcx)
14765 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14766 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rcx)
14767 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14768 ; AVX2-NEXT:    vmovaps %ymm0, 608(%rcx)
14769 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14770 ; AVX2-NEXT:    vmovaps %ymm0, 576(%rcx)
14771 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14772 ; AVX2-NEXT:    vmovaps %ymm0, 544(%rcx)
14773 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14774 ; AVX2-NEXT:    vmovaps %ymm0, 512(%rcx)
14775 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14776 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rcx)
14777 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14778 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rcx)
14779 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14780 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rcx)
14781 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14782 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rcx)
14783 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14784 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)
14785 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14786 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rcx)
14787 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14788 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)
14789 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14790 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)
14791 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14792 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rcx)
14793 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14794 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)
14795 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14796 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)
14797 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14798 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rcx)
14799 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14800 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)
14801 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14802 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rcx)
14803 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14804 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)
14805 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14806 ; AVX2-NEXT:    vmovaps %ymm0, (%rcx)
14807 ; AVX2-NEXT:    addq $3880, %rsp # imm = 0xF28
14808 ; AVX2-NEXT:    vzeroupper
14809 ; AVX2-NEXT:    retq
14811 ; AVX2-FP-LABEL: store_i64_stride7_vf64:
14812 ; AVX2-FP:       # %bb.0:
14813 ; AVX2-FP-NEXT:    subq $3880, %rsp # imm = 0xF28
14814 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14815 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
14816 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1
14817 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2
14818 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm5
14819 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14820 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm6
14821 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14822 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm3
14823 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
14824 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm4
14825 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14826 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
14827 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14828 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
14829 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14830 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14831 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14832 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
14833 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
14834 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
14835 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm4
14836 ; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14837 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
14838 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
14839 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14840 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14841 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm8
14842 ; AVX2-FP-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
14843 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
14844 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
14845 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
14846 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14847 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
14848 ; AVX2-FP-NEXT:    vmovaps 16(%rdx), %xmm4
14849 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
14850 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
14851 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14852 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm3
14853 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm4
14854 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14855 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14856 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
14857 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
14858 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14859 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
14860 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm1
14861 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
14862 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
14863 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
14864 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14865 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm2
14866 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14867 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14868 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14869 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm2
14870 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
14871 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14872 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14873 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14874 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14875 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
14876 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1
14877 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm2
14878 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14879 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14880 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14881 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm0
14882 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm4
14883 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14884 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm3
14885 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14886 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14887 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14888 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14889 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14890 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14891 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14892 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14893 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm1
14894 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14895 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14896 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm0
14897 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
14898 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm1
14899 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14900 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
14901 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14902 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14903 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm0
14904 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
14905 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14906 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14907 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14908 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm2
14909 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14910 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14911 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14912 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14913 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm2
14914 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14915 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14916 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14917 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
14918 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm3
14919 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14920 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14921 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14922 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm4
14923 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14924 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm1
14925 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14926 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
14927 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14928 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14929 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14930 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14931 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14932 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14933 ; AVX2-FP-NEXT:    vmovaps 80(%rax), %xmm1
14934 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14935 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14936 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm0
14937 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14938 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm2
14939 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14940 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm3
14941 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14942 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14943 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14944 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14945 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm3
14946 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14947 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14948 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14949 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
14950 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14951 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14952 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14953 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14954 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14955 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14956 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
14957 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm2
14958 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14959 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14960 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14961 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm0
14962 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm4
14963 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14964 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm3
14965 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14966 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14967 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14968 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14969 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14970 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14971 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14972 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14973 ; AVX2-FP-NEXT:    vmovaps 112(%rax), %xmm1
14974 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14975 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14976 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
14977 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
14978 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
14979 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14980 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
14981 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14982 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14983 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm0
14984 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
14985 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14986 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14987 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14988 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %xmm2
14989 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14990 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14991 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14992 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14993 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %xmm2
14994 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14995 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14996 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14997 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
14998 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm3
14999 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15000 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15001 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15002 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm4
15003 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15004 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %ymm1
15005 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15006 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15007 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15008 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15009 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15010 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15011 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15012 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15013 ; AVX2-FP-NEXT:    vmovaps 144(%rax), %xmm1
15014 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15015 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15016 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %xmm0
15017 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15018 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %xmm2
15019 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15020 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm3
15021 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15022 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15023 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15024 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15025 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm3
15026 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15027 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15028 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15029 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
15030 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15031 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15032 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15033 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15034 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15035 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15036 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm1
15037 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm2
15038 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15039 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15040 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15041 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm0
15042 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm4
15043 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15044 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %ymm3
15045 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15046 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15047 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15048 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15049 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15050 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15051 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15052 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15053 ; AVX2-FP-NEXT:    vmovaps 176(%rax), %xmm1
15054 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15055 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15056 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
15057 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
15058 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm1
15059 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15060 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
15061 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15062 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15063 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm0
15064 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
15065 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15066 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15067 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15068 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %xmm2
15069 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15070 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15071 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15072 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15073 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %xmm2
15074 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15075 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15076 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15077 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
15078 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm3
15079 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15080 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15081 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15082 ; AVX2-FP-NEXT:    vmovaps 208(%rdx), %xmm1
15083 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
15084 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm5
15085 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15086 ; AVX2-FP-NEXT:    vmovaps 192(%r9), %ymm4
15087 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15088 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
15089 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15090 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15091 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15092 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15093 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15094 ; AVX2-FP-NEXT:    vmovaps 208(%rax), %xmm1
15095 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15096 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15097 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %xmm0
15098 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15099 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %xmm2
15100 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15101 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm3
15102 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15103 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15104 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15105 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15106 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm3
15107 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15108 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15109 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15110 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rcx), %ymm3
15111 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15112 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15113 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15114 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15115 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15116 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15117 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm1
15118 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm2
15119 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15120 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15121 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15122 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm0
15123 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm4
15124 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15125 ; AVX2-FP-NEXT:    vmovaps 224(%r9), %ymm3
15126 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15127 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15128 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15129 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15130 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15131 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15132 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15133 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15134 ; AVX2-FP-NEXT:    vmovaps 240(%rax), %xmm1
15135 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15136 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15137 ; AVX2-FP-NEXT:    vmovaps 256(%rsi), %xmm0
15138 ; AVX2-FP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
15139 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm1
15140 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15141 ; AVX2-FP-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
15142 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15143 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15144 ; AVX2-FP-NEXT:    vmovaps 256(%rdx), %ymm0
15145 ; AVX2-FP-NEXT:    vbroadcastsd 264(%rcx), %ymm1
15146 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15147 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15148 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15149 ; AVX2-FP-NEXT:    vmovaps 256(%r8), %xmm2
15150 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15151 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15152 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15153 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15154 ; AVX2-FP-NEXT:    vmovaps 256(%rax), %xmm2
15155 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15156 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15157 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15158 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm2
15159 ; AVX2-FP-NEXT:    vmovaps 256(%rsi), %ymm3
15160 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15161 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15162 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15163 ; AVX2-FP-NEXT:    vmovaps 272(%rdx), %xmm1
15164 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
15165 ; AVX2-FP-NEXT:    vmovaps 256(%r8), %ymm5
15166 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15167 ; AVX2-FP-NEXT:    vmovaps 256(%r9), %ymm4
15168 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15169 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
15170 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15171 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15172 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15173 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15174 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15175 ; AVX2-FP-NEXT:    vmovaps 272(%rax), %xmm1
15176 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15177 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15178 ; AVX2-FP-NEXT:    vmovaps 288(%r8), %xmm0
15179 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15180 ; AVX2-FP-NEXT:    vmovaps 288(%rax), %xmm2
15181 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15182 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm3
15183 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15184 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15185 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15186 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15187 ; AVX2-FP-NEXT:    vmovaps 288(%rdx), %xmm3
15188 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15189 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15190 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15191 ; AVX2-FP-NEXT:    vbroadcastsd 296(%rcx), %ymm3
15192 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15193 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15194 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15195 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15196 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15197 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15198 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm1
15199 ; AVX2-FP-NEXT:    vmovaps 288(%rsi), %ymm2
15200 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15201 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15202 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15203 ; AVX2-FP-NEXT:    vmovaps 288(%rdx), %ymm0
15204 ; AVX2-FP-NEXT:    vmovaps 288(%r8), %ymm4
15205 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15206 ; AVX2-FP-NEXT:    vmovaps 288(%r9), %ymm3
15207 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15208 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15209 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15210 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15211 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15212 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15213 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15214 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15215 ; AVX2-FP-NEXT:    vmovaps 304(%rax), %xmm1
15216 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15217 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15218 ; AVX2-FP-NEXT:    vmovaps 320(%rsi), %xmm0
15219 ; AVX2-FP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
15220 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm1
15221 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15222 ; AVX2-FP-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
15223 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15224 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15225 ; AVX2-FP-NEXT:    vmovaps 320(%rdx), %ymm0
15226 ; AVX2-FP-NEXT:    vbroadcastsd 328(%rcx), %ymm1
15227 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15228 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15229 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15230 ; AVX2-FP-NEXT:    vmovaps 320(%r8), %xmm2
15231 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15232 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15233 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15234 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15235 ; AVX2-FP-NEXT:    vmovaps 320(%rax), %xmm10
15236 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15237 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
15238 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
15239 ; AVX2-FP-NEXT:    vmovaps 320(%rsi), %ymm3
15240 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15241 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15242 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15243 ; AVX2-FP-NEXT:    vmovaps 336(%rdx), %xmm1
15244 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
15245 ; AVX2-FP-NEXT:    vmovaps 320(%r8), %ymm9
15246 ; AVX2-FP-NEXT:    vmovaps 320(%r9), %ymm4
15247 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15248 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm9[0],ymm4[0],ymm9[2],ymm4[2]
15249 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15250 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15251 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15252 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15254 ; AVX2-FP-NEXT:    vmovaps 336(%rax), %xmm1
15255 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15256 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15257 ; AVX2-FP-NEXT:    vmovaps 352(%r8), %xmm0
15258 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15259 ; AVX2-FP-NEXT:    vmovaps 352(%rax), %xmm2
15260 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15261 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm3
15262 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15263 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15264 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15265 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15266 ; AVX2-FP-NEXT:    vmovaps 352(%rdx), %xmm7
15267 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15268 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
15269 ; AVX2-FP-NEXT:    vbroadcastsd 360(%rcx), %ymm3
15270 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15271 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15272 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15273 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15274 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15275 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15276 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm1
15277 ; AVX2-FP-NEXT:    vmovaps 352(%rsi), %ymm2
15278 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15279 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15280 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15281 ; AVX2-FP-NEXT:    vmovaps 352(%rdx), %ymm0
15282 ; AVX2-FP-NEXT:    vmovaps 352(%r8), %ymm5
15283 ; AVX2-FP-NEXT:    vmovaps 352(%r9), %ymm3
15284 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15285 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
15286 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15287 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15288 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15289 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15290 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15291 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15292 ; AVX2-FP-NEXT:    vmovaps 368(%rax), %xmm1
15293 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15294 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15295 ; AVX2-FP-NEXT:    vmovaps 384(%rsi), %xmm0
15296 ; AVX2-FP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
15297 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm1
15298 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15299 ; AVX2-FP-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
15300 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15301 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15302 ; AVX2-FP-NEXT:    vmovaps 384(%rdx), %ymm0
15303 ; AVX2-FP-NEXT:    vbroadcastsd 392(%rcx), %ymm1
15304 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15305 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15306 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15307 ; AVX2-FP-NEXT:    vmovaps 384(%r8), %xmm2
15308 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15309 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15310 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15311 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15312 ; AVX2-FP-NEXT:    vmovaps 384(%rax), %xmm2
15313 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15314 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15315 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15316 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm2
15317 ; AVX2-FP-NEXT:    vmovaps 384(%rsi), %ymm3
15318 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15319 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15320 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15321 ; AVX2-FP-NEXT:    vmovaps 400(%rdx), %xmm1
15322 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
15323 ; AVX2-FP-NEXT:    vmovaps 384(%r8), %ymm15
15324 ; AVX2-FP-NEXT:    vmovaps 384(%r9), %ymm4
15325 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15326 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
15327 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15328 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15329 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15330 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15331 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15332 ; AVX2-FP-NEXT:    vmovaps 400(%rax), %xmm1
15333 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15334 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15335 ; AVX2-FP-NEXT:    vmovaps 416(%r8), %xmm0
15336 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15337 ; AVX2-FP-NEXT:    vmovaps 416(%rax), %xmm2
15338 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15339 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm13
15340 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
15341 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15342 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15343 ; AVX2-FP-NEXT:    vmovaps 416(%rdx), %xmm14
15344 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15345 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
15346 ; AVX2-FP-NEXT:    vbroadcastsd 424(%rcx), %ymm3
15347 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15348 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15349 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15350 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15351 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15352 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15353 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm1
15354 ; AVX2-FP-NEXT:    vmovaps 416(%rsi), %ymm2
15355 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15356 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15357 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15358 ; AVX2-FP-NEXT:    vmovaps 416(%r8), %ymm0
15359 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
15360 ; AVX2-FP-NEXT:    vmovaps 416(%rdx), %ymm3
15361 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
15362 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
15363 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15364 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15365 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15366 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
15367 ; AVX2-FP-NEXT:    vmovaps 432(%rax), %xmm1
15368 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15369 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15370 ; AVX2-FP-NEXT:    vmovaps 448(%rsi), %xmm0
15371 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
15372 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm1
15373 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
15374 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15375 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15376 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm0
15377 ; AVX2-FP-NEXT:    vmovaps 448(%r8), %ymm11
15378 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15379 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
15380 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
15381 ; AVX2-FP-NEXT:    vbroadcastsd 448(%rax), %ymm2
15382 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
15383 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15384 ; AVX2-FP-NEXT:    vmovaps 448(%rdx), %ymm2
15385 ; AVX2-FP-NEXT:    vbroadcastsd 456(%rcx), %ymm1
15386 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
15387 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15388 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
15389 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
15390 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15391 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15392 ; AVX2-FP-NEXT:    vmovaps 448(%rsi), %ymm1
15393 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15394 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15395 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
15396 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15397 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15398 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15399 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
15400 ; AVX2-FP-NEXT:    vmovaps 464(%rax), %xmm1
15401 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15402 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15403 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm0
15404 ; AVX2-FP-NEXT:    vmovaps 480(%r8), %ymm12
15405 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15406 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
15407 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
15408 ; AVX2-FP-NEXT:    vbroadcastsd 480(%rax), %ymm3
15409 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
15410 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15411 ; AVX2-FP-NEXT:    vmovaps 480(%rdx), %xmm8
15412 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15413 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
15414 ; AVX2-FP-NEXT:    vbroadcastsd 488(%rcx), %ymm3
15415 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15416 ; AVX2-FP-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
15417 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15418 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15419 ; AVX2-FP-NEXT:    vmovaps 480(%rsi), %ymm1
15420 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15421 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15422 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
15423 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15424 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15425 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15426 ; AVX2-FP-NEXT:    vmovaps 480(%rdx), %ymm6
15427 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
15428 ; AVX2-FP-NEXT:    vmovaps 496(%rax), %xmm1
15429 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15430 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15431 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15432 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15433 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15434 ; AVX2-FP-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
15435 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15436 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15437 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15438 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15439 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15440 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15442 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm1
15443 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15444 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15445 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15446 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15447 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15448 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm1
15449 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15450 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15451 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15452 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15453 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15454 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15455 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15456 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
15457 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15458 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15459 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15460 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15461 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15462 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15463 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15464 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15465 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15466 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15467 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15468 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15469 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15470 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rcx), %ymm1
15471 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15472 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15473 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15474 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15475 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15476 ; AVX2-FP-NEXT:    vbroadcastsd 96(%rcx), %ymm1
15477 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15478 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15479 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15480 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15481 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15482 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15483 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15484 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
15485 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15486 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15487 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15488 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15489 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15490 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15491 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15492 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15493 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15494 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15495 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15496 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15497 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15498 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rcx), %ymm1
15499 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15500 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15501 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15502 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15503 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15504 ; AVX2-FP-NEXT:    vbroadcastsd 160(%rcx), %ymm1
15505 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15506 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15507 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15508 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15509 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15510 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15511 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15512 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
15513 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15514 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15515 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15516 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15517 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15518 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15519 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15520 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15521 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15522 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15523 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15524 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15525 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15526 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rcx), %ymm1
15527 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15528 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15529 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15530 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15531 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15532 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rcx), %ymm1
15533 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15534 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15535 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15536 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15537 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15538 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15539 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15540 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
15541 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15542 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15543 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15544 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15545 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15546 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15547 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15548 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15549 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15550 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15551 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15552 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15553 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15554 ; AVX2-FP-NEXT:    vbroadcastsd 280(%rcx), %ymm1
15555 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15556 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15557 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15558 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15559 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15560 ; AVX2-FP-NEXT:    vbroadcastsd 288(%rcx), %ymm1
15561 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15562 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15563 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15564 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15565 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15566 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15567 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15568 ; AVX2-FP-NEXT:    vbroadcastsd 312(%rcx), %ymm1
15569 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15570 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15571 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15572 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15573 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15574 ; AVX2-FP-NEXT:    vbroadcastsd %xmm10, %ymm1
15575 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15576 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
15577 ; AVX2-FP-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
15578 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15579 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15580 ; AVX2-FP-NEXT:    vbroadcastsd 344(%rcx), %ymm1
15581 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15582 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15583 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15584 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
15585 ; AVX2-FP-NEXT:    vbroadcastsd 352(%rcx), %ymm1
15586 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15587 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
15588 ; AVX2-FP-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
15589 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15590 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15591 ; AVX2-FP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
15592 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15593 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15594 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15595 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15596 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15597 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15598 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
15599 ; AVX2-FP-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
15600 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15601 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15602 ; AVX2-FP-NEXT:    vbroadcastsd 408(%rcx), %ymm15
15603 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
15604 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
15605 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
15606 ; AVX2-FP-NEXT:    vbroadcastsd 416(%rcx), %ymm15
15607 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
15608 ; AVX2-FP-NEXT:    vbroadcastsd 440(%rcx), %ymm15
15609 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
15610 ; AVX2-FP-NEXT:    vbroadcastsd 440(%r9), %ymm13
15611 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
15612 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
15613 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
15614 ; AVX2-FP-NEXT:    vbroadcastsd 464(%r9), %ymm11
15615 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
15616 ; AVX2-FP-NEXT:    vbroadcastsd 472(%rcx), %ymm11
15617 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
15618 ; AVX2-FP-NEXT:    vbroadcastsd 472(%r9), %ymm13
15619 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
15620 ; AVX2-FP-NEXT:    vmovaps 448(%rax), %ymm0
15621 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
15622 ; AVX2-FP-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
15623 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
15624 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm13
15625 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
15626 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
15627 ; AVX2-FP-NEXT:    vbroadcastsd 480(%rcx), %ymm13
15628 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
15629 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
15630 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
15631 ; AVX2-FP-NEXT:    vbroadcastsd 496(%r9), %ymm12
15632 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
15633 ; AVX2-FP-NEXT:    vbroadcastsd 504(%rcx), %ymm12
15634 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
15635 ; AVX2-FP-NEXT:    vbroadcastsd 504(%r9), %ymm13
15636 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
15637 ; AVX2-FP-NEXT:    vmovaps 480(%rax), %ymm13
15638 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
15639 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
15640 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
15641 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
15642 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
15643 ; AVX2-FP-NEXT:    vmovaps %ymm12, 3552(%rcx)
15644 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
15645 ; AVX2-FP-NEXT:    vmovaps %ymm12, 3520(%rcx)
15646 ; AVX2-FP-NEXT:    vmovaps %ymm6, 3488(%rcx)
15647 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3456(%rcx)
15648 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15649 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3424(%rcx)
15650 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15651 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3392(%rcx)
15652 ; AVX2-FP-NEXT:    vmovaps %ymm8, 3360(%rcx)
15653 ; AVX2-FP-NEXT:    vmovaps %ymm1, 3328(%rcx)
15654 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15655 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3296(%rcx)
15656 ; AVX2-FP-NEXT:    vmovaps %ymm2, 3264(%rcx)
15657 ; AVX2-FP-NEXT:    vmovaps %ymm11, 3232(%rcx)
15658 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15659 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3200(%rcx)
15660 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15661 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3168(%rcx)
15662 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15663 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3136(%rcx)
15664 ; AVX2-FP-NEXT:    vmovaps %ymm13, 3104(%rcx)
15665 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15666 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3072(%rcx)
15667 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15668 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3040(%rcx)
15669 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15670 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3008(%rcx)
15671 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15672 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2976(%rcx)
15673 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15674 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2944(%rcx)
15675 ; AVX2-FP-NEXT:    vmovaps %ymm14, 2912(%rcx)
15676 ; AVX2-FP-NEXT:    vmovaps %ymm3, 2880(%rcx)
15677 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15678 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2848(%rcx)
15679 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15680 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2816(%rcx)
15681 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15682 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2784(%rcx)
15683 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15684 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2752(%rcx)
15685 ; AVX2-FP-NEXT:    vmovaps %ymm4, 2720(%rcx)
15686 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15687 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2688(%rcx)
15688 ; AVX2-FP-NEXT:    vmovaps %ymm5, 2656(%rcx)
15689 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15690 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2624(%rcx)
15691 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15692 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2592(%rcx)
15693 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15694 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2560(%rcx)
15695 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15696 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2528(%rcx)
15697 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15698 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2496(%rcx)
15699 ; AVX2-FP-NEXT:    vmovaps %ymm7, 2464(%rcx)
15700 ; AVX2-FP-NEXT:    vmovaps %ymm9, 2432(%rcx)
15701 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15702 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2400(%rcx)
15703 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15704 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2368(%rcx)
15705 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15706 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2336(%rcx)
15707 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15708 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2304(%rcx)
15709 ; AVX2-FP-NEXT:    vmovaps %ymm10, 2272(%rcx)
15710 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15711 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2240(%rcx)
15712 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15713 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2208(%rcx)
15714 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15715 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2176(%rcx)
15716 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15717 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2144(%rcx)
15718 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15719 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2112(%rcx)
15720 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15721 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2080(%rcx)
15722 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15723 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2048(%rcx)
15724 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15725 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2016(%rcx)
15726 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15727 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1984(%rcx)
15728 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15729 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1952(%rcx)
15730 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15731 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1920(%rcx)
15732 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15733 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1888(%rcx)
15734 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15735 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1856(%rcx)
15736 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15737 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1824(%rcx)
15738 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15739 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1792(%rcx)
15740 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15741 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1760(%rcx)
15742 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15743 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1728(%rcx)
15744 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15745 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%rcx)
15746 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15747 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1664(%rcx)
15748 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15749 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1632(%rcx)
15750 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15751 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1600(%rcx)
15752 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15753 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1568(%rcx)
15754 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15755 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1536(%rcx)
15756 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15757 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%rcx)
15758 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15759 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%rcx)
15760 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15761 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%rcx)
15762 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15763 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%rcx)
15764 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15765 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1376(%rcx)
15766 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15767 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%rcx)
15768 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15769 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1312(%rcx)
15770 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15771 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%rcx)
15772 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15773 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%rcx)
15774 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15775 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%rcx)
15776 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15777 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%rcx)
15778 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15779 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%rcx)
15780 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15781 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1120(%rcx)
15782 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15783 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1088(%rcx)
15784 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15785 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%rcx)
15786 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15787 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%rcx)
15788 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15789 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rcx)
15790 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15791 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rcx)
15792 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15793 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%rcx)
15794 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15795 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rcx)
15796 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15797 ; AVX2-FP-NEXT:    vmovaps %ymm0, 864(%rcx)
15798 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15799 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%rcx)
15800 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15801 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%rcx)
15802 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15803 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%rcx)
15804 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15805 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rcx)
15806 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15807 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rcx)
15808 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15809 ; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%rcx)
15810 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15811 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rcx)
15812 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15813 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%rcx)
15814 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15815 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rcx)
15816 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15817 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rcx)
15818 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15819 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%rcx)
15820 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15821 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rcx)
15822 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15823 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rcx)
15824 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15825 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rcx)
15826 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15827 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rcx)
15828 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15829 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)
15830 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15831 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rcx)
15832 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15833 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)
15834 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15835 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)
15836 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15837 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rcx)
15838 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15839 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)
15840 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15841 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)
15842 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15843 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rcx)
15844 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15845 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)
15846 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15847 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rcx)
15848 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15849 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)
15850 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15851 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)
15852 ; AVX2-FP-NEXT:    addq $3880, %rsp # imm = 0xF28
15853 ; AVX2-FP-NEXT:    vzeroupper
15854 ; AVX2-FP-NEXT:    retq
15856 ; AVX2-FCP-LABEL: store_i64_stride7_vf64:
15857 ; AVX2-FCP:       # %bb.0:
15858 ; AVX2-FCP-NEXT:    subq $3880, %rsp # imm = 0xF28
15859 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15860 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
15861 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1
15862 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2
15863 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm5
15864 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15865 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm6
15866 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15867 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm3
15868 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
15869 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm4
15870 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15871 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
15872 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15873 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
15874 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15875 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15876 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15877 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
15878 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
15879 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
15880 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm4
15881 ; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15882 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
15883 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
15884 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15885 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15886 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm8
15887 ; AVX2-FCP-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
15888 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
15889 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
15890 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
15891 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15892 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
15893 ; AVX2-FCP-NEXT:    vmovaps 16(%rdx), %xmm4
15894 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm4 = xmm4[0],mem[0]
15895 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
15896 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15897 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm3
15898 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm4
15899 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15900 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15901 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
15902 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
15903 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15904 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
15905 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm1
15906 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
15907 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
15908 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
15909 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15910 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm2
15911 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15912 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15913 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15914 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm2
15915 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
15916 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
15917 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15918 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15919 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15920 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
15921 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1
15922 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm2
15923 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15924 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15925 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15926 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm0
15927 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm4
15928 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15929 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm3
15930 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15931 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15932 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15933 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15934 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15935 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15936 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15937 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15938 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm1
15939 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15940 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15941 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm0
15942 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
15943 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm1
15944 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15945 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
15946 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15947 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15948 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm0
15949 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
15950 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15951 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15952 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15953 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm2
15954 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15955 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15956 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15957 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15958 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm2
15959 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15960 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15961 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15962 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
15963 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm3
15964 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15965 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15966 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15967 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm4
15968 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15969 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm1
15970 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15971 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15972 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15973 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15974 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15975 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15976 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15977 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15978 ; AVX2-FCP-NEXT:    vmovaps 80(%rax), %xmm1
15979 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15980 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15981 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm0
15982 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15983 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm2
15984 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15985 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm3
15986 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15987 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15988 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15989 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15990 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm3
15991 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15992 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15993 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15994 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
15995 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15996 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15997 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15998 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15999 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16000 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16001 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
16002 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm2
16003 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16004 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16005 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16006 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm0
16007 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm4
16008 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16009 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm3
16010 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16011 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16012 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16013 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16014 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16015 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16016 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16017 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16018 ; AVX2-FCP-NEXT:    vmovaps 112(%rax), %xmm1
16019 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16020 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16021 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
16022 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
16023 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
16024 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16025 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
16026 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16027 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16028 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm0
16029 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
16030 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16031 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16032 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16033 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %xmm2
16034 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16035 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16036 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16037 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16038 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %xmm2
16039 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16040 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16041 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16042 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
16043 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm3
16044 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16045 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16046 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16047 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm4
16048 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16049 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %ymm1
16050 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16051 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
16052 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16053 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16054 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16055 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16056 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16057 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16058 ; AVX2-FCP-NEXT:    vmovaps 144(%rax), %xmm1
16059 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16060 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16061 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %xmm0
16062 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16063 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %xmm2
16064 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16065 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm3
16066 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16067 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16068 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16069 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16070 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm3
16071 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16072 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16073 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16074 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
16075 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16076 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16077 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16078 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16079 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16080 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16081 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm1
16082 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm2
16083 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16084 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16085 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16086 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm0
16087 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm4
16088 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16089 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %ymm3
16090 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16091 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16092 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16093 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16094 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16095 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16096 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16097 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16098 ; AVX2-FCP-NEXT:    vmovaps 176(%rax), %xmm1
16099 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16100 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16101 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
16102 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
16103 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm1
16104 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16105 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
16106 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16107 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16108 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm0
16109 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
16110 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16111 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16112 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16113 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %xmm2
16114 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16115 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16116 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16117 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16118 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %xmm2
16119 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16120 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16121 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16122 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
16123 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm3
16124 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16125 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16126 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16127 ; AVX2-FCP-NEXT:    vmovaps 208(%rdx), %xmm1
16128 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
16129 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm5
16130 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16131 ; AVX2-FCP-NEXT:    vmovaps 192(%r9), %ymm4
16132 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16133 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
16134 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16135 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16136 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16137 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16138 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16139 ; AVX2-FCP-NEXT:    vmovaps 208(%rax), %xmm1
16140 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16141 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16142 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %xmm0
16143 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16144 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %xmm2
16145 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16146 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm3
16147 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16148 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16149 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16150 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16151 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm3
16152 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16153 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16154 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16155 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rcx), %ymm3
16156 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16157 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16158 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16159 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16160 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16161 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16162 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm1
16163 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm2
16164 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16165 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16166 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16167 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm0
16168 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm4
16169 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16170 ; AVX2-FCP-NEXT:    vmovaps 224(%r9), %ymm3
16171 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16172 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16173 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16174 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16175 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16176 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16177 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16178 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16179 ; AVX2-FCP-NEXT:    vmovaps 240(%rax), %xmm1
16180 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16181 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16182 ; AVX2-FCP-NEXT:    vmovaps 256(%rsi), %xmm0
16183 ; AVX2-FCP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
16184 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm1
16185 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16186 ; AVX2-FCP-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
16187 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16188 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16189 ; AVX2-FCP-NEXT:    vmovaps 256(%rdx), %ymm0
16190 ; AVX2-FCP-NEXT:    vbroadcastsd 264(%rcx), %ymm1
16191 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16192 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16193 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16194 ; AVX2-FCP-NEXT:    vmovaps 256(%r8), %xmm2
16195 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16196 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16197 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16198 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16199 ; AVX2-FCP-NEXT:    vmovaps 256(%rax), %xmm2
16200 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16201 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16202 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16203 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm2
16204 ; AVX2-FCP-NEXT:    vmovaps 256(%rsi), %ymm3
16205 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16206 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16207 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16208 ; AVX2-FCP-NEXT:    vmovaps 272(%rdx), %xmm1
16209 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
16210 ; AVX2-FCP-NEXT:    vmovaps 256(%r8), %ymm5
16211 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16212 ; AVX2-FCP-NEXT:    vmovaps 256(%r9), %ymm4
16213 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16214 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm5[0],ymm4[0],ymm5[2],ymm4[2]
16215 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16216 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16217 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16218 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16219 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16220 ; AVX2-FCP-NEXT:    vmovaps 272(%rax), %xmm1
16221 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16222 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16223 ; AVX2-FCP-NEXT:    vmovaps 288(%r8), %xmm0
16224 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16225 ; AVX2-FCP-NEXT:    vmovaps 288(%rax), %xmm2
16226 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16227 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm3
16228 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16229 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16230 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16231 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16232 ; AVX2-FCP-NEXT:    vmovaps 288(%rdx), %xmm3
16233 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16234 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16235 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16236 ; AVX2-FCP-NEXT:    vbroadcastsd 296(%rcx), %ymm3
16237 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16238 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16239 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16240 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16241 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16242 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16243 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm1
16244 ; AVX2-FCP-NEXT:    vmovaps 288(%rsi), %ymm2
16245 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16246 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16247 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16248 ; AVX2-FCP-NEXT:    vmovaps 288(%rdx), %ymm0
16249 ; AVX2-FCP-NEXT:    vmovaps 288(%r8), %ymm4
16250 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16251 ; AVX2-FCP-NEXT:    vmovaps 288(%r9), %ymm3
16252 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16253 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16254 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16255 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16256 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16257 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16258 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16259 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16260 ; AVX2-FCP-NEXT:    vmovaps 304(%rax), %xmm1
16261 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16262 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16263 ; AVX2-FCP-NEXT:    vmovaps 320(%rsi), %xmm0
16264 ; AVX2-FCP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
16265 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm1
16266 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16267 ; AVX2-FCP-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
16268 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16269 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16270 ; AVX2-FCP-NEXT:    vmovaps 320(%rdx), %ymm0
16271 ; AVX2-FCP-NEXT:    vbroadcastsd 328(%rcx), %ymm1
16272 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16273 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16274 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16275 ; AVX2-FCP-NEXT:    vmovaps 320(%r8), %xmm2
16276 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16277 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16278 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16279 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16280 ; AVX2-FCP-NEXT:    vmovaps 320(%rax), %xmm10
16281 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16282 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
16283 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
16284 ; AVX2-FCP-NEXT:    vmovaps 320(%rsi), %ymm3
16285 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16286 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16287 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16288 ; AVX2-FCP-NEXT:    vmovaps 336(%rdx), %xmm1
16289 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
16290 ; AVX2-FCP-NEXT:    vmovaps 320(%r8), %ymm9
16291 ; AVX2-FCP-NEXT:    vmovaps 320(%r9), %ymm4
16292 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16293 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm9[0],ymm4[0],ymm9[2],ymm4[2]
16294 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16295 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16296 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16297 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16298 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16299 ; AVX2-FCP-NEXT:    vmovaps 336(%rax), %xmm1
16300 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16301 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16302 ; AVX2-FCP-NEXT:    vmovaps 352(%r8), %xmm0
16303 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16304 ; AVX2-FCP-NEXT:    vmovaps 352(%rax), %xmm2
16305 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16306 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm3
16307 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16308 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16309 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16310 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16311 ; AVX2-FCP-NEXT:    vmovaps 352(%rdx), %xmm7
16312 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16313 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
16314 ; AVX2-FCP-NEXT:    vbroadcastsd 360(%rcx), %ymm3
16315 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16316 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16317 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16318 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16319 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16320 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16321 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm1
16322 ; AVX2-FCP-NEXT:    vmovaps 352(%rsi), %ymm2
16323 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16324 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16325 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16326 ; AVX2-FCP-NEXT:    vmovaps 352(%rdx), %ymm0
16327 ; AVX2-FCP-NEXT:    vmovaps 352(%r8), %ymm5
16328 ; AVX2-FCP-NEXT:    vmovaps 352(%r9), %ymm3
16329 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16330 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
16331 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16332 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16333 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16334 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16335 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16336 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16337 ; AVX2-FCP-NEXT:    vmovaps 368(%rax), %xmm1
16338 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16339 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16340 ; AVX2-FCP-NEXT:    vmovaps 384(%rsi), %xmm0
16341 ; AVX2-FCP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
16342 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm1
16343 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16344 ; AVX2-FCP-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
16345 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16346 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16347 ; AVX2-FCP-NEXT:    vmovaps 384(%rdx), %ymm0
16348 ; AVX2-FCP-NEXT:    vbroadcastsd 392(%rcx), %ymm1
16349 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16350 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16351 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16352 ; AVX2-FCP-NEXT:    vmovaps 384(%r8), %xmm2
16353 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16354 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16355 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16356 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16357 ; AVX2-FCP-NEXT:    vmovaps 384(%rax), %xmm2
16358 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16359 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16360 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16361 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm2
16362 ; AVX2-FCP-NEXT:    vmovaps 384(%rsi), %ymm3
16363 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16364 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16365 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16366 ; AVX2-FCP-NEXT:    vmovaps 400(%rdx), %xmm1
16367 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],mem[0]
16368 ; AVX2-FCP-NEXT:    vmovaps 384(%r8), %ymm15
16369 ; AVX2-FCP-NEXT:    vmovaps 384(%r9), %ymm4
16370 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16371 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
16372 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16373 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16374 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16375 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16376 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16377 ; AVX2-FCP-NEXT:    vmovaps 400(%rax), %xmm1
16378 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16379 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16380 ; AVX2-FCP-NEXT:    vmovaps 416(%r8), %xmm0
16381 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16382 ; AVX2-FCP-NEXT:    vmovaps 416(%rax), %xmm2
16383 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16384 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm13
16385 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
16386 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16387 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16388 ; AVX2-FCP-NEXT:    vmovaps 416(%rdx), %xmm14
16389 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16390 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
16391 ; AVX2-FCP-NEXT:    vbroadcastsd 424(%rcx), %ymm3
16392 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16393 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16394 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16395 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16396 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16397 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16398 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm1
16399 ; AVX2-FCP-NEXT:    vmovaps 416(%rsi), %ymm2
16400 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16401 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16402 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16403 ; AVX2-FCP-NEXT:    vmovaps 416(%r8), %ymm0
16404 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
16405 ; AVX2-FCP-NEXT:    vmovaps 416(%rdx), %ymm3
16406 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
16407 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
16408 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16409 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16410 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16411 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
16412 ; AVX2-FCP-NEXT:    vmovaps 432(%rax), %xmm1
16413 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16414 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16415 ; AVX2-FCP-NEXT:    vmovaps 448(%rsi), %xmm0
16416 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
16417 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm1
16418 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
16419 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16420 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16421 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm0
16422 ; AVX2-FCP-NEXT:    vmovaps 448(%r8), %ymm11
16423 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16424 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
16425 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
16426 ; AVX2-FCP-NEXT:    vbroadcastsd 448(%rax), %ymm2
16427 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
16428 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16429 ; AVX2-FCP-NEXT:    vmovaps 448(%rdx), %ymm2
16430 ; AVX2-FCP-NEXT:    vbroadcastsd 456(%rcx), %ymm1
16431 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
16432 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16433 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
16434 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
16435 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16436 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16437 ; AVX2-FCP-NEXT:    vmovaps 448(%rsi), %ymm1
16438 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16439 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
16440 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
16441 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16442 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
16443 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16444 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
16445 ; AVX2-FCP-NEXT:    vmovaps 464(%rax), %xmm1
16446 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16447 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16448 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm0
16449 ; AVX2-FCP-NEXT:    vmovaps 480(%r8), %ymm12
16450 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16451 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
16452 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
16453 ; AVX2-FCP-NEXT:    vbroadcastsd 480(%rax), %ymm3
16454 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
16455 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16456 ; AVX2-FCP-NEXT:    vmovaps 480(%rdx), %xmm8
16457 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16458 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
16459 ; AVX2-FCP-NEXT:    vbroadcastsd 488(%rcx), %ymm3
16460 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16461 ; AVX2-FCP-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
16462 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16463 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16464 ; AVX2-FCP-NEXT:    vmovaps 480(%rsi), %ymm1
16465 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16466 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
16467 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
16468 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16469 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
16470 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16471 ; AVX2-FCP-NEXT:    vmovaps 480(%rdx), %ymm6
16472 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
16473 ; AVX2-FCP-NEXT:    vmovaps 496(%rax), %xmm1
16474 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16475 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16476 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16477 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16478 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16479 ; AVX2-FCP-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
16480 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16481 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16482 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16483 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16484 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16485 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16486 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16487 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm1
16488 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16489 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16490 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16491 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16492 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16493 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm1
16494 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16495 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16496 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16497 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16498 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16499 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16500 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16501 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
16502 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16503 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16504 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16505 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16506 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16507 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16508 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16509 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16510 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16511 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16512 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16513 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16514 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16515 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rcx), %ymm1
16516 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16517 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16518 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16519 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16520 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16521 ; AVX2-FCP-NEXT:    vbroadcastsd 96(%rcx), %ymm1
16522 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16523 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16524 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16525 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16526 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16527 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16528 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16529 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
16530 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16531 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16532 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16533 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16534 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16535 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16536 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16537 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16538 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16539 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16540 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16541 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16542 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16543 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rcx), %ymm1
16544 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16545 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16546 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16547 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16548 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16549 ; AVX2-FCP-NEXT:    vbroadcastsd 160(%rcx), %ymm1
16550 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16551 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16552 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16553 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16554 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16555 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16556 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16557 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
16558 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16559 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16560 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16561 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16562 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16563 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16564 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16565 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16566 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16567 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16568 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16569 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16570 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16571 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rcx), %ymm1
16572 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16573 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16574 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16575 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16576 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16577 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rcx), %ymm1
16578 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16579 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16580 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16581 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16582 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16583 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16584 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16585 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
16586 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16587 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16588 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16589 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16590 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16591 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16592 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16593 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16594 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16595 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16596 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16597 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16598 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16599 ; AVX2-FCP-NEXT:    vbroadcastsd 280(%rcx), %ymm1
16600 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16601 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16602 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16603 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16604 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16605 ; AVX2-FCP-NEXT:    vbroadcastsd 288(%rcx), %ymm1
16606 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16607 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16608 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16609 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16610 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16611 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16612 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16613 ; AVX2-FCP-NEXT:    vbroadcastsd 312(%rcx), %ymm1
16614 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16615 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16616 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16617 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16618 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16619 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm10, %ymm1
16620 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16621 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
16622 ; AVX2-FCP-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
16623 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16624 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16625 ; AVX2-FCP-NEXT:    vbroadcastsd 344(%rcx), %ymm1
16626 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16627 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16628 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16629 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
16630 ; AVX2-FCP-NEXT:    vbroadcastsd 352(%rcx), %ymm1
16631 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16632 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
16633 ; AVX2-FCP-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
16634 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16635 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16636 ; AVX2-FCP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
16637 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16638 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16639 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16640 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16641 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16642 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16643 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
16644 ; AVX2-FCP-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
16645 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16646 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16647 ; AVX2-FCP-NEXT:    vbroadcastsd 408(%rcx), %ymm15
16648 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
16649 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
16650 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
16651 ; AVX2-FCP-NEXT:    vbroadcastsd 416(%rcx), %ymm15
16652 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
16653 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%rcx), %ymm15
16654 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
16655 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%r9), %ymm13
16656 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
16657 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
16658 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
16659 ; AVX2-FCP-NEXT:    vbroadcastsd 464(%r9), %ymm11
16660 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
16661 ; AVX2-FCP-NEXT:    vbroadcastsd 472(%rcx), %ymm11
16662 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
16663 ; AVX2-FCP-NEXT:    vbroadcastsd 472(%r9), %ymm13
16664 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
16665 ; AVX2-FCP-NEXT:    vmovaps 448(%rax), %ymm0
16666 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
16667 ; AVX2-FCP-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
16668 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
16669 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm13
16670 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
16671 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
16672 ; AVX2-FCP-NEXT:    vbroadcastsd 480(%rcx), %ymm13
16673 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
16674 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
16675 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
16676 ; AVX2-FCP-NEXT:    vbroadcastsd 496(%r9), %ymm12
16677 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
16678 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%rcx), %ymm12
16679 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
16680 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%r9), %ymm13
16681 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
16682 ; AVX2-FCP-NEXT:    vmovaps 480(%rax), %ymm13
16683 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
16684 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
16685 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
16686 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
16687 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
16688 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 3552(%rcx)
16689 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
16690 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 3520(%rcx)
16691 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 3488(%rcx)
16692 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3456(%rcx)
16693 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16694 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3424(%rcx)
16695 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16696 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3392(%rcx)
16697 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 3360(%rcx)
16698 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 3328(%rcx)
16699 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16700 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3296(%rcx)
16701 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 3264(%rcx)
16702 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 3232(%rcx)
16703 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16704 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3200(%rcx)
16705 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16706 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3168(%rcx)
16707 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16708 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3136(%rcx)
16709 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 3104(%rcx)
16710 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16711 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3072(%rcx)
16712 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16713 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3040(%rcx)
16714 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16715 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3008(%rcx)
16716 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16717 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2976(%rcx)
16718 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16719 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2944(%rcx)
16720 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 2912(%rcx)
16721 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 2880(%rcx)
16722 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16723 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2848(%rcx)
16724 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16725 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2816(%rcx)
16726 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16727 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2784(%rcx)
16728 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16729 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2752(%rcx)
16730 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 2720(%rcx)
16731 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16732 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2688(%rcx)
16733 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 2656(%rcx)
16734 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16735 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2624(%rcx)
16736 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16737 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2592(%rcx)
16738 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16739 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2560(%rcx)
16740 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16741 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2528(%rcx)
16742 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16743 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2496(%rcx)
16744 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 2464(%rcx)
16745 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 2432(%rcx)
16746 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16747 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2400(%rcx)
16748 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16749 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2368(%rcx)
16750 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16751 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2336(%rcx)
16752 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16753 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2304(%rcx)
16754 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 2272(%rcx)
16755 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16756 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2240(%rcx)
16757 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16758 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2208(%rcx)
16759 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16760 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2176(%rcx)
16761 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16762 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2144(%rcx)
16763 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16764 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2112(%rcx)
16765 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16766 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2080(%rcx)
16767 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16768 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2048(%rcx)
16769 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16770 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2016(%rcx)
16771 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16772 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1984(%rcx)
16773 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16774 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1952(%rcx)
16775 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16776 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1920(%rcx)
16777 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16778 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1888(%rcx)
16779 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16780 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1856(%rcx)
16781 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16782 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1824(%rcx)
16783 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16784 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1792(%rcx)
16785 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16786 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1760(%rcx)
16787 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16788 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1728(%rcx)
16789 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16790 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%rcx)
16791 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16792 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1664(%rcx)
16793 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16794 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1632(%rcx)
16795 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16796 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1600(%rcx)
16797 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16798 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1568(%rcx)
16799 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16800 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1536(%rcx)
16801 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16802 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%rcx)
16803 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16804 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%rcx)
16805 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16806 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%rcx)
16807 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16808 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%rcx)
16809 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16810 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1376(%rcx)
16811 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16812 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%rcx)
16813 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16814 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1312(%rcx)
16815 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16816 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%rcx)
16817 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16818 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%rcx)
16819 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16820 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%rcx)
16821 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16822 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%rcx)
16823 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16824 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%rcx)
16825 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16826 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1120(%rcx)
16827 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16828 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1088(%rcx)
16829 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16830 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%rcx)
16831 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16832 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%rcx)
16833 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16834 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rcx)
16835 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16836 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rcx)
16837 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16838 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%rcx)
16839 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16840 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rcx)
16841 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16842 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 864(%rcx)
16843 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16844 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%rcx)
16845 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16846 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%rcx)
16847 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16848 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%rcx)
16849 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16850 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rcx)
16851 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16852 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rcx)
16853 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16854 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 672(%rcx)
16855 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16856 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rcx)
16857 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16858 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%rcx)
16859 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16860 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%rcx)
16861 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16862 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%rcx)
16863 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16864 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%rcx)
16865 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16866 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rcx)
16867 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16868 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rcx)
16869 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16870 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rcx)
16871 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16872 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rcx)
16873 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16874 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rcx)
16875 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16876 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)
16877 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16878 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)
16879 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16880 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rcx)
16881 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16882 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rcx)
16883 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16884 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)
16885 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16886 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)
16887 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16888 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rcx)
16889 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16890 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rcx)
16891 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16892 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rcx)
16893 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16894 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)
16895 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16896 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)
16897 ; AVX2-FCP-NEXT:    addq $3880, %rsp # imm = 0xF28
16898 ; AVX2-FCP-NEXT:    vzeroupper
16899 ; AVX2-FCP-NEXT:    retq
16901 ; AVX512-LABEL: store_i64_stride7_vf64:
16902 ; AVX512:       # %bb.0:
16903 ; AVX512-NEXT:    subq $6248, %rsp # imm = 0x1868
16904 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16905 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm0
16906 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16907 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm19
16908 ; AVX512-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16909 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm9
16910 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16911 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm16
16912 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16913 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm17
16914 ; AVX512-NEXT:    vmovdqu64 %zmm17, (%rsp) # 64-byte Spill
16915 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm3
16916 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16917 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm4
16918 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16919 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm18
16920 ; AVX512-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16921 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [11,3,11,3,11,3,11,3]
16922 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16923 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
16924 ; AVX512-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
16925 ; AVX512-NEXT:    movb $96, %r10b
16926 ; AVX512-NEXT:    kmovw %r10d, %k1
16927 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm1
16928 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm15
16929 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm5
16930 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm6
16931 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
16932 ; AVX512-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16933 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16934 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
16935 ; AVX512-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16936 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
16937 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm8, %zmm2
16938 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [4,9,0,3,4,9,0,3]
16939 ; AVX512-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
16940 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm24, %zmm2
16941 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16942 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm11, %zmm0
16943 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2
16944 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm31, %zmm2
16945 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
16946 ; AVX512-NEXT:    vmovdqa (%r9), %ymm7
16947 ; AVX512-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16948 ; AVX512-NEXT:    vmovdqa 64(%r9), %ymm3
16949 ; AVX512-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16950 ; AVX512-NEXT:    vmovdqa (%r8), %ymm0
16951 ; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16952 ; AVX512-NEXT:    vmovdqa 64(%r8), %ymm4
16953 ; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16954 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
16955 ; AVX512-NEXT:    movb $28, %r10b
16956 ; AVX512-NEXT:    kmovw %r10d, %k2
16957 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
16958 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16959 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
16960 ; AVX512-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
16961 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0
16962 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm28, %zmm0
16963 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,1,12,7,0,1,12,7]
16964 ; AVX512-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
16965 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm30, %zmm0
16966 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16967 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
16968 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
16969 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm0
16970 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm9
16971 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16972 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm0
16973 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,13,6,7,0,13,6,7]
16974 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
16975 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm15, %zmm0
16976 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16977 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm25, %zmm1
16978 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [6,13,14,7,6,13,14,7]
16979 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
16980 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
16981 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16982 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm1
16983 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
16984 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm2
16985 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
16986 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
16987 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16988 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
16989 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16990 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm1
16991 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm16
16992 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
16993 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm8, %zmm3
16994 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm24, %zmm3
16995 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16996 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
16997 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm28, %zmm3
16998 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
16999 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17000 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm3
17001 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
17002 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm15, %zmm3
17003 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17004 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm29
17005 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm25, %zmm1
17006 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm6
17007 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17008 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm27
17009 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm0
17010 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17011 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm1
17012 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
17013 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm17
17014 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm21
17015 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm0
17016 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17017 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm3
17018 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
17019 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
17020 ; AVX512-NEXT:    vmovdqa64 128(%rax), %zmm5
17021 ; AVX512-NEXT:    vmovdqa 128(%r9), %ymm4
17022 ; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17023 ; AVX512-NEXT:    vmovdqa 128(%r8), %ymm1
17024 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17025 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
17026 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
17027 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17028 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm1
17029 ; AVX512-NEXT:    vmovdqa64 128(%r9), %zmm6
17030 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17031 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm8, %zmm3
17032 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm11
17033 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm24, %zmm3
17034 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17035 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17036 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm28, %zmm3
17037 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm30, %zmm3
17038 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17039 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3
17040 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
17041 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm15, %zmm3
17042 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17043 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm20
17044 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm25, %zmm1
17045 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
17046 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17047 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm26
17048 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm0
17049 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17050 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm1
17051 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm17, %zmm1
17052 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm18
17053 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
17054 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17055 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm3
17056 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
17057 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
17058 ; AVX512-NEXT:    vmovdqa64 192(%rax), %zmm0
17059 ; AVX512-NEXT:    vmovdqa 192(%r9), %ymm5
17060 ; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17061 ; AVX512-NEXT:    vmovdqa 192(%r8), %ymm1
17062 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17063 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
17064 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
17065 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17066 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm1
17067 ; AVX512-NEXT:    vmovdqa64 192(%r9), %zmm8
17068 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17069 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm11, %zmm3
17070 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm24, %zmm3
17071 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17072 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17073 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm28, %zmm3
17074 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm30, %zmm3
17075 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17076 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5
17077 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm5
17078 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm3
17079 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm15, %zmm5
17080 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17081 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm9
17082 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
17083 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm0
17084 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17085 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm15
17086 ; AVX512-NEXT:    vmovdqa64 256(%rsi), %zmm22
17087 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17088 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm14
17089 ; AVX512-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17090 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm17, %zmm1
17091 ; AVX512-NEXT:    vmovdqa64 256(%rdx), %zmm12
17092 ; AVX512-NEXT:    vmovdqa64 256(%rcx), %zmm23
17093 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm5
17094 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm31, %zmm5
17095 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
17096 ; AVX512-NEXT:    vmovdqa64 256(%rax), %zmm0
17097 ; AVX512-NEXT:    vmovdqa 256(%r9), %ymm7
17098 ; AVX512-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17099 ; AVX512-NEXT:    vmovdqa 256(%r8), %ymm1
17100 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17101 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[2],ymm7[2]
17102 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
17103 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17104 ; AVX512-NEXT:    vmovdqa64 256(%r8), %zmm5
17105 ; AVX512-NEXT:    vmovdqa64 256(%r9), %zmm2
17106 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm17
17107 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm7
17108 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm11, %zmm17
17109 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm24, %zmm17
17110 ; AVX512-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17111 ; AVX512-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17112 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm11
17113 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm28, %zmm11
17114 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm30, %zmm11
17115 ; AVX512-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17116 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17117 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm11
17118 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm13, %zmm11
17119 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
17120 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17121 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17122 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm4
17123 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm25, %zmm5
17124 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm10, %zmm0
17125 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17126 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm19
17127 ; AVX512-NEXT:    vmovdqa64 320(%rsi), %zmm0
17128 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17129 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm5
17130 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm14, %zmm5
17131 ; AVX512-NEXT:    vmovdqa64 320(%rdx), %zmm11
17132 ; AVX512-NEXT:    vmovdqa64 320(%rcx), %zmm17
17133 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm14
17134 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm31, %zmm14
17135 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k1}
17136 ; AVX512-NEXT:    vmovdqa64 320(%rax), %zmm1
17137 ; AVX512-NEXT:    vmovdqa 320(%r9), %ymm5
17138 ; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17139 ; AVX512-NEXT:    vmovdqa 320(%r8), %ymm0
17140 ; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17141 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]
17142 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm5[2,3,2,3],zmm1[2,3,2,3]
17143 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17144 ; AVX512-NEXT:    vmovdqa64 320(%r8), %zmm5
17145 ; AVX512-NEXT:    vmovdqa64 320(%r9), %zmm14
17146 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17147 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm7, %zmm0
17148 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
17149 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17150 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17151 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
17152 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm30, %zmm0
17153 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17154 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm0
17155 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
17156 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
17157 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17158 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm3
17159 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm25, %zmm5
17160 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm10, %zmm1
17161 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17162 ; AVX512-NEXT:    vmovdqa64 384(%rdx), %zmm5
17163 ; AVX512-NEXT:    vmovdqa64 384(%rcx), %zmm24
17164 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17165 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm25, %zmm0
17166 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm10
17167 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17168 ; AVX512-NEXT:    vmovdqa64 384(%rsi), %zmm1
17169 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17170 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm10
17171 ; AVX512-NEXT:    movb $24, %r10b
17172 ; AVX512-NEXT:    kmovw %r10d, %k3
17173 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
17174 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
17175 ; AVX512-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17176 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17177 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
17178 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17179 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm1, %zmm29
17180 ; AVX512-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17181 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm1, %zmm20
17182 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17183 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm1, %zmm9
17184 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17185 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm4
17186 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17187 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
17188 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17189 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17190 ; AVX512-NEXT:    vmovdqa64 384(%r8), %zmm0
17191 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
17192 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
17193 ; AVX512-NEXT:    vmovdqa64 384(%r9), %zmm1
17194 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,15,0]
17195 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm3, %zmm10
17196 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17197 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
17198 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17199 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm7
17200 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17201 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm28
17202 ; AVX512-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17203 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm13, %zmm1
17204 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17205 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,5,13,5,13,5,13,5]
17206 ; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17207 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17208 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17209 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17210 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
17211 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17212 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,6,14,6,14,6,14]
17213 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17214 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17215 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
17216 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17217 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17218 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm2
17219 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17220 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
17221 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
17222 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
17223 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17224 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
17225 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17226 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
17227 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm7, %zmm1
17228 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17229 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17230 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
17231 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17232 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17233 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
17234 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17235 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm13
17236 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm14
17237 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17238 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
17239 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm7, %zmm0
17240 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17241 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17242 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm10, %zmm0
17243 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17244 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17245 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
17246 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17247 ; AVX512-NEXT:    vpermt2q %zmm21, %zmm2, %zmm29
17248 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17249 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
17250 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm7, %zmm0
17251 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17252 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17253 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm10, %zmm0
17254 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17255 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17256 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm25, %zmm0
17257 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17258 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm2, %zmm20
17259 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17260 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm7, %zmm0
17261 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17262 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17263 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm10, %zmm0
17264 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17265 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17266 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
17267 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17268 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm2, %zmm23
17269 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm21
17270 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17271 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm7, %zmm0
17272 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17273 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17274 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm10, %zmm0
17275 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17276 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17277 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm25, %zmm0
17278 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17279 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm2, %zmm17
17280 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm28
17281 ; AVX512-NEXT:    vmovdqa64 448(%rdx), %zmm8
17282 ; AVX512-NEXT:    vmovdqa64 448(%rcx), %zmm0
17283 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm6
17284 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm6
17285 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm11
17286 ; AVX512-NEXT:    vpermi2q %zmm24, %zmm5, %zmm31
17287 ; AVX512-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
17288 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
17289 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm7, %zmm1
17290 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17291 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
17292 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm10, %zmm1
17293 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17294 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm11
17295 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm9
17296 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm2, %zmm9
17297 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm12
17298 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm12
17299 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm13
17300 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm13
17301 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm8
17302 ; AVX512-NEXT:    movb $48, %r10b
17303 ; AVX512-NEXT:    kmovw %r10d, %k4
17304 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
17305 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
17306 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17307 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17308 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17309 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
17310 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17311 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
17312 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17313 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2
17314 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17315 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16
17316 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
17317 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
17318 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
17319 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17320 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm2
17321 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17322 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
17323 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17324 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm16
17325 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17326 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17327 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17328 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
17329 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17330 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm14 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
17331 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17332 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17333 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2
17334 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14
17335 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
17336 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17337 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm3
17338 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17339 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
17340 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17341 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm14
17342 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17343 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17344 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm5, %zmm1
17345 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17346 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k4} = zmm27[0],zmm0[0],zmm27[2],zmm0[2],zmm27[4],zmm0[4],zmm27[6],zmm0[6]
17347 ; AVX512-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17348 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm2
17349 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm1
17350 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm23
17351 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm4, %zmm27
17352 ; AVX512-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17353 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
17354 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17355 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
17356 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17357 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm23
17358 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17359 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17360 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
17361 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17362 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
17363 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17364 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm29
17365 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm1
17366 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm31
17367 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
17368 ; AVX512-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17369 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm29
17370 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
17371 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17372 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
17373 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm30
17374 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
17375 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm21 {%k4} = zmm15[0],zmm22[0],zmm15[2],zmm22[2],zmm15[4],zmm22[4],zmm15[6],zmm22[6]
17376 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17377 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17378 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm0
17379 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm26
17380 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm27
17381 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm4, %zmm27
17382 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm7, %zmm1
17383 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17384 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm10, %zmm0
17385 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17386 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm25, %zmm26
17387 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm15
17388 ; AVX512-NEXT:    vmovdqa64 448(%rsi), %zmm0
17389 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm17
17390 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm17
17391 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm22
17392 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17393 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm22
17394 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm24
17395 ; AVX512-NEXT:    vpermt2q %zmm19, %zmm5, %zmm24
17396 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm19[0],zmm1[0],zmm19[2],zmm1[2],zmm19[4],zmm1[4],zmm19[6],zmm1[6]
17397 ; AVX512-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17398 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm18
17399 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm2
17400 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm21
17401 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm21
17402 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm18
17403 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
17404 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17405 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
17406 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm20
17407 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
17408 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm5, %zmm20
17409 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm3
17410 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
17411 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
17412 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm25
17413 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17414 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm1
17415 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm7
17416 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm2
17417 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
17418 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm10
17419 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm28[0],zmm19[0],zmm28[2],zmm19[2],zmm28[4],zmm19[4],zmm28[6],zmm19[6]
17420 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17421 ; AVX512-NEXT:    vpermt2q %zmm19, %zmm4, %zmm28
17422 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm9 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
17423 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
17424 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
17425 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
17426 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k1}
17427 ; AVX512-NEXT:    vmovdqa64 448(%r8), %zmm3
17428 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
17429 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm9, %zmm5
17430 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm1 {%k1}
17431 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [12,0,0,3,4,5,6,13]
17432 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm1, %zmm9
17433 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm17 {%k3}
17434 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
17435 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm1, %zmm17
17436 ; AVX512-NEXT:    movb $6, %sil
17437 ; AVX512-NEXT:    kmovw %esi, %k4
17438 ; AVX512-NEXT:    vpbroadcastq 456(%rcx), %ymm1
17439 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
17440 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
17441 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,9,0,0,6,7]
17442 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm0, %zmm8
17443 ; AVX512-NEXT:    movb $64, %sil
17444 ; AVX512-NEXT:    kmovw %esi, %k5
17445 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
17446 ; AVX512-NEXT:    movb $4, %sil
17447 ; AVX512-NEXT:    kmovw %esi, %k5
17448 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k5}
17449 ; AVX512-NEXT:    vmovdqa64 448(%r9), %zmm0
17450 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
17451 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
17452 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm11
17453 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
17454 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
17455 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
17456 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm9, %zmm5
17457 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [13,0,2,3,4,5,6,14]
17458 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
17459 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
17460 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm17
17461 ; AVX512-NEXT:    movb $12, %sil
17462 ; AVX512-NEXT:    kmovw %esi, %k5
17463 ; AVX512-NEXT:    vmovdqa 448(%rdx), %xmm2
17464 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
17465 ; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
17466 ; AVX512-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
17467 ; AVX512-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
17468 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
17469 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
17470 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
17471 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm8, %zmm2
17472 ; AVX512-NEXT:    vmovdqa64 384(%rax), %zmm0
17473 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17474 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17475 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
17476 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
17477 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
17478 ; AVX512-NEXT:    vmovdqa 384(%r9), %ymm12
17479 ; AVX512-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17480 ; AVX512-NEXT:    vmovdqa 384(%r8), %ymm8
17481 ; AVX512-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17482 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
17483 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
17484 ; AVX512-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
17485 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17486 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17487 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
17488 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17489 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17490 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17491 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
17492 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
17493 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17494 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
17495 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17496 ; AVX512-NEXT:    vmovdqa64 448(%rax), %zmm0
17497 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [0,1,2,3,10,5,6,7]
17498 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm3, %zmm12
17499 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17500 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,12,3,4,5,6,7]
17501 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm3
17502 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17503 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,13,2,3,4,5,6,7]
17504 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
17505 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17506 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm17
17507 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,8,7]
17508 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm4, %zmm3
17509 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17510 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,9,6,7]
17511 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
17512 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17513 ; AVX512-NEXT:    movb $8, %sil
17514 ; AVX512-NEXT:    kmovw %esi, %k2
17515 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
17516 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17517 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17518 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k3}
17519 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17520 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
17521 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17522 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
17523 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17524 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
17525 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17526 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
17527 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17528 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k3}
17529 ; AVX512-NEXT:    movb $-31, %sil
17530 ; AVX512-NEXT:    kmovw %esi, %k2
17531 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17532 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
17533 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17534 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17535 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
17536 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17537 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17538 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
17539 ; AVX512-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17540 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17541 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
17542 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17543 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
17544 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17545 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
17546 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm0
17547 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17548 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17549 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17550 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
17551 ; AVX512-NEXT:    vmovdqa 64(%rdx), %xmm0
17552 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17553 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17554 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17555 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k5}
17556 ; AVX512-NEXT:    vmovdqa 128(%rdx), %xmm0
17557 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17558 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17559 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17560 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
17561 ; AVX512-NEXT:    vmovdqa 192(%rdx), %xmm0
17562 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17563 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17564 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17565 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
17566 ; AVX512-NEXT:    vmovdqa 256(%rdx), %xmm0
17567 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17568 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17569 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
17570 ; AVX512-NEXT:    vmovdqa 320(%rdx), %xmm0
17571 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17572 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17573 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
17574 ; AVX512-NEXT:    vmovdqa 384(%rdx), %xmm0
17575 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17576 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17577 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
17578 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17579 ; AVX512-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm0
17580 ; AVX512-NEXT:    movb $112, %sil
17581 ; AVX512-NEXT:    kmovw %esi, %k2
17582 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
17583 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17584 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17585 ; AVX512-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm0
17586 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
17587 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17588 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17589 ; AVX512-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm0
17590 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
17591 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17592 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17593 ; AVX512-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
17594 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
17595 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17596 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17597 ; AVX512-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm0
17598 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
17599 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17600 ; AVX512-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm0
17601 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
17602 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17603 ; AVX512-NEXT:    vinserti32x4 $3, 384(%rax), %zmm0, %zmm0
17604 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
17605 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm0
17606 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17607 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17608 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k4}
17609 ; AVX512-NEXT:    vpbroadcastq 72(%rcx), %ymm0
17610 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17611 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17612 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
17613 ; AVX512-NEXT:    vpbroadcastq 136(%rcx), %ymm0
17614 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17615 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17616 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
17617 ; AVX512-NEXT:    vpbroadcastq 200(%rcx), %ymm0
17618 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17619 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17620 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
17621 ; AVX512-NEXT:    vpbroadcastq 264(%rcx), %ymm0
17622 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17623 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
17624 ; AVX512-NEXT:    vpbroadcastq 328(%rcx), %ymm0
17625 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17626 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
17627 ; AVX512-NEXT:    vpbroadcastq 392(%rcx), %ymm0
17628 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17629 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
17630 ; AVX512-NEXT:    movb $56, %cl
17631 ; AVX512-NEXT:    kmovw %ecx, %k2
17632 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17633 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
17634 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17635 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17636 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
17637 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17638 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17639 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
17640 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17641 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17642 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
17643 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17644 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17645 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
17646 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17647 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
17648 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm20 {%k2}
17649 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17650 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17651 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
17652 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17653 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17654 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
17655 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17656 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17657 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
17658 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17659 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
17660 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17661 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17662 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
17663 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17664 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k1}
17665 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17666 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
17667 ; AVX512-NEXT:    movb $120, %cl
17668 ; AVX512-NEXT:    kmovw %ecx, %k1
17669 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
17670 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm19 {%k1}
17671 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17672 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
17673 ; AVX512-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
17674 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17675 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
17676 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
17677 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm15 {%k1}
17678 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
17679 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm25 {%k1}
17680 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
17681 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm29 {%k1}
17682 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
17683 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm23 {%k1}
17684 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17685 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm12 {%k1}
17686 ; AVX512-NEXT:    movb $-61, %cl
17687 ; AVX512-NEXT:    kmovw %ecx, %k1
17688 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17689 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
17690 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17691 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 64-byte Folded Reload
17692 ; AVX512-NEXT:    # zmm13 = zmm0[0,1,2,3],mem[4,5,6,7]
17693 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17694 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm13 {%k1}
17695 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17696 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
17697 ; AVX512-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
17698 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17699 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm11 {%k1}
17700 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17701 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
17702 ; AVX512-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
17703 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17704 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
17705 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17706 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
17707 ; AVX512-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
17708 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17709 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
17710 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17711 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
17712 ; AVX512-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
17713 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17714 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
17715 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 64-byte Folded Reload
17716 ; AVX512-NEXT:    # zmm7 = zmm10[0,1,2,3],mem[4,5,6,7]
17717 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k1}
17718 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17719 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17720 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17721 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17722 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17723 ; AVX512-NEXT:    movb $14, %cl
17724 ; AVX512-NEXT:    kmovw %ecx, %k1
17725 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17726 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm10 {%k1}
17727 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17728 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17729 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17730 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17731 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17732 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
17733 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
17734 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17735 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17736 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17737 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17738 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17739 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17740 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
17741 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17742 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17743 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17744 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17745 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17746 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17747 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
17748 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17749 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17750 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17751 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17752 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17753 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17754 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
17755 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17756 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17757 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17758 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17759 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17760 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17761 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
17762 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
17763 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
17764 ; AVX512-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
17765 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17766 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17767 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17768 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
17769 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17770 ; AVX512-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
17771 ; AVX512-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
17772 ; AVX512-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
17773 ; AVX512-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
17774 ; AVX512-NEXT:    vmovaps %zmm0, 2816(%rax)
17775 ; AVX512-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
17776 ; AVX512-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
17777 ; AVX512-NEXT:    vmovdqa64 %zmm22, 2624(%rax)
17778 ; AVX512-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
17779 ; AVX512-NEXT:    vmovdqa64 %zmm23, 2496(%rax)
17780 ; AVX512-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
17781 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17782 ; AVX512-NEXT:    vmovaps %zmm6, 2368(%rax)
17783 ; AVX512-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
17784 ; AVX512-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
17785 ; AVX512-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
17786 ; AVX512-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
17787 ; AVX512-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
17788 ; AVX512-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
17789 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17790 ; AVX512-NEXT:    vmovaps %zmm5, 1920(%rax)
17791 ; AVX512-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
17792 ; AVX512-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
17793 ; AVX512-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
17794 ; AVX512-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
17795 ; AVX512-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
17796 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
17797 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17798 ; AVX512-NEXT:    vmovaps %zmm4, 1472(%rax)
17799 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17800 ; AVX512-NEXT:    vmovaps %zmm0, 1408(%rax)
17801 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17802 ; AVX512-NEXT:    vmovaps %zmm0, 1344(%rax)
17803 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17804 ; AVX512-NEXT:    vmovaps %zmm0, 1280(%rax)
17805 ; AVX512-NEXT:    vmovdqa64 %zmm11, 1216(%rax)
17806 ; AVX512-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
17807 ; AVX512-NEXT:    vmovdqa64 %zmm9, 1088(%rax)
17808 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17809 ; AVX512-NEXT:    vmovaps %zmm3, 1024(%rax)
17810 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17811 ; AVX512-NEXT:    vmovaps %zmm0, 960(%rax)
17812 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17813 ; AVX512-NEXT:    vmovaps %zmm0, 896(%rax)
17814 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17815 ; AVX512-NEXT:    vmovaps %zmm0, 832(%rax)
17816 ; AVX512-NEXT:    vmovdqa64 %zmm13, 768(%rax)
17817 ; AVX512-NEXT:    vmovdqa64 %zmm14, 704(%rax)
17818 ; AVX512-NEXT:    vmovdqa64 %zmm18, 640(%rax)
17819 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17820 ; AVX512-NEXT:    vmovaps %zmm2, 576(%rax)
17821 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17822 ; AVX512-NEXT:    vmovaps %zmm0, 512(%rax)
17823 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17824 ; AVX512-NEXT:    vmovaps %zmm0, 448(%rax)
17825 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17826 ; AVX512-NEXT:    vmovaps %zmm0, 384(%rax)
17827 ; AVX512-NEXT:    vmovdqa64 %zmm16, 320(%rax)
17828 ; AVX512-NEXT:    vmovdqa64 %zmm19, 256(%rax)
17829 ; AVX512-NEXT:    vmovdqa64 %zmm10, 192(%rax)
17830 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17831 ; AVX512-NEXT:    vmovaps %zmm0, 128(%rax)
17832 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17833 ; AVX512-NEXT:    vmovaps %zmm0, 64(%rax)
17834 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17835 ; AVX512-NEXT:    vmovaps %zmm0, (%rax)
17836 ; AVX512-NEXT:    vmovdqa64 %zmm17, 3520(%rax)
17837 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17838 ; AVX512-NEXT:    vmovaps %zmm0, 3456(%rax)
17839 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17840 ; AVX512-NEXT:    vmovaps %zmm0, 3392(%rax)
17841 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17842 ; AVX512-NEXT:    vmovaps %zmm0, 3328(%rax)
17843 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17844 ; AVX512-NEXT:    vmovaps %zmm0, 3264(%rax)
17845 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17846 ; AVX512-NEXT:    vmovaps %zmm0, 3200(%rax)
17847 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17848 ; AVX512-NEXT:    vmovaps %zmm0, 3072(%rax)
17849 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17850 ; AVX512-NEXT:    vmovaps %zmm0, 3136(%rax)
17851 ; AVX512-NEXT:    addq $6248, %rsp # imm = 0x1868
17852 ; AVX512-NEXT:    vzeroupper
17853 ; AVX512-NEXT:    retq
17855 ; AVX512-FCP-LABEL: store_i64_stride7_vf64:
17856 ; AVX512-FCP:       # %bb.0:
17857 ; AVX512-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
17858 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17859 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
17860 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17861 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13
17862 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17863 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm8
17864 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17865 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm20
17866 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, (%rsp) # 64-byte Spill
17867 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
17868 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17869 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm10
17870 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17871 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm11
17872 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17873 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm19
17874 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17875 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
17876 ; AVX512-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17877 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [2,10,0,3,2,10,0,3]
17878 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
17879 ; AVX512-FCP-NEXT:    movb $96, %r10b
17880 ; AVX512-FCP-NEXT:    kmovw %r10d, %k1
17881 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
17882 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm18
17883 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm4
17884 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
17885 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
17886 ; AVX512-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17887 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17888 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [9,1,9,1,9,1,9,1]
17889 ; AVX512-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17890 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
17891 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm6, %zmm2
17892 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [4,9,0,3,4,9,0,3]
17893 ; AVX512-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
17894 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm12, %zmm2
17895 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17896 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm29, %zmm0
17897 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
17898 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm2
17899 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
17900 ; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm0
17901 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17902 ; AVX512-FCP-NEXT:    vmovdqa 64(%r9), %ymm10
17903 ; AVX512-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17904 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm8
17905 ; AVX512-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17906 ; AVX512-FCP-NEXT:    vmovdqa 64(%r8), %ymm7
17907 ; AVX512-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17908 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm8[0],ymm0[0],ymm8[2],ymm0[2]
17909 ; AVX512-FCP-NEXT:    movb $28, %r10b
17910 ; AVX512-FCP-NEXT:    kmovw %r10d, %k2
17911 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
17912 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17913 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
17914 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
17915 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
17916 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm2, %zmm0
17917 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,1,12,7,0,1,12,7]
17918 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
17919 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
17920 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17921 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [5,0,14,6,5,0,14,6]
17922 ; AVX512-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
17923 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17924 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
17925 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm0
17926 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,13,6,7,0,13,6,7]
17927 ; AVX512-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
17928 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm16, %zmm0
17929 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17930 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm1
17931 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
17932 ; AVX512-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
17933 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm4
17934 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17935 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
17936 ; AVX512-FCP-NEXT:    vpermt2q %zmm20, %zmm29, %zmm1
17937 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm4
17938 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
17939 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17940 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
17941 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
17942 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17943 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
17944 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm30
17945 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
17946 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm4
17947 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
17948 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17949 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
17950 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
17951 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
17952 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm2, %zmm4
17953 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
17954 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17955 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
17956 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm2
17957 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm16, %zmm2
17958 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17959 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17960 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm23, %zmm1
17961 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm7
17962 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17963 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
17964 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17965 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
17966 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm29, %zmm1
17967 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm4
17968 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17969 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
17970 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17971 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm4
17972 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17973 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rax), %zmm7
17974 ; AVX512-FCP-NEXT:    vmovdqa 128(%r9), %ymm1
17975 ; AVX512-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17976 ; AVX512-FCP-NEXT:    vmovdqa 128(%r8), %ymm0
17977 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17978 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
17979 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm7[2,3,2,3]
17980 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17981 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm4
17982 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r9), %zmm19
17983 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
17984 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm6, %zmm3
17985 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
17986 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm3
17987 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17988 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
17989 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm3
17990 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
17991 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm3
17992 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17993 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3
17994 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm22, %zmm3
17995 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
17996 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm16, %zmm3
17997 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17998 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17999 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm4
18000 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm18, %zmm7
18001 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18002 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
18003 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18004 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
18005 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm29, %zmm4
18006 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm3
18007 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18008 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
18009 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18010 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm3
18011 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
18012 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rax), %zmm14
18013 ; AVX512-FCP-NEXT:    vmovdqa 192(%r9), %ymm0
18014 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18015 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %ymm24
18016 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm24[0],ymm0[0],ymm24[2],ymm0[2]
18017 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm4[2,3,2,3],zmm14[2,3,2,3]
18018 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18019 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
18020 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r9), %zmm17
18021 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
18022 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm6, %zmm3
18023 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
18024 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm3
18025 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18026 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
18027 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm13, %zmm3
18028 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm3
18029 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18030 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
18031 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
18032 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm22, %zmm3
18033 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm3
18034 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18035 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21
18036 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm5
18037 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm14
18038 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18039 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
18040 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18041 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm15
18042 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
18043 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18044 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm29, %zmm5
18045 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm3
18046 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18047 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
18048 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8
18049 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm9, %zmm3
18050 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
18051 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rax), %zmm0
18052 ; AVX512-FCP-NEXT:    vmovdqa 256(%r9), %ymm10
18053 ; AVX512-FCP-NEXT:    vmovdqa 256(%r8), %ymm5
18054 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm5[0],ymm10[0],ymm5[2],ymm10[2]
18055 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
18056 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18057 ; AVX512-FCP-NEXT:    vmovdqa64 256(%r8), %zmm6
18058 ; AVX512-FCP-NEXT:    vmovdqa64 256(%r9), %zmm9
18059 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
18060 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm3
18061 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18062 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm12, %zmm3
18063 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18064 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
18065 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
18066 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm13, %zmm3
18067 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18068 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
18069 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18070 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
18071 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm22, %zmm3
18072 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm3
18073 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18074 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18075 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18076 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm6
18077 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm18, %zmm0
18078 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18079 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm27
18080 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm25
18081 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm6
18082 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm6
18083 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm0
18084 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18085 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm12
18086 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm0
18087 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm13
18088 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18089 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k1}
18090 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rax), %zmm1
18091 ; AVX512-FCP-NEXT:    vmovdqa 320(%r9), %ymm6
18092 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r8), %ymm31
18093 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm31[0],ymm6[0],ymm31[2],ymm6[2]
18094 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm8[2,3,2,3],zmm1[2,3,2,3]
18095 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18096 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r8), %zmm8
18097 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r9), %zmm14
18098 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
18099 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm0
18100 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
18101 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
18102 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
18103 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18104 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
18105 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm0
18106 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm7, %zmm0
18107 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18108 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm0
18109 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm22, %zmm0
18110 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm0
18111 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18112 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
18113 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm8
18114 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm18, %zmm2
18115 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18116 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
18117 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
18118 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
18119 ; AVX512-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18120 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
18121 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
18122 ; AVX512-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18123 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
18124 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
18125 ; AVX512-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18126 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm24 # 32-byte Folded Reload
18127 ; AVX512-FCP-NEXT:    vmovdqu64 %ymm24, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18128 ; AVX512-FCP-NEXT:    vpermt2q %ymm10, %ymm0, %ymm5
18129 ; AVX512-FCP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18130 ; AVX512-FCP-NEXT:    vpermt2q %ymm6, %ymm0, %ymm31
18131 ; AVX512-FCP-NEXT:    vmovdqu64 %ymm31, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18132 ; AVX512-FCP-NEXT:    vmovdqa 384(%r9), %ymm2
18133 ; AVX512-FCP-NEXT:    vmovdqa 384(%r8), %ymm4
18134 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
18135 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18136 ; AVX512-FCP-NEXT:    vpermt2q %ymm2, %ymm0, %ymm4
18137 ; AVX512-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18138 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm31
18139 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm10
18140 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0
18141 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm23, %zmm0
18142 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm24
18143 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18144 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm18
18145 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm24
18146 ; AVX512-FCP-NEXT:    movb $24, %r10b
18147 ; AVX512-FCP-NEXT:    kmovw %r10d, %k3
18148 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k3}
18149 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [0,8,0,8,0,8,0,8]
18150 ; AVX512-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18151 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18152 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm0 # 64-byte Folded Reload
18153 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18154 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18155 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm20, %zmm0
18156 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18157 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18158 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm20, %zmm0
18159 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18160 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm20, %zmm21
18161 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18162 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm11
18163 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18164 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm1
18165 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18166 ; AVX512-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
18167 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
18168 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
18169 ; AVX512-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
18170 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
18171 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm24
18172 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm20
18173 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
18174 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18175 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm16
18176 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18177 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
18178 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
18179 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm30
18180 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
18181 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
18182 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18183 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
18184 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
18185 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18186 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm8
18187 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
18188 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,0,12,4,3,0,12,4]
18189 ; AVX512-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
18190 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
18191 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm7, %zmm11
18192 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
18193 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18194 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
18195 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18196 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18197 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm30
18198 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
18199 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
18200 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18201 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
18202 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18203 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm5, %zmm2
18204 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18205 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18206 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm1, %zmm2
18207 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18208 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm3
18209 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18210 ; AVX512-FCP-NEXT:    movb $48, %r10b
18211 ; AVX512-FCP-NEXT:    kmovw %r10d, %k4
18212 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
18213 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
18214 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18215 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18216 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
18217 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
18218 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18219 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
18220 ; AVX512-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
18221 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
18222 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm2
18223 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18224 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k4} = zmm3[0],zmm19[0],zmm3[2],zmm19[2],zmm3[4],zmm19[4],zmm3[6],zmm19[6]
18225 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18226 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18227 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm0
18228 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18229 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18230 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm1, %zmm0
18231 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18232 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm3
18233 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18234 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18235 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18236 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18237 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
18238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18239 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
18240 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18241 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18242 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
18243 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18244 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18245 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18246 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18247 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18248 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
18249 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm3
18250 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18251 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
18252 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm6, %zmm3
18253 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18254 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm13[0],zmm0[0],zmm13[2],zmm0[2],zmm13[4],zmm0[4],zmm13[6],zmm0[6]
18255 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18256 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
18257 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18258 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18259 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
18260 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
18261 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18262 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18263 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18264 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18265 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
18266 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18267 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
18268 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
18269 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm5, %zmm14
18270 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18271 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
18272 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm1, %zmm14
18273 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18274 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm23, %zmm0
18275 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18276 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18277 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18278 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm2
18279 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18280 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
18281 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
18282 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
18283 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm26[0],zmm0[2],zmm26[2],zmm0[4],zmm26[4],zmm0[6],zmm26[6]
18284 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18285 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18286 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm2
18287 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18288 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18289 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm2
18290 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18291 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm0
18292 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18293 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18294 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18295 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18296 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
18297 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18298 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
18299 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18300 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18301 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
18302 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18303 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18304 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18305 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18306 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18307 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm0
18308 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18309 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm22
18310 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm22
18311 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm3[0],zmm28[0],zmm3[2],zmm28[2],zmm3[4],zmm28[4],zmm3[6],zmm28[6]
18312 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18313 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18314 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm0
18315 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18316 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18317 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm0
18318 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18319 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm3
18320 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18321 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
18322 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18323 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm28
18324 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18325 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm2
18326 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18327 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18328 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm2
18329 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18330 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
18331 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18332 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18333 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
18334 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm29
18335 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
18336 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm21
18337 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm15[0],zmm0[2],zmm15[2],zmm0[4],zmm15[4],zmm0[6],zmm15[6]
18338 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18339 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
18340 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18341 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18342 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm2
18343 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18344 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
18345 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18346 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
18347 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
18348 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm19
18349 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
18350 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm0
18351 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18352 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
18353 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm0
18354 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18355 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm16
18356 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
18357 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
18358 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
18359 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm15
18360 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm17
18361 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm13
18362 ; AVX512-FCP-NEXT:    vpermt2q %zmm27, %zmm6, %zmm17
18363 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm19 {%k4} = zmm27[0],zmm25[0],zmm27[2],zmm25[2],zmm27[4],zmm25[4],zmm27[6],zmm25[6]
18364 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
18365 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
18366 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm23, %zmm13
18367 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm4, %zmm27
18368 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm5, %zmm3
18369 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18370 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm2
18371 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18372 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
18373 ; AVX512-FCP-NEXT:    vpermi2q %zmm10, %zmm31, %zmm26
18374 ; AVX512-FCP-NEXT:    vpermi2q %zmm31, %zmm10, %zmm7
18375 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
18376 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm5, %zmm2
18377 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18378 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm1, %zmm31
18379 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18380 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
18381 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
18382 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
18383 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
18384 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm3
18385 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
18386 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18387 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
18388 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18389 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm25
18390 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm23
18391 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18392 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm7 {%k4} = zmm14[0],zmm18[0],zmm14[2],zmm18[2],zmm14[4],zmm18[4],zmm14[6],zmm18[6]
18393 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm5
18394 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
18395 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm1, %zmm14
18396 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18397 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm4, %zmm23
18398 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
18399 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
18400 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
18401 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm1 # 64-byte Folded Reload
18402 ; AVX512-FCP-NEXT:    # zmm1 = zmm10[0,1,2,3],mem[4,5,6,7]
18403 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k1}
18404 ; AVX512-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
18405 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
18406 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm11, %zmm10
18407 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18408 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
18409 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [12,0,0,3,4,5,6,13]
18410 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm11
18411 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm15 {%k3}
18412 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
18413 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm15
18414 ; AVX512-FCP-NEXT:    movb $6, %sil
18415 ; AVX512-FCP-NEXT:    kmovw %esi, %k5
18416 ; AVX512-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
18417 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
18418 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
18419 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
18420 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
18421 ; AVX512-FCP-NEXT:    movb $64, %sil
18422 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18423 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
18424 ; AVX512-FCP-NEXT:    movb $4, %sil
18425 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18426 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k4}
18427 ; AVX512-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
18428 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,11,0,4,5,6,7]
18429 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm31
18430 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
18431 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm3
18432 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,12,0,3,4,5,6,7]
18433 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm11, %zmm8
18434 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [13,0,2,3,4,5,6,14]
18435 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm10
18436 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
18437 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm15
18438 ; AVX512-FCP-NEXT:    movb $12, %sil
18439 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18440 ; AVX512-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
18441 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
18442 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
18443 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
18444 ; AVX512-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
18445 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
18446 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
18447 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,9,0,6,7]
18448 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm11
18449 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
18450 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18451 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18452 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
18453 ; AVX512-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
18454 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18455 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18456 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
18457 ; AVX512-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
18458 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18459 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
18460 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
18461 ; AVX512-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
18462 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18463 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm22 {%k5}
18464 ; AVX512-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
18465 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18466 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
18467 ; AVX512-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
18468 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18469 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm17 {%k5}
18470 ; AVX512-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
18471 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18472 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
18473 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
18474 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
18475 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18476 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
18477 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18478 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k1}
18479 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18480 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
18481 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18482 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
18483 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18484 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
18485 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18486 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
18487 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18488 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
18489 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
18490 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
18491 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
18492 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
18493 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18494 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
18495 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm8, %zmm0
18496 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18497 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
18498 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
18499 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18500 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm15
18501 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
18502 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
18503 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18504 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
18505 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm11, %zmm0
18506 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18507 ; AVX512-FCP-NEXT:    movb $8, %sil
18508 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
18509 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm31 {%k2}
18510 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18511 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18512 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18513 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18514 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18515 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k3}
18516 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18517 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18518 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
18519 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18520 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18521 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k3}
18522 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18523 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18524 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k3}
18525 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm13 {%k3}
18526 ; AVX512-FCP-NEXT:    movb $-31, %sil
18527 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
18528 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18529 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0 {%k2}
18530 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18531 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18532 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
18533 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18534 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18535 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
18536 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18537 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18538 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
18539 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18540 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18541 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
18542 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18543 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18544 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
18545 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18546 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm3
18547 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18548 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18549 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18550 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k4}
18551 ; AVX512-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
18552 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18553 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18554 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18555 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
18556 ; AVX512-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
18557 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18558 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18559 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18560 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm8 {%k4}
18561 ; AVX512-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
18562 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18563 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18564 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18565 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm9 {%k4}
18566 ; AVX512-FCP-NEXT:    vmovdqa 256(%rdx), %xmm3
18567 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18568 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18569 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm29 {%k4}
18570 ; AVX512-FCP-NEXT:    vmovdqa 320(%rdx), %xmm3
18571 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18572 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18573 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm27 {%k4}
18574 ; AVX512-FCP-NEXT:    vmovdqa 384(%rdx), %xmm3
18575 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18576 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18577 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm23 {%k4}
18578 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18579 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm3
18580 ; AVX512-FCP-NEXT:    movb $112, %cl
18581 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18582 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k2}
18583 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18584 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18585 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm3
18586 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k2}
18587 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18588 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18589 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm3
18590 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k2}
18591 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18592 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18593 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm3
18594 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k2}
18595 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18596 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18597 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm3
18598 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm29 {%k2}
18599 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18600 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm3
18601 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k2}
18602 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 384(%rax), %zmm20, %zmm3
18603 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23 {%k2}
18604 ; AVX512-FCP-NEXT:    movb $56, %cl
18605 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18606 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18607 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k2}
18608 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18609 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18610 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k2}
18611 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18612 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18613 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
18614 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
18615 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18616 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
18617 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18618 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
18619 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18620 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
18621 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm25 {%k2}
18622 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18623 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18624 ; AVX512-FCP-NEXT:    movb $14, %cl
18625 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18626 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
18627 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k2}
18628 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
18629 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
18630 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18631 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k2}
18632 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18633 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18634 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18635 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm13 {%k2}
18636 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18637 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18638 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18639 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm6 {%k2}
18640 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18641 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18642 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm28 {%k2}
18643 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18644 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18645 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k2}
18646 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18647 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18648 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm7 {%k2}
18649 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18650 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18651 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18652 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18653 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18654 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
18655 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18656 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18657 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
18658 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18659 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18660 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18661 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18662 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18663 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
18664 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18665 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18666 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k1}
18667 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18668 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
18669 ; AVX512-FCP-NEXT:    movb $120, %al
18670 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
18671 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
18672 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm16 {%k1}
18673 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18674 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
18675 ; AVX512-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
18676 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
18677 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
18678 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18679 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
18680 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18681 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2 {%k1}
18682 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1 {%k1}
18684 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18685 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
18686 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm26 {%k1}
18687 ; AVX512-FCP-NEXT:    movb $-61, %al
18688 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
18689 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18690 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
18691 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18692 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
18693 ; AVX512-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
18694 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18695 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
18696 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18697 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
18698 ; AVX512-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
18699 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18700 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
18701 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18702 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload
18703 ; AVX512-FCP-NEXT:    # zmm8 = zmm8[0,1,2,3],mem[4,5,6,7]
18704 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18705 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
18706 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18707 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
18708 ; AVX512-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
18709 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18710 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k1}
18711 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18712 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload
18713 ; AVX512-FCP-NEXT:    # zmm11 = zmm11[0,1,2,3],mem[4,5,6,7]
18714 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18715 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k1}
18716 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18717 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
18718 ; AVX512-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
18719 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
18720 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm12 {%k1}
18721 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18722 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, 3008(%rax)
18723 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 2944(%rax)
18724 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 2880(%rax)
18725 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18726 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2816(%rax)
18727 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 2752(%rax)
18728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
18729 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18730 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2624(%rax)
18731 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 2560(%rax)
18732 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
18733 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 2432(%rax)
18734 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18735 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2368(%rax)
18736 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 2304(%rax)
18737 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 2240(%rax)
18738 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18739 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
18740 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 2112(%rax)
18741 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
18742 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
18743 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18744 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 1920(%rax)
18745 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, 1856(%rax)
18746 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
18747 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18748 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
18749 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 1664(%rax)
18750 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
18751 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 1536(%rax)
18752 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18753 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 1472(%rax)
18754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 1408(%rax)
18755 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18756 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
18757 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18758 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
18759 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
18760 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
18761 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
18762 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18763 ; AVX512-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
18764 ; AVX512-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
18765 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
18766 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18767 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
18768 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18769 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
18770 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
18771 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 704(%rax)
18772 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 640(%rax)
18773 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18774 ; AVX512-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
18775 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18776 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
18777 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18778 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
18779 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18780 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
18781 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
18782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 256(%rax)
18783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
18784 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18785 ; AVX512-FCP-NEXT:    vmovaps %zmm3, 128(%rax)
18786 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18787 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
18788 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18789 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%rax)
18790 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 3520(%rax)
18791 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18792 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
18793 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18794 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
18795 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, 3328(%rax)
18796 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18797 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
18798 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18799 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
18800 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, 3072(%rax)
18801 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18802 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
18803 ; AVX512-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
18804 ; AVX512-FCP-NEXT:    vzeroupper
18805 ; AVX512-FCP-NEXT:    retq
18807 ; AVX512DQ-LABEL: store_i64_stride7_vf64:
18808 ; AVX512DQ:       # %bb.0:
18809 ; AVX512DQ-NEXT:    subq $6280, %rsp # imm = 0x1888
18810 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18811 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm0
18812 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18813 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm16
18814 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18815 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm9
18816 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18817 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm13
18818 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18819 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm18
18820 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, (%rsp) # 64-byte Spill
18821 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm5
18822 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18823 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm6
18824 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18825 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm15
18826 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18827 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [11,3,11,3,11,3,11,3]
18828 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18829 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
18830 ; AVX512DQ-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
18831 ; AVX512DQ-NEXT:    movb $96, %r10b
18832 ; AVX512DQ-NEXT:    kmovw %r10d, %k1
18833 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm1
18834 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm14
18835 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm3
18836 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm4
18837 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
18838 ; AVX512DQ-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18839 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18840 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
18841 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18842 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
18843 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm8, %zmm2
18844 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,9,0,3,4,9,0,3]
18845 ; AVX512DQ-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
18846 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm11, %zmm2
18847 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18848 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
18849 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm2
18850 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm31, %zmm2
18851 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
18852 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm7
18853 ; AVX512DQ-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18854 ; AVX512DQ-NEXT:    vmovdqa 64(%r9), %ymm5
18855 ; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18856 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm0
18857 ; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18858 ; AVX512DQ-NEXT:    vmovdqa 64(%r8), %ymm6
18859 ; AVX512DQ-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18860 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
18861 ; AVX512DQ-NEXT:    movb $28, %r10b
18862 ; AVX512DQ-NEXT:    kmovw %r10d, %k2
18863 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
18864 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18865 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
18866 ; AVX512DQ-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
18867 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0
18868 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
18869 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,1,12,7,0,1,12,7]
18870 ; AVX512DQ-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
18871 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm12, %zmm0
18872 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18873 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
18874 ; AVX512DQ-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
18875 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
18876 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18877 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm0
18878 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,13,6,7,0,13,6,7]
18879 ; AVX512DQ-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
18880 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm24, %zmm0
18881 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18882 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm25, %zmm1
18883 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [6,13,14,7,6,13,14,7]
18884 ; AVX512DQ-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
18885 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm3
18886 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18887 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
18888 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
18889 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
18890 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm31, %zmm2
18891 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
18892 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
18893 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm4[2,3,2,3]
18894 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18895 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm1
18896 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm20
18897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
18898 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm6
18899 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm8, %zmm3
18900 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm11, %zmm3
18901 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18902 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
18903 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm28, %zmm3
18904 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm12, %zmm3
18905 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18906 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm3
18907 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm3
18908 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm24, %zmm3
18909 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18910 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm30
18911 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
18912 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm4
18913 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18914 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm1
18915 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18916 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm0
18917 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18918 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
18919 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm23
18920 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm0
18921 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18922 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm3
18923 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
18924 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
18925 ; AVX512DQ-NEXT:    vmovdqa64 128(%rax), %zmm8
18926 ; AVX512DQ-NEXT:    vmovdqa 128(%r9), %ymm4
18927 ; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18928 ; AVX512DQ-NEXT:    vmovdqa 128(%r8), %ymm1
18929 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18930 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
18931 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm8[2,3,2,3]
18932 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18933 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm1
18934 ; AVX512DQ-NEXT:    vmovdqa64 128(%r9), %zmm13
18935 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
18936 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm6, %zmm4
18937 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm11, %zmm4
18938 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18939 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
18940 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm28, %zmm4
18941 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm18
18942 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm12, %zmm4
18943 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18944 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm5
18945 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm5
18946 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm24, %zmm5
18947 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18948 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm22
18949 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
18950 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm8
18951 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18952 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm26
18953 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm0
18954 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18955 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm1
18956 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
18957 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm9
18958 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm21
18959 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm0
18960 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18961 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm5
18962 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm5
18963 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
18964 ; AVX512DQ-NEXT:    vmovdqa64 192(%rax), %zmm0
18965 ; AVX512DQ-NEXT:    vmovdqa 192(%r9), %ymm8
18966 ; AVX512DQ-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18967 ; AVX512DQ-NEXT:    vmovdqa 192(%r8), %ymm1
18968 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18969 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
18970 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
18971 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18972 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm1
18973 ; AVX512DQ-NEXT:    vmovdqa64 192(%r9), %zmm8
18974 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm16
18975 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm6, %zmm16
18976 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm16
18977 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18978 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm15
18979 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm28, %zmm15
18980 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm15
18981 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18982 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm12
18983 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm12
18984 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm24, %zmm12
18985 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18986 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm10
18987 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
18988 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm0
18989 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18990 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm15
18991 ; AVX512DQ-NEXT:    vmovdqa64 256(%rsi), %zmm19
18992 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm4
18993 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
18994 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm29
18995 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18996 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdx), %zmm14
18997 ; AVX512DQ-NEXT:    vmovdqa64 256(%rcx), %zmm0
18998 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18999 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
19000 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm1
19001 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
19002 ; AVX512DQ-NEXT:    vmovdqa64 256(%rax), %zmm0
19003 ; AVX512DQ-NEXT:    vmovdqa 256(%r9), %ymm12
19004 ; AVX512DQ-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19005 ; AVX512DQ-NEXT:    vmovdqa 256(%r8), %ymm4
19006 ; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19007 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm4[0],ymm12[0],ymm4[2],ymm12[2]
19008 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm4[2,3,2,3],zmm0[2,3,2,3]
19009 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19010 ; AVX512DQ-NEXT:    vmovdqa64 256(%r8), %zmm4
19011 ; AVX512DQ-NEXT:    vmovdqa64 256(%r9), %zmm12
19012 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
19013 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm6, %zmm1
19014 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
19015 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19016 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm2
19017 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19018 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
19019 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm28, %zmm1
19020 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm18, %zmm1
19021 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19022 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19023 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
19024 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm17, %zmm1
19025 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm24, %zmm1
19026 ; AVX512DQ-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19027 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19028 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm9
19029 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm25, %zmm4
19030 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm27, %zmm0
19031 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19032 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm16
19033 ; AVX512DQ-NEXT:    vmovdqa64 320(%rsi), %zmm3
19034 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm7
19035 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm29, %zmm7
19036 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdx), %zmm4
19037 ; AVX512DQ-NEXT:    vmovdqa64 320(%rcx), %zmm29
19038 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm5
19039 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm31, %zmm5
19040 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm5 {%k1}
19041 ; AVX512DQ-NEXT:    vmovdqa64 320(%rax), %zmm1
19042 ; AVX512DQ-NEXT:    vmovdqa 320(%r9), %ymm7
19043 ; AVX512DQ-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19044 ; AVX512DQ-NEXT:    vmovdqa 320(%r8), %ymm0
19045 ; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19046 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
19047 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm7[2,3,2,3],zmm1[2,3,2,3]
19048 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19049 ; AVX512DQ-NEXT:    vmovdqa64 320(%r8), %zmm7
19050 ; AVX512DQ-NEXT:    vmovdqa64 320(%r9), %zmm11
19051 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm0
19052 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm6, %zmm0
19053 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
19054 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19055 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm0
19056 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm28, %zmm0
19057 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm18, %zmm0
19058 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19059 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm0
19060 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
19061 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
19062 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19063 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2
19064 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm25, %zmm7
19065 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm27, %zmm1
19066 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19067 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdx), %zmm5
19068 ; AVX512DQ-NEXT:    vmovdqa64 384(%rcx), %zmm27
19069 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm0
19070 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm25, %zmm0
19071 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm7
19072 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19073 ; AVX512DQ-NEXT:    vmovdqa64 384(%rsi), %zmm1
19074 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19075 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm25, %zmm7
19076 ; AVX512DQ-NEXT:    movb $24, %r10b
19077 ; AVX512DQ-NEXT:    kmovw %r10d, %k3
19078 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
19079 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
19080 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19081 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19082 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
19083 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19084 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm1, %zmm30
19085 ; AVX512DQ-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19086 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm1, %zmm22
19087 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19088 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm1, %zmm10
19089 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19090 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm1, %zmm9
19091 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19092 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm1, %zmm2
19093 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19094 ; AVX512DQ-NEXT:    vmovdqa64 384(%r8), %zmm0
19095 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
19096 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
19097 ; AVX512DQ-NEXT:    vmovdqa64 384(%r9), %zmm2
19098 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,3,4,5,15,0]
19099 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm7
19100 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19101 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
19102 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19103 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm6
19104 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19105 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm28
19106 ; AVX512DQ-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19107 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
19108 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19109 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [13,5,13,5,13,5,13,5]
19110 ; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19111 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19112 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19113 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
19114 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm6, %zmm1
19115 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19116 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
19117 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19118 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19119 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm9, %zmm1
19120 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19121 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19122 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm25, %zmm1
19123 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19124 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
19125 ; AVX512DQ-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
19126 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
19127 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
19128 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19129 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
19130 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm6, %zmm1
19131 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19132 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19133 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
19134 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19135 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19136 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
19137 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19138 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm20
19139 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19140 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
19141 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm6, %zmm0
19142 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19143 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19144 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm9, %zmm0
19145 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19146 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19147 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm25, %zmm0
19148 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19149 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm2, %zmm30
19150 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19151 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
19152 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm6, %zmm0
19153 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19154 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19155 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm9, %zmm0
19156 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19157 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19158 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm25, %zmm0
19159 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19160 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm2, %zmm22
19161 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19162 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
19163 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm6, %zmm0
19164 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19165 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19166 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm9, %zmm0
19167 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19168 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19169 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
19170 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19171 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm2, %zmm23
19172 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19173 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm6, %zmm0
19174 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19176 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm9, %zmm0
19177 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19178 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19179 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
19180 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19181 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm2, %zmm29
19182 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm18
19183 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdx), %zmm10
19184 ; AVX512DQ-NEXT:    vmovdqa64 448(%rcx), %zmm0
19185 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm7
19186 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm7
19187 ; AVX512DQ-NEXT:    vpermi2q %zmm27, %zmm5, %zmm31
19188 ; AVX512DQ-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
19189 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
19190 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm6, %zmm1
19191 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19192 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
19193 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm9, %zmm1
19194 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19195 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm27
19196 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm28
19197 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8
19198 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm2, %zmm8
19199 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm12
19200 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm12
19201 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm11
19202 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm11
19203 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm10
19204 ; AVX512DQ-NEXT:    movb $48, %r10b
19205 ; AVX512DQ-NEXT:    kmovw %r10d, %k4
19206 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
19207 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
19208 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19209 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm1
19210 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19211 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
19212 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19213 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
19214 ; AVX512DQ-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19215 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19216 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm13
19217 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14
19218 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
19219 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
19220 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
19221 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19222 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm6, %zmm1
19223 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19224 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm9, %zmm13
19225 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19226 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm25, %zmm14
19227 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19228 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm1
19229 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19230 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
19231 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19232 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
19233 ; AVX512DQ-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19234 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm13
19235 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19236 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm17
19237 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
19238 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19239 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm6, %zmm13
19240 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19241 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm9, %zmm1
19242 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19243 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm25, %zmm17
19244 ; AVX512DQ-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19245 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19246 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2
19247 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19248 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm5, %zmm2
19249 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19250 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm30 {%k4} = zmm1[0],zmm0[0],zmm1[2],zmm0[2],zmm1[4],zmm0[4],zmm1[6],zmm0[6]
19251 ; AVX512DQ-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19252 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm13
19253 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
19254 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm29
19255 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm4, %zmm1
19256 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19257 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
19258 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19259 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
19260 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19261 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm29
19262 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19263 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19264 ; AVX512DQ-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
19265 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19266 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
19267 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19268 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm2
19269 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm1
19270 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm31
19271 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
19272 ; AVX512DQ-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19273 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
19274 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19275 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm1
19276 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19277 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
19278 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm30
19279 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
19280 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm23 {%k4} = zmm15[0],zmm19[0],zmm15[2],zmm19[2],zmm15[4],zmm19[4],zmm15[6],zmm19[6]
19281 ; AVX512DQ-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19282 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm22
19283 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm0
19284 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm26
19285 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm27
19286 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm4, %zmm27
19287 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm6, %zmm22
19288 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm9, %zmm0
19289 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19290 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm25, %zmm26
19291 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm15
19292 ; AVX512DQ-NEXT:    vmovdqa64 448(%rsi), %zmm0
19293 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm13
19294 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm13
19295 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm23
19296 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm25, %zmm23
19297 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm24
19298 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm5, %zmm24
19299 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm18 {%k4} = zmm16[0],zmm3[0],zmm16[2],zmm3[2],zmm16[4],zmm3[4],zmm16[6],zmm3[6]
19300 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm17
19302 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
19303 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm21
19304 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm4, %zmm21
19305 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm6, %zmm17
19306 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
19307 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19308 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
19309 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm20
19310 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
19311 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm5, %zmm20
19312 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm3
19313 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
19314 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
19315 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm25
19316 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm1
19317 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm1
19318 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm6
19319 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm2
19320 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
19321 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm9
19322 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm16[0],zmm18[0],zmm16[2],zmm18[2],zmm16[4],zmm18[4],zmm16[6],zmm18[6]
19323 ; AVX512DQ-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19324 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm28
19325 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm4, %zmm28
19326 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
19327 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
19328 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
19329 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
19330 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k1}
19331 ; AVX512DQ-NEXT:    vmovdqa64 448(%r8), %zmm3
19332 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
19333 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm8, %zmm5
19334 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm1 {%k1}
19335 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
19336 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm1, %zmm8
19337 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k3}
19338 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
19339 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm1, %zmm13
19340 ; AVX512DQ-NEXT:    movb $6, %sil
19341 ; AVX512DQ-NEXT:    kmovw %esi, %k4
19342 ; AVX512DQ-NEXT:    vpbroadcastq 456(%rcx), %ymm1
19343 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
19344 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
19345 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,9,0,0,6,7]
19346 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
19347 ; AVX512DQ-NEXT:    movb $64, %sil
19348 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19349 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
19350 ; AVX512DQ-NEXT:    movb $4, %sil
19351 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19352 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k5}
19353 ; AVX512DQ-NEXT:    vmovdqa64 448(%r9), %zmm0
19354 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
19355 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
19356 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm11
19357 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
19358 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm7, %zmm3
19359 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
19360 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm8, %zmm5
19361 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
19362 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm7
19363 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
19364 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
19365 ; AVX512DQ-NEXT:    movb $12, %sil
19366 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19367 ; AVX512DQ-NEXT:    vmovdqa 448(%rdx), %xmm2
19368 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
19369 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
19370 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
19371 ; AVX512DQ-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
19372 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
19373 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
19374 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
19375 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm10, %zmm2
19376 ; AVX512DQ-NEXT:    vmovdqa64 384(%rax), %zmm0
19377 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19378 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19379 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm10
19380 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
19381 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
19382 ; AVX512DQ-NEXT:    vmovdqa 384(%r9), %ymm12
19383 ; AVX512DQ-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19384 ; AVX512DQ-NEXT:    vmovdqa 384(%r8), %ymm8
19385 ; AVX512DQ-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19386 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
19387 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
19388 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
19389 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19390 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19391 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
19392 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19393 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19394 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19395 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
19396 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19397 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
19398 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19399 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
19400 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19401 ; AVX512DQ-NEXT:    vmovdqa64 448(%rax), %zmm0
19402 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,10,5,6,7]
19403 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm3, %zmm1
19404 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19405 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
19406 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
19407 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19408 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
19409 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm7, %zmm1
19410 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19411 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
19412 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,8,7]
19413 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm4, %zmm1
19414 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19415 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,9,6,7]
19416 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm1
19417 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19418 ; AVX512DQ-NEXT:    movb $8, %sil
19419 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19420 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
19421 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19422 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19423 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
19424 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19425 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19426 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
19427 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19428 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k3}
19429 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19430 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
19431 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19432 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
19433 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19434 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
19435 ; AVX512DQ-NEXT:    movb $-31, %sil
19436 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19437 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19438 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
19439 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19440 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19441 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
19442 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19443 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19444 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
19445 ; AVX512DQ-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19446 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19447 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
19448 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19449 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
19450 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19451 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
19452 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm0
19453 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19454 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19455 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19456 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k5}
19457 ; AVX512DQ-NEXT:    vmovdqa 64(%rdx), %xmm0
19458 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19459 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19460 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19461 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
19462 ; AVX512DQ-NEXT:    vmovdqa 128(%rdx), %xmm0
19463 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19464 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19465 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19466 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
19467 ; AVX512DQ-NEXT:    vmovdqa 192(%rdx), %xmm0
19468 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19469 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19470 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19471 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
19472 ; AVX512DQ-NEXT:    vmovdqa 256(%rdx), %xmm0
19473 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19474 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19475 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
19476 ; AVX512DQ-NEXT:    vmovdqa 320(%rdx), %xmm0
19477 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19478 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19479 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
19480 ; AVX512DQ-NEXT:    vmovdqa 384(%rdx), %xmm0
19481 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19482 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19483 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
19484 ; AVX512DQ-NEXT:    movb $112, %sil
19485 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19486 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19487 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
19488 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19489 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19490 ; AVX512DQ-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm2 {%k2}
19491 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19492 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19493 ; AVX512DQ-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm3 {%k2}
19494 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19495 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19496 ; AVX512DQ-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm4 {%k2}
19497 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19498 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19499 ; AVX512DQ-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm27 {%k2}
19500 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19501 ; AVX512DQ-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm21 {%k2}
19502 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19503 ; AVX512DQ-NEXT:    vinserti64x2 $3, 384(%rax), %zmm0, %zmm28 {%k2}
19504 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm0
19505 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19506 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19507 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k4}
19508 ; AVX512DQ-NEXT:    vpbroadcastq 72(%rcx), %ymm0
19509 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19510 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19511 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
19512 ; AVX512DQ-NEXT:    vpbroadcastq 136(%rcx), %ymm0
19513 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19514 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19515 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
19516 ; AVX512DQ-NEXT:    vpbroadcastq 200(%rcx), %ymm0
19517 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19518 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19519 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
19520 ; AVX512DQ-NEXT:    vpbroadcastq 264(%rcx), %ymm0
19521 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19522 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
19523 ; AVX512DQ-NEXT:    vpbroadcastq 328(%rcx), %ymm0
19524 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19525 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
19526 ; AVX512DQ-NEXT:    vpbroadcastq 392(%rcx), %ymm0
19527 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19528 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
19529 ; AVX512DQ-NEXT:    movb $56, %cl
19530 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
19531 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19532 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
19533 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19534 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19535 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
19536 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19537 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19538 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
19539 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19540 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19541 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
19542 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19543 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19544 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
19545 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19546 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
19547 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm20 {%k2}
19548 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19549 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19550 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
19551 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19552 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19553 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
19554 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19555 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19556 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
19557 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19558 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19559 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
19560 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19561 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
19562 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19563 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k1}
19564 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19565 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
19566 ; AVX512DQ-NEXT:    movb $120, %cl
19567 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19568 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
19569 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k1}
19570 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19571 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
19572 ; AVX512DQ-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
19573 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
19574 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm14 {%k1}
19575 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
19576 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k1}
19577 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
19578 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm25 {%k1}
19579 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
19580 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm29 {%k1}
19581 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
19582 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm22 {%k1}
19583 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19584 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k1}
19585 ; AVX512DQ-NEXT:    movb $-61, %cl
19586 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19587 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19588 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
19589 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19590 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
19591 ; AVX512DQ-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
19592 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19593 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm11 {%k1}
19594 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19595 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 64-byte Folded Reload
19596 ; AVX512DQ-NEXT:    # zmm10 = zmm0[0,1,2,3],mem[4,5,6,7]
19597 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19598 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
19599 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19600 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
19601 ; AVX512DQ-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
19602 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19603 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
19604 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19605 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
19606 ; AVX512DQ-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
19607 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19608 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
19609 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19610 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
19611 ; AVX512DQ-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
19612 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19613 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
19614 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm7 # 64-byte Folded Reload
19615 ; AVX512DQ-NEXT:    # zmm7 = zmm9[0,1,2,3],mem[4,5,6,7]
19616 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19617 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
19618 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19619 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19620 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19621 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19622 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19623 ; AVX512DQ-NEXT:    movb $14, %cl
19624 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19625 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
19626 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
19627 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19628 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19629 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19630 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19631 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19632 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
19633 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm17 {%k1}
19634 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19635 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19636 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19637 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19638 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19639 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
19640 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
19641 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19642 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19643 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19644 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19645 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19646 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19647 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
19648 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19649 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19650 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19651 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19652 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19653 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19654 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
19655 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19656 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19657 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19658 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19659 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19660 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19661 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
19662 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
19663 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
19664 ; AVX512DQ-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
19665 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19666 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19667 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19668 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
19669 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19670 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
19671 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
19672 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
19673 ; AVX512DQ-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
19674 ; AVX512DQ-NEXT:    vmovaps %zmm0, 2816(%rax)
19675 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
19676 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
19677 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 2624(%rax)
19678 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
19679 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 2496(%rax)
19680 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
19681 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19682 ; AVX512DQ-NEXT:    vmovaps %zmm6, 2368(%rax)
19683 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
19684 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
19685 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
19686 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
19687 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
19688 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
19689 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19690 ; AVX512DQ-NEXT:    vmovaps %zmm5, 1920(%rax)
19691 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
19692 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
19693 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
19694 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
19695 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
19696 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
19697 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19698 ; AVX512DQ-NEXT:    vmovaps %zmm4, 1472(%rax)
19699 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19700 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1408(%rax)
19701 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19702 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1344(%rax)
19703 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19704 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1280(%rax)
19705 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 1216(%rax)
19706 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
19707 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 1088(%rax)
19708 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19709 ; AVX512DQ-NEXT:    vmovaps %zmm3, 1024(%rax)
19710 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19711 ; AVX512DQ-NEXT:    vmovaps %zmm0, 960(%rax)
19712 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19713 ; AVX512DQ-NEXT:    vmovaps %zmm0, 896(%rax)
19714 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19715 ; AVX512DQ-NEXT:    vmovaps %zmm0, 832(%rax)
19716 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 768(%rax)
19717 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 704(%rax)
19718 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 640(%rax)
19719 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19720 ; AVX512DQ-NEXT:    vmovaps %zmm2, 576(%rax)
19721 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19722 ; AVX512DQ-NEXT:    vmovaps %zmm0, 512(%rax)
19723 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19724 ; AVX512DQ-NEXT:    vmovaps %zmm0, 448(%rax)
19725 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19726 ; AVX512DQ-NEXT:    vmovaps %zmm0, 384(%rax)
19727 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 320(%rax)
19728 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 256(%rax)
19729 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 192(%rax)
19730 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19731 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%rax)
19732 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19733 ; AVX512DQ-NEXT:    vmovaps %zmm0, 64(%rax)
19734 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19735 ; AVX512DQ-NEXT:    vmovaps %zmm0, (%rax)
19736 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 3520(%rax)
19737 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19738 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3456(%rax)
19739 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19740 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3392(%rax)
19741 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19742 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3328(%rax)
19743 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19744 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3264(%rax)
19745 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19746 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3200(%rax)
19747 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19748 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3072(%rax)
19749 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19750 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3136(%rax)
19751 ; AVX512DQ-NEXT:    addq $6280, %rsp # imm = 0x1888
19752 ; AVX512DQ-NEXT:    vzeroupper
19753 ; AVX512DQ-NEXT:    retq
19755 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf64:
19756 ; AVX512DQ-FCP:       # %bb.0:
19757 ; AVX512DQ-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
19758 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19759 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
19760 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19761 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
19762 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19763 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm14
19764 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19765 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm16
19766 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19767 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm11
19768 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19769 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm7
19770 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19771 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm13
19772 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19773 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
19774 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19775 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
19776 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19777 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
19778 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
19779 ; AVX512DQ-FCP-NEXT:    movb $96, %r10b
19780 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k1
19781 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
19782 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm22
19783 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
19784 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
19785 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
19786 ; AVX512DQ-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19787 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19788 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [9,1,9,1,9,1,9,1]
19789 ; AVX512DQ-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19790 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19791 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm2
19792 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,9,0,3,4,9,0,3]
19793 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
19794 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm10, %zmm2
19795 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19796 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm0
19797 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
19798 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm2
19799 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
19800 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm7
19801 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19802 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r9), %ymm13
19803 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19804 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm0
19805 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19806 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r8), %ymm6
19807 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19808 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
19809 ; AVX512DQ-FCP-NEXT:    movb $28, %r10b
19810 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k2
19811 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
19812 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19813 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [4,12,0,5,4,12,0,5]
19814 ; AVX512DQ-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
19815 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19816 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm7, %zmm2
19817 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,1,12,7,0,1,12,7]
19818 ; AVX512DQ-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
19819 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm15, %zmm2
19820 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19821 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
19822 ; AVX512DQ-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
19823 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19824 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm2
19825 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
19826 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,13,6,7,0,13,6,7]
19827 ; AVX512DQ-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
19828 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
19829 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19830 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
19831 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm23, %zmm1
19832 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
19833 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
19834 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm2
19835 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19836 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
19837 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm8, %zmm1
19838 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
19839 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm2
19840 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
19841 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
19842 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
19843 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19844 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
19845 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm27
19846 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19847 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm9, %zmm2
19848 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm2
19849 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19850 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19851 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm7, %zmm2
19852 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm2
19853 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19854 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
19855 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
19856 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm2
19857 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19858 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19859 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm23, %zmm1
19860 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm5
19861 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19862 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
19863 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19864 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
19865 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm8, %zmm1
19866 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm2
19867 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19868 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
19869 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19870 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm2
19871 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
19872 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rax), %zmm6
19873 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r9), %ymm0
19874 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19875 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %ymm30
19876 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm30[0],ymm0[0],ymm30[2],ymm0[2]
19877 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
19878 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19879 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
19880 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r9), %zmm16
19881 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
19882 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm9, %zmm5
19883 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
19884 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm5
19885 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19886 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
19887 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm5
19888 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
19889 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19890 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm5
19891 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm5
19892 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm19, %zmm5
19893 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19894 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19895 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm2
19896 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm18, %zmm6
19897 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19898 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
19899 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19900 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
19901 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm8, %zmm2
19902 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm5
19903 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19904 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
19905 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19906 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm5
19907 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k1}
19908 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rax), %zmm22
19909 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %ymm24
19910 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %ymm25
19911 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm25[0],ymm24[0],ymm25[2],ymm24[2]
19912 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm22[2,3,2,3]
19913 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19914 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
19915 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %zmm13
19916 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
19917 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm1, %zmm9
19918 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm9
19919 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19920 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0
19921 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
19922 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm6
19923 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm12
19924 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
19925 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm12
19926 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19927 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm7
19928 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm20, %zmm7
19929 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm7
19930 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19931 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm17
19932 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
19933 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm22
19934 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19935 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
19936 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19937 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm3
19938 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19939 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
19940 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
19941 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19942 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm7
19943 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19944 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
19945 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm7
19946 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
19947 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19948 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
19949 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rax), %zmm22
19950 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%r9), %ymm15
19951 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%r8), %ymm11
19952 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
19953 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm5[2,3,2,3],zmm22[2,3,2,3]
19954 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19955 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%r8), %zmm7
19956 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%r9), %zmm5
19957 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19958 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm12
19959 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
19960 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm12
19961 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19962 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19963 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19964 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm12
19965 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm12
19966 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19967 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
19968 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19969 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
19970 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm9
19971 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm9
19972 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19973 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19974 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19975 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm23, %zmm7
19976 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm22
19977 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19978 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
19979 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm21
19980 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
19981 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm2, %zmm7
19982 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm1
19983 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19984 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm14
19985 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm3, %zmm1
19986 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1 {%k1}
19987 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rax), %zmm2
19988 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%r9), %ymm9
19989 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%r8), %ymm3
19990 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm3[0],ymm9[0],ymm3[2],ymm9[2]
19991 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm7[2,3,2,3],zmm2[2,3,2,3]
19992 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19993 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%r8), %zmm10
19994 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%r9), %zmm7
19995 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
19996 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm1
19997 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm22
19998 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
19999 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20000 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
20001 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm1
20002 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
20003 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20004 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
20005 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm0
20006 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm0
20007 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20008 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
20009 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm23, %zmm10
20010 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm18, %zmm2
20011 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20012 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
20013 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
20014 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload
20015 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20016 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
20017 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
20018 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20019 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm30 # 32-byte Folded Reload
20020 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm30, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20021 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm24, %ymm0, %ymm25
20022 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm25, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20023 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm15, %ymm0, %ymm11
20024 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20025 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm9, %ymm0, %ymm3
20026 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20027 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%r9), %ymm4
20028 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%r8), %ymm1
20029 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
20030 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20031 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm4, %ymm0, %ymm1
20032 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20033 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm19
20034 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm15
20035 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0
20036 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
20037 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm30
20038 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20039 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm9
20040 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm30
20041 ; AVX512DQ-FCP-NEXT:    movb $24, %r10b
20042 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k3
20043 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k3}
20044 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [0,8,0,8,0,8,0,8]
20045 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20046 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20047 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm0 # 64-byte Folded Reload
20048 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20049 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20050 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm18, %zmm0
20051 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20052 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20053 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm18, %zmm0
20054 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20055 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm17
20056 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20057 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm12
20058 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20059 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm8
20060 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20061 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
20062 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
20063 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
20064 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
20065 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
20066 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm30
20067 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm18
20068 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm22
20069 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20070 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
20071 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20072 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
20073 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20074 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm7
20075 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
20076 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
20077 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20078 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
20079 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
20080 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20081 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
20082 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20083 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm10
20084 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
20085 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
20086 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
20087 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm13
20088 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
20089 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20090 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm17
20091 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm17
20092 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm7
20093 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20094 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20095 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20096 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
20097 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20098 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
20099 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm5, %zmm0
20100 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20101 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
20102 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm0
20103 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20104 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm23, %zmm4
20105 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20106 ; AVX512DQ-FCP-NEXT:    movb $48, %r10b
20107 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k4
20108 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
20109 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
20110 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20111 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm6
20112 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20113 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm6
20114 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20115 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
20116 ; AVX512DQ-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
20117 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20118 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm6, %zmm12
20119 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20120 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm11[0],zmm0[0],zmm11[2],zmm0[2],zmm11[4],zmm0[4],zmm11[6],zmm0[6]
20121 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20122 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
20123 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
20124 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20125 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
20126 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
20127 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20128 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm11
20129 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20130 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
20131 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
20132 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20133 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm8, %zmm0
20134 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20135 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20136 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm5, %zmm0
20137 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20138 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20139 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm1, %zmm0
20140 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20141 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm11
20142 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20143 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20144 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20145 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20146 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm11
20147 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20148 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
20149 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
20150 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20151 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
20152 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20153 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20154 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
20155 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20156 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20157 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
20158 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20159 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
20160 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20161 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20162 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20163 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20164 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm3
20165 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20166 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm11
20167 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20168 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20169 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
20170 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20171 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
20172 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20173 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20174 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20175 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm0
20176 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20177 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm11
20178 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
20179 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm26[0],zmm12[2],zmm26[2],zmm12[4],zmm26[4],zmm12[6],zmm26[6]
20180 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20181 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20182 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm0
20183 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20184 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20185 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm0
20186 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20187 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm12
20188 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20189 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20190 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
20191 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20192 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
20193 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
20194 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm16
20195 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20196 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
20197 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm16
20198 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20199 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
20200 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20201 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20202 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20203 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm3
20204 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20205 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm3
20206 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
20207 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
20208 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm12 {%k4} = zmm0[0],zmm28[0],zmm0[2],zmm28[2],zmm0[4],zmm28[4],zmm0[6],zmm28[6]
20209 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20210 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20211 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
20212 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20213 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20214 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
20215 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20216 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm0
20217 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20218 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
20219 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20220 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm28
20221 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20222 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm3
20223 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20224 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20225 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm3
20226 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20227 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
20228 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20229 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20230 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
20231 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20232 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm29
20233 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
20234 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm27
20235 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm3[0],zmm0[2],zmm3[2],zmm0[4],zmm3[4],zmm0[6],zmm3[6]
20236 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20237 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm12
20238 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20239 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20240 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm12
20241 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20242 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
20243 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20244 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm26
20245 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20246 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm26
20247 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20248 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm5, %zmm3
20249 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20250 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20251 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
20252 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20253 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm0
20254 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20255 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
20256 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
20257 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16
20258 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm16
20259 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm25
20260 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm31, %zmm6, %zmm25
20261 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k4} = zmm31[0],zmm21[0],zmm31[2],zmm21[2],zmm31[4],zmm21[4],zmm31[6],zmm21[6]
20262 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm22
20263 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm14
20264 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm3
20265 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm23, %zmm31
20266 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm22
20267 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm5, %zmm14
20268 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20269 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm1, %zmm3
20270 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20271 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm15, %zmm19, %zmm2
20272 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20273 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm19, %zmm15, %zmm8
20274 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
20275 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
20276 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20277 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm19
20278 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20279 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
20280 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm19
20281 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20282 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
20283 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm15, %zmm3
20284 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
20285 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
20286 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm20
20287 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20288 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm20
20289 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm15
20290 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20291 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm14[0],zmm9[0],zmm14[2],zmm9[2],zmm14[4],zmm9[4],zmm14[6],zmm9[6]
20292 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm5
20293 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
20294 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm14
20295 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20296 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm23
20297 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
20298 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
20299 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
20300 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm1 # 64-byte Folded Reload
20301 ; AVX512DQ-FCP-NEXT:    # zmm1 = zmm19[0,1,2,3],mem[4,5,6,7]
20302 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k1}
20303 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
20304 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
20305 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm13, %zmm9
20306 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k1}
20307 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [12,0,0,3,4,5,6,13]
20308 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
20309 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm16 {%k3}
20310 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
20311 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm16
20312 ; AVX512DQ-FCP-NEXT:    movb $6, %sil
20313 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k5
20314 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
20315 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
20316 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
20317 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
20318 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
20319 ; AVX512DQ-FCP-NEXT:    movb $64, %sil
20320 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20321 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
20322 ; AVX512DQ-FCP-NEXT:    movb $4, %sil
20323 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20324 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
20325 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
20326 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,11,0,4,5,6,7]
20327 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm21
20328 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
20329 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm3
20330 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
20331 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm7
20332 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
20333 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm9
20334 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
20335 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm16
20336 ; AVX512DQ-FCP-NEXT:    movb $12, %sil
20337 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20338 ; AVX512DQ-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
20339 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
20340 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
20341 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
20342 ; AVX512DQ-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
20343 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
20344 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
20345 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,3,9,0,6,7]
20346 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm10
20347 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
20348 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20349 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20350 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
20351 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
20352 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20353 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20354 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
20355 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
20356 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20357 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm15
20358 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm15 {%k5}
20359 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
20360 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20361 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm14
20362 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
20363 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
20364 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20365 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
20366 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
20367 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20368 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
20369 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
20370 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20371 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k5}
20372 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
20373 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20374 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20375 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
20376 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20377 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20378 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
20379 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20380 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
20381 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20382 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
20383 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20384 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
20385 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20386 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20387 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
20388 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20389 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
20390 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
20391 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
20392 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
20393 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
20394 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20395 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
20396 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm0
20397 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20398 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
20399 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
20400 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20401 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm16
20402 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
20403 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
20404 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20405 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
20406 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
20407 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20408 ; AVX512DQ-FCP-NEXT:    movb $8, %sil
20409 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
20410 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm21 {%k2}
20411 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20412 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20413 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
20414 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20415 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20416 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
20417 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20418 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20419 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
20420 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20421 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20422 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k3}
20423 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20424 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20425 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
20426 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20427 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
20428 ; AVX512DQ-FCP-NEXT:    movb $-31, %sil
20429 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
20430 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20431 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
20432 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20433 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20434 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
20435 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20436 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20437 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
20438 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20439 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20440 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
20441 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20442 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20443 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
20444 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20445 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20446 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
20447 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm4
20448 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20449 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20450 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20451 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm1 {%k4}
20452 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%rdx), %xmm4
20453 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20454 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20455 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20456 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm3 {%k4}
20457 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%rdx), %xmm4
20458 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20459 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20460 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20461 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k4}
20462 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%rdx), %xmm4
20463 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20464 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20465 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20466 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm9 {%k4}
20467 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%rdx), %xmm4
20468 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20469 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20470 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm29 {%k4}
20471 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%rdx), %xmm4
20472 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20473 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20474 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm22 {%k4}
20475 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%rdx), %xmm4
20476 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20477 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20478 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm23 {%k4}
20479 ; AVX512DQ-FCP-NEXT:    movb $112, %cl
20480 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20481 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20482 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
20483 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20484 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20485 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm3 {%k2}
20486 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20487 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20488 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm7 {%k2}
20489 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20490 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20491 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm9 {%k2}
20492 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20493 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20494 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm29 {%k2}
20495 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20496 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm22 {%k2}
20497 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 384(%rax), %zmm18, %zmm23 {%k2}
20498 ; AVX512DQ-FCP-NEXT:    movb $56, %cl
20499 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20500 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20501 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
20502 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20503 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20504 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
20505 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20506 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20507 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
20508 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20509 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20510 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
20511 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20512 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20513 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
20514 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20515 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
20516 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm20 {%k2}
20517 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20518 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20519 ; AVX512DQ-FCP-NEXT:    movb $14, %cl
20520 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20521 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
20522 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k2}
20523 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20524 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20525 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
20526 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm15 {%k2}
20527 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20528 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20529 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20530 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
20531 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20532 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20533 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20534 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k2}
20535 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20536 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20537 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm28 {%k2}
20538 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20539 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20540 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm26 {%k2}
20541 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20542 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20543 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm8 {%k2}
20544 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20545 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20546 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
20547 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20548 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20549 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
20550 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20551 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20552 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
20553 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20554 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20555 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
20556 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20557 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20558 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k1}
20559 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20560 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20561 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
20562 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20563 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
20564 ; AVX512DQ-FCP-NEXT:    movb $120, %al
20565 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
20566 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20567 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
20568 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20569 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
20570 ; AVX512DQ-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
20571 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20572 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k1}
20573 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20574 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
20575 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20576 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2 {%k1}
20577 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20578 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1 {%k1}
20579 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20580 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm0 {%k1}
20581 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k1}
20582 ; AVX512DQ-FCP-NEXT:    movb $-61, %al
20583 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
20584 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20585 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
20586 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20587 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
20588 ; AVX512DQ-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
20589 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20590 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
20591 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20592 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
20593 ; AVX512DQ-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
20594 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20595 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k1}
20596 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20597 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
20598 ; AVX512DQ-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
20599 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20600 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k1}
20601 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20602 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
20603 ; AVX512DQ-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
20604 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20605 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm12 {%k1}
20606 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20607 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload
20608 ; AVX512DQ-FCP-NEXT:    # zmm13 = zmm13[0,1,2,3],mem[4,5,6,7]
20609 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
20610 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm13 {%k1}
20611 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
20612 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm18 # 64-byte Folded Reload
20613 ; AVX512DQ-FCP-NEXT:    # zmm18 = zmm18[0,1,2,3],mem[4,5,6,7]
20614 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
20615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
20616 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20617 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 3008(%rax)
20618 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 2944(%rax)
20619 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 2880(%rax)
20620 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20621 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 2816(%rax)
20622 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
20623 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
20624 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 2624(%rax)
20625 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 2560(%rax)
20626 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
20627 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 2432(%rax)
20628 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20629 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 2368(%rax)
20630 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 2304(%rax)
20631 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 2240(%rax)
20632 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20633 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
20634 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, 2112(%rax)
20635 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
20636 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
20637 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20638 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 1920(%rax)
20639 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 1856(%rax)
20640 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
20641 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20642 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
20643 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
20644 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
20645 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 1536(%rax)
20646 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20647 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 1472(%rax)
20648 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20649 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1408(%rax)
20650 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20651 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
20652 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20653 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
20654 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
20655 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
20656 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 1088(%rax)
20657 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20658 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
20659 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20660 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
20661 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20662 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
20663 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20664 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
20665 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
20666 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 704(%rax)
20667 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 640(%rax)
20668 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20669 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
20670 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20671 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
20672 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20673 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
20674 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20675 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
20676 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
20677 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
20678 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
20679 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20680 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm4, 128(%rax)
20681 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20682 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
20683 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20684 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, (%rax)
20685 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 3520(%rax)
20686 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20687 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
20688 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20689 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
20690 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 3328(%rax)
20691 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20692 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
20693 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20694 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
20695 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, 3072(%rax)
20696 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20697 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
20698 ; AVX512DQ-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
20699 ; AVX512DQ-FCP-NEXT:    vzeroupper
20700 ; AVX512DQ-FCP-NEXT:    retq
20702 ; AVX512BW-LABEL: store_i64_stride7_vf64:
20703 ; AVX512BW:       # %bb.0:
20704 ; AVX512BW-NEXT:    subq $6248, %rsp # imm = 0x1868
20705 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20706 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm0
20707 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20708 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm19
20709 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20710 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm9
20711 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20712 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm16
20713 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20714 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm17
20715 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, (%rsp) # 64-byte Spill
20716 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm3
20717 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20718 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm4
20719 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20720 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm18
20721 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20722 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [11,3,11,3,11,3,11,3]
20723 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20724 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
20725 ; AVX512BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
20726 ; AVX512BW-NEXT:    movb $96, %r10b
20727 ; AVX512BW-NEXT:    kmovd %r10d, %k1
20728 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm1
20729 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm15
20730 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm5
20731 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm6
20732 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
20733 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20734 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20735 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
20736 ; AVX512BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20737 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
20738 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm8, %zmm2
20739 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [4,9,0,3,4,9,0,3]
20740 ; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
20741 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm24, %zmm2
20742 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20743 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm11, %zmm0
20744 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
20745 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm31, %zmm2
20746 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
20747 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm7
20748 ; AVX512BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20749 ; AVX512BW-NEXT:    vmovdqa 64(%r9), %ymm3
20750 ; AVX512BW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20751 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm0
20752 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20753 ; AVX512BW-NEXT:    vmovdqa 64(%r8), %ymm4
20754 ; AVX512BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20755 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
20756 ; AVX512BW-NEXT:    movb $28, %r10b
20757 ; AVX512BW-NEXT:    kmovd %r10d, %k2
20758 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
20759 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20760 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
20761 ; AVX512BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
20762 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0
20763 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm28, %zmm0
20764 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm30 = [0,1,12,7,0,1,12,7]
20765 ; AVX512BW-NEXT:    # zmm30 = mem[0,1,2,3,0,1,2,3]
20766 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm30, %zmm0
20767 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20768 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
20769 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
20770 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
20771 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm9
20772 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20773 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm0
20774 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,13,6,7,0,13,6,7]
20775 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
20776 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm0
20777 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20778 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm25, %zmm1
20779 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [6,13,14,7,6,13,14,7]
20780 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
20781 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
20782 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20783 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
20784 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
20785 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm2
20786 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
20787 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
20788 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
20789 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
20790 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20791 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm1
20792 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm16
20793 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20794 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm8, %zmm3
20795 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm24, %zmm3
20796 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20797 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20798 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm28, %zmm3
20799 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm30, %zmm3
20800 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20801 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm3
20802 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
20803 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm15, %zmm3
20804 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20805 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm29
20806 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm25, %zmm1
20807 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm6
20808 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20809 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm27
20810 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
20811 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20812 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
20813 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
20814 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm17
20815 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm21
20816 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
20817 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20818 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm3
20819 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
20820 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
20821 ; AVX512BW-NEXT:    vmovdqa64 128(%rax), %zmm5
20822 ; AVX512BW-NEXT:    vmovdqa 128(%r9), %ymm4
20823 ; AVX512BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20824 ; AVX512BW-NEXT:    vmovdqa 128(%r8), %ymm1
20825 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20826 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
20827 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
20828 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20829 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm1
20830 ; AVX512BW-NEXT:    vmovdqa64 128(%r9), %zmm6
20831 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20832 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm3
20833 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11
20834 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm24, %zmm3
20835 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20836 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20837 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm28, %zmm3
20838 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm30, %zmm3
20839 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20840 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3
20841 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
20842 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm3
20843 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20844 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm20
20845 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm25, %zmm1
20846 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
20847 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20848 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm26
20849 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
20850 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20851 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
20852 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm1
20853 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm18
20854 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
20855 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20856 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm3
20857 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
20858 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
20859 ; AVX512BW-NEXT:    vmovdqa64 192(%rax), %zmm0
20860 ; AVX512BW-NEXT:    vmovdqa 192(%r9), %ymm5
20861 ; AVX512BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20862 ; AVX512BW-NEXT:    vmovdqa 192(%r8), %ymm1
20863 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20864 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
20865 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
20866 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20867 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm1
20868 ; AVX512BW-NEXT:    vmovdqa64 192(%r9), %zmm8
20869 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20870 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm11, %zmm3
20871 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm3
20872 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20873 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20874 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm28, %zmm3
20875 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm30, %zmm3
20876 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20877 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5
20878 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm5
20879 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm3
20880 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm15, %zmm5
20881 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20882 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9
20883 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
20884 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm0
20885 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20886 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm15
20887 ; AVX512BW-NEXT:    vmovdqa64 256(%rsi), %zmm22
20888 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
20889 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm14
20890 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20891 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm17, %zmm1
20892 ; AVX512BW-NEXT:    vmovdqa64 256(%rdx), %zmm12
20893 ; AVX512BW-NEXT:    vmovdqa64 256(%rcx), %zmm23
20894 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm5
20895 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm31, %zmm5
20896 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
20897 ; AVX512BW-NEXT:    vmovdqa64 256(%rax), %zmm0
20898 ; AVX512BW-NEXT:    vmovdqa 256(%r9), %ymm7
20899 ; AVX512BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20900 ; AVX512BW-NEXT:    vmovdqa 256(%r8), %ymm1
20901 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20902 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[2],ymm7[2]
20903 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
20904 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20905 ; AVX512BW-NEXT:    vmovdqa64 256(%r8), %zmm5
20906 ; AVX512BW-NEXT:    vmovdqa64 256(%r9), %zmm2
20907 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm17
20908 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm7
20909 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm17
20910 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm17
20911 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20912 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20913 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm11
20914 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm11
20915 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm30, %zmm11
20916 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20917 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20918 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11
20919 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm11
20920 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
20921 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20922 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20923 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4
20924 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm5
20925 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm0
20926 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20927 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm19
20928 ; AVX512BW-NEXT:    vmovdqa64 320(%rsi), %zmm0
20929 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20930 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm5
20931 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm5
20932 ; AVX512BW-NEXT:    vmovdqa64 320(%rdx), %zmm11
20933 ; AVX512BW-NEXT:    vmovdqa64 320(%rcx), %zmm17
20934 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm14
20935 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm31, %zmm14
20936 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k1}
20937 ; AVX512BW-NEXT:    vmovdqa64 320(%rax), %zmm1
20938 ; AVX512BW-NEXT:    vmovdqa 320(%r9), %ymm5
20939 ; AVX512BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20940 ; AVX512BW-NEXT:    vmovdqa 320(%r8), %ymm0
20941 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20942 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]
20943 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm5[2,3,2,3],zmm1[2,3,2,3]
20944 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20945 ; AVX512BW-NEXT:    vmovdqa64 320(%r8), %zmm5
20946 ; AVX512BW-NEXT:    vmovdqa64 320(%r9), %zmm14
20947 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
20948 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm7, %zmm0
20949 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
20950 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20951 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
20952 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
20953 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm30, %zmm0
20954 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20955 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm0
20956 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
20957 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
20958 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20959 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
20960 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm25, %zmm5
20961 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm1
20962 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20963 ; AVX512BW-NEXT:    vmovdqa64 384(%rdx), %zmm5
20964 ; AVX512BW-NEXT:    vmovdqa64 384(%rcx), %zmm24
20965 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
20966 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm25, %zmm0
20967 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm10
20968 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20969 ; AVX512BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
20970 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20971 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm10
20972 ; AVX512BW-NEXT:    movb $24, %r10b
20973 ; AVX512BW-NEXT:    kmovd %r10d, %k3
20974 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
20975 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
20976 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20977 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20978 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
20979 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20980 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm1, %zmm29
20981 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20982 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm20
20983 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20984 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm9
20985 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20986 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm4
20987 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20988 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
20989 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20990 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
20991 ; AVX512BW-NEXT:    vmovdqa64 384(%r8), %zmm0
20992 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
20993 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
20994 ; AVX512BW-NEXT:    vmovdqa64 384(%r9), %zmm1
20995 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,15,0]
20996 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm3, %zmm10
20997 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20998 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
20999 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21000 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm7
21001 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21002 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm28
21003 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21004 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm1
21005 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21006 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,5,13,5,13,5,13,5]
21007 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21008 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21009 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21010 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21011 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
21012 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21013 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,6,14,6,14,6,14]
21014 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21015 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21016 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
21017 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21018 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21019 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm2
21020 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21021 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
21022 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
21023 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
21024 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21025 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
21026 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21027 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
21028 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm7, %zmm1
21029 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21030 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21031 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
21032 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21033 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21034 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
21035 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21036 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm13
21037 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14
21038 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21039 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
21040 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm7, %zmm0
21041 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21042 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21043 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm10, %zmm0
21044 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21045 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21046 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
21047 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21048 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm2, %zmm29
21049 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21050 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
21051 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm7, %zmm0
21052 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21053 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21054 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm10, %zmm0
21055 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21056 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21057 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm0
21058 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21059 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm2, %zmm20
21060 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21061 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm7, %zmm0
21062 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21063 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21064 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm10, %zmm0
21065 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21066 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21067 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
21068 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21069 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm2, %zmm23
21070 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm21
21071 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21072 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm7, %zmm0
21073 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21074 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21075 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm10, %zmm0
21076 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21077 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21078 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm25, %zmm0
21079 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21080 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm2, %zmm17
21081 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm28
21082 ; AVX512BW-NEXT:    vmovdqa64 448(%rdx), %zmm8
21083 ; AVX512BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
21084 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm6
21085 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm6
21086 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm11
21087 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm5, %zmm31
21088 ; AVX512BW-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
21089 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
21090 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm7, %zmm1
21091 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21092 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
21093 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm10, %zmm1
21094 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21095 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm11
21096 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9
21097 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm2, %zmm9
21098 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm12
21099 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm12
21100 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm13
21101 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm13
21102 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm8
21103 ; AVX512BW-NEXT:    movb $48, %r10b
21104 ; AVX512BW-NEXT:    kmovd %r10d, %k4
21105 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
21106 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
21107 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21108 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21109 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21110 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
21111 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21112 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
21113 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21114 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2
21115 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21116 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
21117 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
21118 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
21119 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
21120 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21121 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm2
21122 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21123 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
21124 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21125 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm16
21126 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21127 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21128 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21129 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
21130 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21131 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm14 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
21132 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21133 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21134 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2
21135 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14
21136 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
21137 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21138 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm3
21139 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21140 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
21141 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21142 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm14
21143 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21144 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21145 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm5, %zmm1
21146 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21147 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k4} = zmm27[0],zmm0[0],zmm27[2],zmm0[2],zmm27[4],zmm0[4],zmm27[6],zmm0[6]
21148 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21149 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm2
21150 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
21151 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm23
21152 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm27
21153 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21154 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
21155 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21156 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
21157 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21158 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm23
21159 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21160 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21161 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
21162 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21163 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
21164 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21165 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm29
21166 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
21167 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm31
21168 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
21169 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21170 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm29
21171 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
21172 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21173 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
21174 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm30
21175 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
21176 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm21 {%k4} = zmm15[0],zmm22[0],zmm15[2],zmm22[2],zmm15[4],zmm22[4],zmm15[6],zmm22[6]
21177 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21178 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
21179 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
21180 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm26
21181 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm27
21182 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm4, %zmm27
21183 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm7, %zmm1
21184 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21185 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm10, %zmm0
21186 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21187 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm25, %zmm26
21188 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm15
21189 ; AVX512BW-NEXT:    vmovdqa64 448(%rsi), %zmm0
21190 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm17
21191 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm17
21192 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm22
21193 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21194 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm22
21195 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm24
21196 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm5, %zmm24
21197 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm19[0],zmm1[0],zmm19[2],zmm1[2],zmm19[4],zmm1[4],zmm19[6],zmm1[6]
21198 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21199 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm18
21200 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm2
21201 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm21
21202 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm21
21203 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm18
21204 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
21205 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21206 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
21207 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm20
21208 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
21209 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm5, %zmm20
21210 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm3
21211 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
21212 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
21213 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm25
21214 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
21215 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm1
21216 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm7
21217 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm2
21218 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
21219 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm10
21220 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm28[0],zmm19[0],zmm28[2],zmm19[2],zmm28[4],zmm19[4],zmm28[6],zmm19[6]
21221 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21222 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm4, %zmm28
21223 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm9 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
21224 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
21225 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
21226 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
21227 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k1}
21228 ; AVX512BW-NEXT:    vmovdqa64 448(%r8), %zmm3
21229 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
21230 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm9, %zmm5
21231 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1 {%k1}
21232 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [12,0,0,3,4,5,6,13]
21233 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm1, %zmm9
21234 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm17 {%k3}
21235 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
21236 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm17
21237 ; AVX512BW-NEXT:    movb $6, %sil
21238 ; AVX512BW-NEXT:    kmovd %esi, %k4
21239 ; AVX512BW-NEXT:    vpbroadcastq 456(%rcx), %ymm1
21240 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
21241 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
21242 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,9,0,0,6,7]
21243 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm0, %zmm8
21244 ; AVX512BW-NEXT:    movb $64, %sil
21245 ; AVX512BW-NEXT:    kmovd %esi, %k5
21246 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
21247 ; AVX512BW-NEXT:    movb $4, %sil
21248 ; AVX512BW-NEXT:    kmovd %esi, %k5
21249 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k5}
21250 ; AVX512BW-NEXT:    vmovdqa64 448(%r9), %zmm0
21251 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
21252 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
21253 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm11
21254 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
21255 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
21256 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
21257 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm5
21258 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [13,0,2,3,4,5,6,14]
21259 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
21260 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
21261 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm17
21262 ; AVX512BW-NEXT:    movb $12, %sil
21263 ; AVX512BW-NEXT:    kmovd %esi, %k5
21264 ; AVX512BW-NEXT:    vmovdqa 448(%rdx), %xmm2
21265 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
21266 ; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
21267 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
21268 ; AVX512BW-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
21269 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
21270 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
21271 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
21272 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm2
21273 ; AVX512BW-NEXT:    vmovdqa64 384(%rax), %zmm0
21274 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
21275 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21276 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
21277 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
21278 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
21279 ; AVX512BW-NEXT:    vmovdqa 384(%r9), %ymm12
21280 ; AVX512BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21281 ; AVX512BW-NEXT:    vmovdqa 384(%r8), %ymm8
21282 ; AVX512BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21283 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
21284 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
21285 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
21286 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21287 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
21288 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
21289 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21290 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21291 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
21292 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
21293 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
21294 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
21295 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
21296 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21297 ; AVX512BW-NEXT:    vmovdqa64 448(%rax), %zmm0
21298 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [0,1,2,3,10,5,6,7]
21299 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm12
21300 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21301 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,12,3,4,5,6,7]
21302 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm3
21303 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21304 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,13,2,3,4,5,6,7]
21305 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
21306 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21307 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm17
21308 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,8,7]
21309 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm3
21310 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21311 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,9,6,7]
21312 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
21313 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21314 ; AVX512BW-NEXT:    movb $8, %sil
21315 ; AVX512BW-NEXT:    kmovd %esi, %k2
21316 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
21317 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21318 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21319 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k3}
21320 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21321 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
21322 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21323 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
21324 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21325 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
21326 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21327 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
21328 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21329 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k3}
21330 ; AVX512BW-NEXT:    movb $-31, %sil
21331 ; AVX512BW-NEXT:    kmovd %esi, %k2
21332 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21333 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
21334 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21335 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21336 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
21337 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21338 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21339 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
21340 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21341 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21342 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
21343 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21344 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
21345 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21346 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
21347 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm0
21348 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21349 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21350 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21351 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
21352 ; AVX512BW-NEXT:    vmovdqa 64(%rdx), %xmm0
21353 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21354 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21355 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21356 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k5}
21357 ; AVX512BW-NEXT:    vmovdqa 128(%rdx), %xmm0
21358 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21359 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21360 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21361 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
21362 ; AVX512BW-NEXT:    vmovdqa 192(%rdx), %xmm0
21363 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21364 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21365 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21366 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
21367 ; AVX512BW-NEXT:    vmovdqa 256(%rdx), %xmm0
21368 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21369 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21370 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
21371 ; AVX512BW-NEXT:    vmovdqa 320(%rdx), %xmm0
21372 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21373 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21374 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
21375 ; AVX512BW-NEXT:    vmovdqa 384(%rdx), %xmm0
21376 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21377 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21378 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
21379 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21380 ; AVX512BW-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm0
21381 ; AVX512BW-NEXT:    movb $112, %sil
21382 ; AVX512BW-NEXT:    kmovd %esi, %k2
21383 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
21384 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21385 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21386 ; AVX512BW-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm0
21387 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
21388 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21389 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21390 ; AVX512BW-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm0
21391 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
21392 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21393 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21394 ; AVX512BW-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
21395 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
21396 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21397 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21398 ; AVX512BW-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm0
21399 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
21400 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21401 ; AVX512BW-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm0
21402 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
21403 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21404 ; AVX512BW-NEXT:    vinserti32x4 $3, 384(%rax), %zmm0, %zmm0
21405 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
21406 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm0
21407 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21408 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21409 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k4}
21410 ; AVX512BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
21411 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21412 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21413 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
21414 ; AVX512BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
21415 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21416 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21417 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
21418 ; AVX512BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
21419 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21420 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21421 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
21422 ; AVX512BW-NEXT:    vpbroadcastq 264(%rcx), %ymm0
21423 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21424 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
21425 ; AVX512BW-NEXT:    vpbroadcastq 328(%rcx), %ymm0
21426 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21427 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
21428 ; AVX512BW-NEXT:    vpbroadcastq 392(%rcx), %ymm0
21429 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21430 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
21431 ; AVX512BW-NEXT:    movb $56, %cl
21432 ; AVX512BW-NEXT:    kmovd %ecx, %k2
21433 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21434 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
21435 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21436 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21437 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
21438 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21439 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21440 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
21441 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21442 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21443 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
21444 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21445 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21446 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
21447 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21448 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
21449 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm20 {%k2}
21450 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21451 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21452 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
21453 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21454 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21455 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
21456 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21457 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21458 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
21459 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21460 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
21461 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21462 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21463 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
21464 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21465 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k1}
21466 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21467 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
21468 ; AVX512BW-NEXT:    movb $120, %cl
21469 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21470 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
21471 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm19 {%k1}
21472 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21473 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
21474 ; AVX512BW-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
21475 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
21476 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
21477 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
21478 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm15 {%k1}
21479 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
21480 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm25 {%k1}
21481 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
21482 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm29 {%k1}
21483 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
21484 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm23 {%k1}
21485 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
21486 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12 {%k1}
21487 ; AVX512BW-NEXT:    movb $-61, %cl
21488 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21489 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21490 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
21491 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21492 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 64-byte Folded Reload
21493 ; AVX512BW-NEXT:    # zmm13 = zmm0[0,1,2,3],mem[4,5,6,7]
21494 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21495 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm13 {%k1}
21496 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21497 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
21498 ; AVX512BW-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
21499 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21500 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm11 {%k1}
21501 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21502 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
21503 ; AVX512BW-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
21504 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21505 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
21506 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21507 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
21508 ; AVX512BW-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
21509 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
21510 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
21511 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21512 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
21513 ; AVX512BW-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
21514 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
21515 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
21516 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 64-byte Folded Reload
21517 ; AVX512BW-NEXT:    # zmm7 = zmm10[0,1,2,3],mem[4,5,6,7]
21518 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k1}
21519 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21520 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21521 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21522 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21523 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21524 ; AVX512BW-NEXT:    movb $14, %cl
21525 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21526 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
21527 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm10 {%k1}
21528 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21529 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21530 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21531 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21532 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21533 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
21534 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
21535 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21536 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21537 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21538 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21539 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21540 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
21541 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
21542 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21543 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21544 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21545 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21546 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21547 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21548 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
21549 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21550 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21551 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21552 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21553 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21554 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21555 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
21556 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21557 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21558 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21559 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21560 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21561 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21562 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
21563 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
21564 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
21565 ; AVX512BW-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
21566 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21567 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21568 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21569 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
21570 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
21571 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
21572 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
21573 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
21574 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
21575 ; AVX512BW-NEXT:    vmovaps %zmm0, 2816(%rax)
21576 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
21577 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
21578 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 2624(%rax)
21579 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
21580 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 2496(%rax)
21581 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
21582 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
21583 ; AVX512BW-NEXT:    vmovaps %zmm6, 2368(%rax)
21584 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
21585 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
21586 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
21587 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
21588 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
21589 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
21590 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21591 ; AVX512BW-NEXT:    vmovaps %zmm5, 1920(%rax)
21592 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
21593 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
21594 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
21595 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
21596 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
21597 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
21598 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21599 ; AVX512BW-NEXT:    vmovaps %zmm4, 1472(%rax)
21600 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21601 ; AVX512BW-NEXT:    vmovaps %zmm0, 1408(%rax)
21602 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21603 ; AVX512BW-NEXT:    vmovaps %zmm0, 1344(%rax)
21604 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21605 ; AVX512BW-NEXT:    vmovaps %zmm0, 1280(%rax)
21606 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 1216(%rax)
21607 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
21608 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 1088(%rax)
21609 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21610 ; AVX512BW-NEXT:    vmovaps %zmm3, 1024(%rax)
21611 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21612 ; AVX512BW-NEXT:    vmovaps %zmm0, 960(%rax)
21613 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21614 ; AVX512BW-NEXT:    vmovaps %zmm0, 896(%rax)
21615 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21616 ; AVX512BW-NEXT:    vmovaps %zmm0, 832(%rax)
21617 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 768(%rax)
21618 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 704(%rax)
21619 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 640(%rax)
21620 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21621 ; AVX512BW-NEXT:    vmovaps %zmm2, 576(%rax)
21622 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21623 ; AVX512BW-NEXT:    vmovaps %zmm0, 512(%rax)
21624 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21625 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%rax)
21626 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21627 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
21628 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 320(%rax)
21629 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 256(%rax)
21630 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
21631 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21632 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
21633 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21634 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
21635 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21636 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
21637 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 3520(%rax)
21638 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21639 ; AVX512BW-NEXT:    vmovaps %zmm0, 3456(%rax)
21640 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21641 ; AVX512BW-NEXT:    vmovaps %zmm0, 3392(%rax)
21642 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21643 ; AVX512BW-NEXT:    vmovaps %zmm0, 3328(%rax)
21644 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21645 ; AVX512BW-NEXT:    vmovaps %zmm0, 3264(%rax)
21646 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21647 ; AVX512BW-NEXT:    vmovaps %zmm0, 3200(%rax)
21648 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21649 ; AVX512BW-NEXT:    vmovaps %zmm0, 3072(%rax)
21650 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21651 ; AVX512BW-NEXT:    vmovaps %zmm0, 3136(%rax)
21652 ; AVX512BW-NEXT:    addq $6248, %rsp # imm = 0x1868
21653 ; AVX512BW-NEXT:    vzeroupper
21654 ; AVX512BW-NEXT:    retq
21656 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf64:
21657 ; AVX512BW-FCP:       # %bb.0:
21658 ; AVX512BW-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
21659 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
21660 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
21661 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21662 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13
21663 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21664 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm8
21665 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21666 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm20
21667 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, (%rsp) # 64-byte Spill
21668 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
21669 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21670 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm10
21671 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21672 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm11
21673 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21674 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm19
21675 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21676 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm29 = [11,3,11,3,11,3,11,3]
21677 ; AVX512BW-FCP-NEXT:    # zmm29 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21678 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm9 = [2,10,0,3,2,10,0,3]
21679 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3]
21680 ; AVX512BW-FCP-NEXT:    movb $96, %r10b
21681 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k1
21682 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
21683 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm18
21684 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm4
21685 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
21686 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
21687 ; AVX512BW-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21688 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21689 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [9,1,9,1,9,1,9,1]
21690 ; AVX512BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21691 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
21692 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm6, %zmm2
21693 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [4,9,0,3,4,9,0,3]
21694 ; AVX512BW-FCP-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
21695 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm12, %zmm2
21696 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21697 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm29, %zmm0
21698 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
21699 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm2
21700 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
21701 ; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %ymm0
21702 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21703 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm10
21704 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21705 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm8
21706 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21707 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm7
21708 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21709 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm8[0],ymm0[0],ymm8[2],ymm0[2]
21710 ; AVX512BW-FCP-NEXT:    movb $28, %r10b
21711 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k2
21712 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
21713 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21714 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
21715 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
21716 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
21717 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm2, %zmm0
21718 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,1,12,7,0,1,12,7]
21719 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
21720 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
21721 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21722 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [5,0,14,6,5,0,14,6]
21723 ; AVX512BW-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
21724 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21725 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
21726 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm0
21727 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,13,6,7,0,13,6,7]
21728 ; AVX512BW-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
21729 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm16, %zmm0
21730 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21731 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm1
21732 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
21733 ; AVX512BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
21734 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm4
21735 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21736 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
21737 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm20, %zmm29, %zmm1
21738 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm4
21739 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
21740 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
21741 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
21742 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
21743 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21744 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
21745 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm30
21746 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
21747 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm4
21748 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
21749 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21750 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
21751 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
21752 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
21753 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm2, %zmm4
21754 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
21755 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21756 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
21757 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm2
21758 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm16, %zmm2
21759 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21760 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21761 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm23, %zmm1
21762 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm7
21763 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21764 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
21765 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21766 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
21767 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm29, %zmm1
21768 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm4
21769 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21770 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
21771 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21772 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm4
21773 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
21774 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm7
21775 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm1
21776 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21777 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm0
21778 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21779 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
21780 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm7[2,3,2,3]
21781 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21782 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm4
21783 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm19
21784 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21785 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm6, %zmm3
21786 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
21787 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm3
21788 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21789 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21790 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm3
21791 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
21792 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm3
21793 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21794 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3
21795 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm22, %zmm3
21796 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm20
21797 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm16, %zmm3
21798 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21799 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21800 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm4
21801 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm18, %zmm7
21802 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21803 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
21804 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21805 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
21806 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm29, %zmm4
21807 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm3
21808 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21809 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
21810 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21811 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm3
21812 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
21813 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm14
21814 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%r9), %ymm0
21815 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21816 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %ymm24
21817 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm24[0],ymm0[0],ymm24[2],ymm0[2]
21818 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm4[2,3,2,3],zmm14[2,3,2,3]
21819 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21820 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
21821 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm17
21822 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
21823 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm6, %zmm3
21824 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
21825 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm3
21826 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21827 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
21828 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm13, %zmm3
21829 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm3
21830 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21831 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
21832 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
21833 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm22, %zmm3
21834 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm3
21835 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21836 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21
21837 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm5
21838 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm14
21839 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21840 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
21841 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21842 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm15
21843 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
21844 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21845 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm29, %zmm5
21846 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm3
21847 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21848 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
21849 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8
21850 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm9, %zmm3
21851 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
21852 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rax), %zmm0
21853 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%r9), %ymm10
21854 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%r8), %ymm5
21855 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm5[0],ymm10[0],ymm5[2],ymm10[2]
21856 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
21857 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21858 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm6
21859 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%r9), %zmm9
21860 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
21861 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm3
21862 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21863 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm12, %zmm3
21864 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21865 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
21866 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
21867 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm13, %zmm3
21868 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21869 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
21870 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21871 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
21872 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm22, %zmm3
21873 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm3
21874 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21875 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21876 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
21877 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm6
21878 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm18, %zmm0
21879 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21880 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm27
21881 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm25
21882 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm6
21883 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm6
21884 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm0
21885 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21886 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm12
21887 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm0
21888 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm13
21889 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21890 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k1}
21891 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rax), %zmm1
21892 ; AVX512BW-FCP-NEXT:    vmovdqa 320(%r9), %ymm6
21893 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r8), %ymm31
21894 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm31[0],ymm6[0],ymm31[2],ymm6[2]
21895 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm8[2,3,2,3],zmm1[2,3,2,3]
21896 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21897 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm8
21898 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r9), %zmm14
21899 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
21900 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm0
21901 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21902 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
21903 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
21904 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21905 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
21906 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm0
21907 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm7, %zmm0
21908 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21909 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm0
21910 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm22, %zmm0
21911 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm0
21912 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21913 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
21914 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm8
21915 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm18, %zmm2
21916 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21917 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
21918 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
21919 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
21920 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21921 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21922 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
21923 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21924 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
21925 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
21926 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21927 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm24 # 32-byte Folded Reload
21928 ; AVX512BW-FCP-NEXT:    vmovdqu64 %ymm24, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21929 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm10, %ymm0, %ymm5
21930 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21931 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm6, %ymm0, %ymm31
21932 ; AVX512BW-FCP-NEXT:    vmovdqu64 %ymm31, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21933 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%r9), %ymm2
21934 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%r8), %ymm4
21935 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
21936 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21937 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm2, %ymm0, %ymm4
21938 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21939 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm31
21940 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm10
21941 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0
21942 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm23, %zmm0
21943 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm24
21944 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21945 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm18
21946 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm24
21947 ; AVX512BW-FCP-NEXT:    movb $24, %r10b
21948 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k3
21949 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k3}
21950 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [0,8,0,8,0,8,0,8]
21951 ; AVX512BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21952 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21953 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm0 # 64-byte Folded Reload
21954 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21955 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21956 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm20, %zmm0
21957 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21958 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21959 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm20, %zmm0
21960 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21961 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm20, %zmm21
21962 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21963 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm11
21964 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21965 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm1
21966 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21967 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
21968 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
21969 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
21970 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
21971 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
21972 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm24
21973 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm20
21974 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
21975 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21976 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm16
21977 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21978 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
21979 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
21980 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm30
21981 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
21982 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
21983 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21984 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
21985 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
21986 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21987 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm8
21988 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
21989 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,0,12,4,3,0,12,4]
21990 ; AVX512BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
21991 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
21992 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm7, %zmm11
21993 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
21994 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21995 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
21996 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
21997 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21998 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm30
21999 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
22000 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
22001 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22002 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
22003 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22004 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm5, %zmm2
22005 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22006 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22007 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm1, %zmm2
22008 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22009 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm3
22010 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22011 ; AVX512BW-FCP-NEXT:    movb $48, %r10b
22012 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k4
22013 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
22014 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
22015 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22016 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22017 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
22018 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
22019 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22020 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
22021 ; AVX512BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
22022 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
22023 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm2
22024 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22025 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k4} = zmm3[0],zmm19[0],zmm3[2],zmm19[2],zmm3[4],zmm19[4],zmm3[6],zmm19[6]
22026 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22027 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22028 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm0
22029 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22030 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22031 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm1, %zmm0
22032 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22033 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm3
22034 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22035 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22036 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22037 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22038 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
22039 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22040 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
22041 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22042 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22043 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
22044 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22045 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22046 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22047 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22048 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22049 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
22050 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm3
22051 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22052 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
22053 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm6, %zmm3
22054 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22055 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm13[0],zmm0[0],zmm13[2],zmm0[2],zmm13[4],zmm0[4],zmm13[6],zmm0[6]
22056 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22057 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
22058 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
22059 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22060 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
22061 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
22062 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22063 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22064 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22065 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22066 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
22067 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22068 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
22069 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
22070 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm5, %zmm14
22071 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22072 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
22073 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm1, %zmm14
22074 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22075 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm23, %zmm0
22076 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22077 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22078 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22079 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm2
22080 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22081 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
22082 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
22083 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
22084 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm26[0],zmm0[2],zmm26[2],zmm0[4],zmm26[4],zmm0[6],zmm26[6]
22085 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22086 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22087 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm2
22088 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22089 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22090 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm2
22091 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22092 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm0
22093 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22094 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22095 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22096 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22097 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
22098 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22099 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
22100 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22101 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22102 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
22103 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22104 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22105 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22106 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22107 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22108 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm0
22109 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22110 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm22
22111 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm22
22112 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm3[0],zmm28[0],zmm3[2],zmm28[2],zmm3[4],zmm28[4],zmm3[6],zmm28[6]
22113 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22114 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22115 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm0
22116 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22117 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22118 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm0
22119 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22120 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm3
22121 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22122 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
22123 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22124 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm28
22125 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22126 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm2
22127 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22128 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22129 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm2
22130 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22131 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
22132 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22133 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22134 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
22135 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm29
22136 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
22137 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm21
22138 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm15[0],zmm0[2],zmm15[2],zmm0[4],zmm15[4],zmm0[6],zmm15[6]
22139 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22140 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
22141 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22142 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22143 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm2
22144 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22145 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
22146 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22147 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
22148 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
22149 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm19
22150 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
22151 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm0
22152 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22153 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
22154 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm0
22155 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22156 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm16
22157 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
22158 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
22159 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
22160 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm15
22161 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm17
22162 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm13
22163 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm27, %zmm6, %zmm17
22164 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm19 {%k4} = zmm27[0],zmm25[0],zmm27[2],zmm25[2],zmm27[4],zmm25[4],zmm27[6],zmm25[6]
22165 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
22166 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
22167 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm23, %zmm13
22168 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm4, %zmm27
22169 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm5, %zmm3
22170 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22171 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm2
22172 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22173 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
22174 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm10, %zmm31, %zmm26
22175 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm31, %zmm10, %zmm7
22176 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
22177 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm5, %zmm2
22178 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22179 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm1, %zmm31
22180 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22181 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
22182 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
22183 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
22184 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
22185 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm3
22186 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
22187 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
22188 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
22189 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22190 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm25
22191 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm23
22192 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22193 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm7 {%k4} = zmm14[0],zmm18[0],zmm14[2],zmm18[2],zmm14[4],zmm18[4],zmm14[6],zmm18[6]
22194 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm5
22195 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
22196 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm1, %zmm14
22197 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22198 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm4, %zmm23
22199 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
22200 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
22201 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
22202 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm1 # 64-byte Folded Reload
22203 ; AVX512BW-FCP-NEXT:    # zmm1 = zmm10[0,1,2,3],mem[4,5,6,7]
22204 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k1}
22205 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
22206 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
22207 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm11, %zmm10
22208 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22209 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
22210 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [12,0,0,3,4,5,6,13]
22211 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm11
22212 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm15 {%k3}
22213 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
22214 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm15
22215 ; AVX512BW-FCP-NEXT:    movb $6, %sil
22216 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k5
22217 ; AVX512BW-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
22218 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
22219 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
22220 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
22221 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
22222 ; AVX512BW-FCP-NEXT:    movb $64, %sil
22223 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22224 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
22225 ; AVX512BW-FCP-NEXT:    movb $4, %sil
22226 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22227 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k4}
22228 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
22229 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,11,0,4,5,6,7]
22230 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm31
22231 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
22232 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm3
22233 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,12,0,3,4,5,6,7]
22234 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm11, %zmm8
22235 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [13,0,2,3,4,5,6,14]
22236 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm10
22237 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
22238 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm15
22239 ; AVX512BW-FCP-NEXT:    movb $12, %sil
22240 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22241 ; AVX512BW-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
22242 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
22243 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
22244 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
22245 ; AVX512BW-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
22246 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
22247 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
22248 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,9,0,6,7]
22249 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm11
22250 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
22251 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22252 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22253 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
22254 ; AVX512BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
22255 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22256 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22257 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
22258 ; AVX512BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
22259 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22260 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
22261 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
22262 ; AVX512BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
22263 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22264 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm22 {%k5}
22265 ; AVX512BW-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
22266 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22267 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
22268 ; AVX512BW-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
22269 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22270 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm17 {%k5}
22271 ; AVX512BW-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
22272 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22273 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
22274 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
22275 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22276 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22277 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
22278 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22279 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k1}
22280 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22281 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
22282 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22283 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
22284 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22285 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
22286 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22287 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
22288 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22289 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
22290 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
22291 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
22292 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
22293 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
22294 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22295 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
22296 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm8, %zmm0
22297 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22298 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
22299 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
22300 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22301 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm15
22302 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
22303 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
22304 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22305 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
22306 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm11, %zmm0
22307 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22308 ; AVX512BW-FCP-NEXT:    movb $8, %sil
22309 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
22310 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm31 {%k2}
22311 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22312 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22313 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
22314 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22315 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22316 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k3}
22317 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22318 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22319 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
22320 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22321 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22322 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k3}
22323 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
22324 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22325 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k3}
22326 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm13 {%k3}
22327 ; AVX512BW-FCP-NEXT:    movb $-31, %sil
22328 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
22329 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22330 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0 {%k2}
22331 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22332 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22333 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
22334 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22335 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22336 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
22337 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22338 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22339 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
22340 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22341 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22342 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
22343 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22344 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22345 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
22346 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22347 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm3
22348 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22349 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22350 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22351 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k4}
22352 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
22353 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22354 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22355 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22356 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
22357 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
22358 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22359 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22360 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22361 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm8 {%k4}
22362 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
22363 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22364 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22365 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
22366 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm9 {%k4}
22367 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%rdx), %xmm3
22368 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22369 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22370 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm29 {%k4}
22371 ; AVX512BW-FCP-NEXT:    vmovdqa 320(%rdx), %xmm3
22372 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22373 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22374 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm27 {%k4}
22375 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%rdx), %xmm3
22376 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22377 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22378 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm23 {%k4}
22379 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22380 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm3
22381 ; AVX512BW-FCP-NEXT:    movb $112, %cl
22382 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22383 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k2}
22384 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22385 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22386 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm3
22387 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k2}
22388 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22389 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22390 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm3
22391 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k2}
22392 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22393 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22394 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm3
22395 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k2}
22396 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22397 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22398 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm3
22399 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm29 {%k2}
22400 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22401 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm3
22402 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k2}
22403 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 384(%rax), %zmm20, %zmm3
22404 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23 {%k2}
22405 ; AVX512BW-FCP-NEXT:    movb $56, %cl
22406 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22407 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22408 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k2}
22409 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22410 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22411 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k2}
22412 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22413 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22414 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
22415 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
22416 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22417 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
22418 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22419 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
22420 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22421 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
22422 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm25 {%k2}
22423 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22424 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22425 ; AVX512BW-FCP-NEXT:    movb $14, %cl
22426 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22427 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
22428 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k2}
22429 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
22430 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
22431 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22432 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k2}
22433 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22434 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22435 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22436 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm13 {%k2}
22437 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22438 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22439 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22440 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm6 {%k2}
22441 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22442 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22443 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm28 {%k2}
22444 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22445 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22446 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k2}
22447 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22448 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22449 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm7 {%k2}
22450 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22451 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22452 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
22453 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22454 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22455 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
22456 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22457 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22458 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
22459 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22460 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22461 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
22462 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22463 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22464 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
22465 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22466 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22467 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k1}
22468 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22469 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
22470 ; AVX512BW-FCP-NEXT:    movb $120, %al
22471 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
22472 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
22473 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm16 {%k1}
22474 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22475 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
22476 ; AVX512BW-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
22477 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22478 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
22479 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22480 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
22481 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22482 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2 {%k1}
22483 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22484 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1 {%k1}
22485 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22486 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
22487 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm26 {%k1}
22488 ; AVX512BW-FCP-NEXT:    movb $-61, %al
22489 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
22490 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22491 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
22492 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22493 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
22494 ; AVX512BW-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
22495 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22496 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
22497 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22498 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
22499 ; AVX512BW-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
22500 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22501 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
22502 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22503 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload
22504 ; AVX512BW-FCP-NEXT:    # zmm8 = zmm8[0,1,2,3],mem[4,5,6,7]
22505 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22506 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
22507 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22508 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
22509 ; AVX512BW-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
22510 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22511 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k1}
22512 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22513 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload
22514 ; AVX512BW-FCP-NEXT:    # zmm11 = zmm11[0,1,2,3],mem[4,5,6,7]
22515 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
22516 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k1}
22517 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
22518 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
22519 ; AVX512BW-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
22520 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
22521 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm12 {%k1}
22522 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22523 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, 3008(%rax)
22524 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 2944(%rax)
22525 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 2880(%rax)
22526 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22527 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2816(%rax)
22528 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 2752(%rax)
22529 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
22530 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22531 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2624(%rax)
22532 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 2560(%rax)
22533 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
22534 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 2432(%rax)
22535 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22536 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2368(%rax)
22537 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 2304(%rax)
22538 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 2240(%rax)
22539 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22540 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
22541 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 2112(%rax)
22542 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
22543 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
22544 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22545 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 1920(%rax)
22546 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 1856(%rax)
22547 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
22548 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22549 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
22550 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 1664(%rax)
22551 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
22552 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 1536(%rax)
22553 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22554 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 1472(%rax)
22555 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 1408(%rax)
22556 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22557 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
22558 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22559 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
22560 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
22561 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
22562 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
22563 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22564 ; AVX512BW-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
22565 ; AVX512BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
22566 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
22567 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22568 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
22569 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22570 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
22571 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
22572 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 704(%rax)
22573 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 640(%rax)
22574 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22575 ; AVX512BW-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
22576 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22577 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
22578 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22579 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
22580 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22581 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
22582 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
22583 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 256(%rax)
22584 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
22585 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22586 ; AVX512BW-FCP-NEXT:    vmovaps %zmm3, 128(%rax)
22587 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22588 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
22589 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22590 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
22591 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 3520(%rax)
22592 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22593 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
22594 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22595 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
22596 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, 3328(%rax)
22597 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22598 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
22599 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22600 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
22601 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, 3072(%rax)
22602 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22603 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
22604 ; AVX512BW-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
22605 ; AVX512BW-FCP-NEXT:    vzeroupper
22606 ; AVX512BW-FCP-NEXT:    retq
22608 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf64:
22609 ; AVX512DQ-BW:       # %bb.0:
22610 ; AVX512DQ-BW-NEXT:    subq $6280, %rsp # imm = 0x1888
22611 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22612 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm0
22613 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22614 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm16
22615 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22616 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm9
22617 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22618 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm13
22619 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22620 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm18
22621 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, (%rsp) # 64-byte Spill
22622 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm5
22623 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22624 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm6
22625 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22626 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm15
22627 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22628 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [11,3,11,3,11,3,11,3]
22629 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22630 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
22631 ; AVX512DQ-BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
22632 ; AVX512DQ-BW-NEXT:    movb $96, %r10b
22633 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k1
22634 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm1
22635 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm14
22636 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm3
22637 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm4
22638 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
22639 ; AVX512DQ-BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22640 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22641 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [9,1,9,1,9,1,9,1]
22642 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22643 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
22644 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm8, %zmm2
22645 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [4,9,0,3,4,9,0,3]
22646 ; AVX512DQ-BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
22647 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm11, %zmm2
22648 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22649 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
22650 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm2
22651 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm31, %zmm2
22652 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
22653 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm7
22654 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22655 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r9), %ymm5
22656 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22657 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm0
22658 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22659 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r8), %ymm6
22660 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22661 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
22662 ; AVX512DQ-BW-NEXT:    movb $28, %r10b
22663 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k2
22664 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
22665 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22666 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
22667 ; AVX512DQ-BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
22668 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0
22669 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
22670 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm12 = [0,1,12,7,0,1,12,7]
22671 ; AVX512DQ-BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3]
22672 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm12, %zmm0
22673 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22674 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
22675 ; AVX512DQ-BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
22676 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
22677 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22678 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm0
22679 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,13,6,7,0,13,6,7]
22680 ; AVX512DQ-BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
22681 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm24, %zmm0
22682 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22683 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm25, %zmm1
22684 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [6,13,14,7,6,13,14,7]
22685 ; AVX512DQ-BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
22686 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm3
22687 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22688 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
22689 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
22690 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
22691 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm31, %zmm2
22692 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
22693 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
22694 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm4[2,3,2,3]
22695 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22696 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm1
22697 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm20
22698 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
22699 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm6
22700 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm8, %zmm3
22701 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm11, %zmm3
22702 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22703 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
22704 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm28, %zmm3
22705 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm12, %zmm3
22706 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22707 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm3
22708 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm3
22709 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm24, %zmm3
22710 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22711 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm30
22712 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
22713 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm4
22714 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22715 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
22716 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22717 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
22718 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22719 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
22720 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm23
22721 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
22722 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22723 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm3
22724 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
22725 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
22726 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rax), %zmm8
22727 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r9), %ymm4
22728 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22729 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r8), %ymm1
22730 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22731 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
22732 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm8[2,3,2,3]
22733 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22734 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm1
22735 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r9), %zmm13
22736 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
22737 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm6, %zmm4
22738 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm11, %zmm4
22739 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22740 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
22741 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm28, %zmm4
22742 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm18
22743 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm12, %zmm4
22744 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22745 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm5
22746 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm5
22747 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm24, %zmm5
22748 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22749 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm22
22750 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
22751 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm8
22752 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22753 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm26
22754 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
22755 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22756 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm1
22757 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
22758 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm9
22759 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm21
22760 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
22761 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22762 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm5
22763 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm5
22764 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
22765 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rax), %zmm0
22766 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r9), %ymm8
22767 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22768 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r8), %ymm1
22769 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22770 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
22771 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
22772 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22773 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm1
22774 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r9), %zmm8
22775 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm16
22776 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm6, %zmm16
22777 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm16
22778 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22779 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm15
22780 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm28, %zmm15
22781 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm15
22782 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22783 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm12
22784 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm12
22785 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm12
22786 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22787 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm10
22788 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
22789 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm0
22790 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22791 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm15
22792 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rsi), %zmm19
22793 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm4
22794 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
22795 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm29
22796 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22797 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdx), %zmm14
22798 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rcx), %zmm0
22799 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22800 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
22801 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm1
22802 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
22803 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rax), %zmm0
22804 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%r9), %ymm12
22805 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22806 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%r8), %ymm4
22807 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22808 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm4[0],ymm12[0],ymm4[2],ymm12[2]
22809 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm4[2,3,2,3],zmm0[2,3,2,3]
22810 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22811 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%r8), %zmm4
22812 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%r9), %zmm12
22813 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
22814 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm6, %zmm1
22815 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
22816 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22817 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm2
22818 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22819 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
22820 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm28, %zmm1
22821 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm18, %zmm1
22822 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22823 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22824 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
22825 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm17, %zmm1
22826 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm1
22827 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22828 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22829 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm9
22830 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm25, %zmm4
22831 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm27, %zmm0
22832 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22833 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm16
22834 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rsi), %zmm3
22835 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm7
22836 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm29, %zmm7
22837 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdx), %zmm4
22838 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rcx), %zmm29
22839 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm5
22840 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm31, %zmm5
22841 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm5 {%k1}
22842 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rax), %zmm1
22843 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%r9), %ymm7
22844 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22845 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%r8), %ymm0
22846 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22847 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
22848 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm7[2,3,2,3],zmm1[2,3,2,3]
22849 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22850 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%r8), %zmm7
22851 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%r9), %zmm11
22852 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm0
22853 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm6, %zmm0
22854 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
22855 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22856 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm0
22857 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm28, %zmm0
22858 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm18, %zmm0
22859 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22860 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm0
22861 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
22862 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
22863 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22864 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2
22865 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm25, %zmm7
22866 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm27, %zmm1
22867 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22868 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdx), %zmm5
22869 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rcx), %zmm27
22870 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm0
22871 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm25, %zmm0
22872 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm7
22873 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22874 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
22875 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22876 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm7
22877 ; AVX512DQ-BW-NEXT:    movb $24, %r10b
22878 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k3
22879 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
22880 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
22881 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22882 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22883 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
22884 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22885 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm1, %zmm30
22886 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22887 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm1, %zmm22
22888 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22889 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm10
22890 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22891 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm1, %zmm9
22892 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22893 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm2
22894 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22895 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%r8), %zmm0
22896 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
22897 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
22898 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%r9), %zmm2
22899 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,3,4,5,15,0]
22900 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm7
22901 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22902 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
22903 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22904 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm6
22905 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22906 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm28
22907 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22908 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
22909 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22910 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [13,5,13,5,13,5,13,5]
22911 ; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22912 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22913 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22914 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
22915 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm6, %zmm1
22916 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22917 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
22918 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22919 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22920 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm9, %zmm1
22921 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22922 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22923 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm25, %zmm1
22924 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22925 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
22926 ; AVX512DQ-BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
22927 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
22928 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
22929 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22930 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
22931 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm6, %zmm1
22932 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22933 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22934 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
22935 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22936 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22937 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
22938 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22939 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm20
22940 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
22941 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22942 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm6, %zmm0
22943 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22944 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
22945 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm9, %zmm0
22946 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22947 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
22948 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm25, %zmm0
22949 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22950 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm2, %zmm30
22951 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
22952 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
22953 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm6, %zmm0
22954 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22955 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
22956 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm9, %zmm0
22957 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22958 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
22959 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm25, %zmm0
22960 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22961 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm2, %zmm22
22962 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
22963 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
22964 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm6, %zmm0
22965 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22966 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
22967 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm9, %zmm0
22968 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22969 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
22970 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
22971 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22972 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm2, %zmm23
22973 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
22974 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm6, %zmm0
22975 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22976 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
22977 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm9, %zmm0
22978 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22979 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
22980 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
22981 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22982 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm2, %zmm29
22983 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm18
22984 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdx), %zmm10
22985 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
22986 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm7
22987 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm7
22988 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm27, %zmm5, %zmm31
22989 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
22990 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
22991 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm6, %zmm1
22992 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22993 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
22994 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm9, %zmm1
22995 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22996 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm27
22997 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm28
22998 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8
22999 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm2, %zmm8
23000 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm12
23001 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm12
23002 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm11
23003 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm11
23004 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm10
23005 ; AVX512DQ-BW-NEXT:    movb $48, %r10b
23006 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k4
23007 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
23008 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
23009 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23010 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm1
23011 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23012 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
23013 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23014 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
23015 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23016 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23017 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm13
23018 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14
23019 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
23020 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23021 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
23022 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23023 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm1
23024 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23025 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm9, %zmm13
23026 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23027 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm14
23028 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23029 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm1
23030 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23031 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
23032 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23033 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
23034 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23035 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm13
23036 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23037 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm17
23038 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
23039 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23040 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm13
23041 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23042 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm9, %zmm1
23043 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23044 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm17
23045 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23046 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23047 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2
23048 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23049 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm5, %zmm2
23050 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23051 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm30 {%k4} = zmm1[0],zmm0[0],zmm1[2],zmm0[2],zmm1[4],zmm0[4],zmm1[6],zmm0[6]
23052 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23053 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm13
23054 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
23055 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm29
23056 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm1
23057 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23058 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
23059 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23060 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
23061 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23062 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm29
23063 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23064 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23065 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
23066 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23067 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
23068 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23069 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm2
23070 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm1
23071 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm31
23072 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
23073 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23074 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
23075 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23076 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm1
23077 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23078 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
23079 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm30
23080 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
23081 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm23 {%k4} = zmm15[0],zmm19[0],zmm15[2],zmm19[2],zmm15[4],zmm19[4],zmm15[6],zmm19[6]
23082 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23083 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm22
23084 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm0
23085 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm26
23086 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm27
23087 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm4, %zmm27
23088 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm6, %zmm22
23089 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm9, %zmm0
23090 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23091 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm25, %zmm26
23092 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm15
23093 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rsi), %zmm0
23094 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm13
23095 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm13
23096 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm23
23097 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm25, %zmm23
23098 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm24
23099 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm5, %zmm24
23100 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm18 {%k4} = zmm16[0],zmm3[0],zmm16[2],zmm3[2],zmm16[4],zmm3[4],zmm16[6],zmm3[6]
23101 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23102 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm17
23103 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
23104 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm21
23105 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm4, %zmm21
23106 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm6, %zmm17
23107 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
23108 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23109 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
23110 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm20
23111 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
23112 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm5, %zmm20
23113 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm3
23114 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
23115 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
23116 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm25
23117 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm1
23118 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm1
23119 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm6
23120 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm2
23121 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
23122 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm9
23123 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm16[0],zmm18[0],zmm16[2],zmm18[2],zmm16[4],zmm18[4],zmm16[6],zmm18[6]
23124 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23125 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm28
23126 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm4, %zmm28
23127 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
23128 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
23129 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
23130 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
23131 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k1}
23132 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%r8), %zmm3
23133 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
23134 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm8, %zmm5
23135 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm1 {%k1}
23136 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
23137 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm1, %zmm8
23138 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k3}
23139 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
23140 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm13
23141 ; AVX512DQ-BW-NEXT:    movb $6, %sil
23142 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
23143 ; AVX512DQ-BW-NEXT:    vpbroadcastq 456(%rcx), %ymm1
23144 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
23145 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
23146 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,9,0,0,6,7]
23147 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
23148 ; AVX512DQ-BW-NEXT:    movb $64, %sil
23149 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23150 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
23151 ; AVX512DQ-BW-NEXT:    movb $4, %sil
23152 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23153 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k5}
23154 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%r9), %zmm0
23155 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
23156 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
23157 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm11
23158 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
23159 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm3
23160 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
23161 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm5
23162 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
23163 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm7
23164 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
23165 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
23166 ; AVX512DQ-BW-NEXT:    movb $12, %sil
23167 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23168 ; AVX512DQ-BW-NEXT:    vmovdqa 448(%rdx), %xmm2
23169 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
23170 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
23171 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
23172 ; AVX512DQ-BW-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
23173 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
23174 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
23175 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
23176 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm10, %zmm2
23177 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rax), %zmm0
23178 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
23179 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23180 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm10
23181 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
23182 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
23183 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%r9), %ymm12
23184 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23185 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%r8), %ymm8
23186 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23187 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
23188 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
23189 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
23190 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23191 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23192 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
23193 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23194 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23195 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23196 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
23197 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23198 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
23199 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23200 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
23201 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23202 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rax), %zmm0
23203 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,10,5,6,7]
23204 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm1
23205 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23206 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
23207 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
23208 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23209 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
23210 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm1
23211 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23212 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
23213 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,8,7]
23214 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm1
23215 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23216 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,9,6,7]
23217 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm1
23218 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23219 ; AVX512DQ-BW-NEXT:    movb $8, %sil
23220 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23221 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
23222 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23223 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23224 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
23225 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23226 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23227 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
23228 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23229 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k3}
23230 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23231 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
23232 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23233 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
23234 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23235 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
23236 ; AVX512DQ-BW-NEXT:    movb $-31, %sil
23237 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23238 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23239 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
23240 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23241 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23242 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
23243 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23244 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23245 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
23246 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23247 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23248 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
23249 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23250 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
23251 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23252 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
23253 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm0
23254 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23255 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23256 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23257 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k5}
23258 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%rdx), %xmm0
23259 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23260 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23261 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23262 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
23263 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%rdx), %xmm0
23264 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23265 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23266 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23267 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
23268 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%rdx), %xmm0
23269 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23270 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23271 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23272 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
23273 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%rdx), %xmm0
23274 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23275 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23276 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
23277 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%rdx), %xmm0
23278 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23279 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23280 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
23281 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%rdx), %xmm0
23282 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23283 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23284 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
23285 ; AVX512DQ-BW-NEXT:    movb $112, %sil
23286 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23287 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23288 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
23289 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23290 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23291 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm2 {%k2}
23292 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23293 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23294 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm3 {%k2}
23295 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23296 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23297 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm4 {%k2}
23298 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23299 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23300 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm27 {%k2}
23301 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23302 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm21 {%k2}
23303 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23304 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 384(%rax), %zmm0, %zmm28 {%k2}
23305 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm0
23306 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23307 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23308 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k4}
23309 ; AVX512DQ-BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
23310 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23311 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23312 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
23313 ; AVX512DQ-BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
23314 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23315 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23316 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
23317 ; AVX512DQ-BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
23318 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23319 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23320 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
23321 ; AVX512DQ-BW-NEXT:    vpbroadcastq 264(%rcx), %ymm0
23322 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23323 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
23324 ; AVX512DQ-BW-NEXT:    vpbroadcastq 328(%rcx), %ymm0
23325 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23326 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
23327 ; AVX512DQ-BW-NEXT:    vpbroadcastq 392(%rcx), %ymm0
23328 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23329 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
23330 ; AVX512DQ-BW-NEXT:    movb $56, %cl
23331 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
23332 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23333 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
23334 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23335 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23336 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
23337 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23338 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23339 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
23340 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23341 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23342 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
23343 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23344 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23345 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
23346 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23347 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
23348 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm20 {%k2}
23349 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23350 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23351 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
23352 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23353 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23354 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
23355 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23356 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23357 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
23358 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23359 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23360 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
23361 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23362 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
23363 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23364 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k1}
23365 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23366 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
23367 ; AVX512DQ-BW-NEXT:    movb $120, %cl
23368 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23369 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
23370 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k1}
23371 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23372 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
23373 ; AVX512DQ-BW-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
23374 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
23375 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm14 {%k1}
23376 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
23377 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k1}
23378 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
23379 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm25 {%k1}
23380 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
23381 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm29 {%k1}
23382 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
23383 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm22 {%k1}
23384 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23385 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k1}
23386 ; AVX512DQ-BW-NEXT:    movb $-61, %cl
23387 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23388 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23389 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
23390 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23391 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
23392 ; AVX512DQ-BW-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
23393 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23394 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm11 {%k1}
23395 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23396 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 64-byte Folded Reload
23397 ; AVX512DQ-BW-NEXT:    # zmm10 = zmm0[0,1,2,3],mem[4,5,6,7]
23398 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23399 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
23400 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23401 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
23402 ; AVX512DQ-BW-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
23403 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
23404 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
23405 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23406 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
23407 ; AVX512DQ-BW-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
23408 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
23409 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
23410 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23411 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
23412 ; AVX512DQ-BW-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
23413 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
23414 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
23415 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm7 # 64-byte Folded Reload
23416 ; AVX512DQ-BW-NEXT:    # zmm7 = zmm9[0,1,2,3],mem[4,5,6,7]
23417 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23418 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
23419 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23420 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23421 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23422 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23423 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23424 ; AVX512DQ-BW-NEXT:    movb $14, %cl
23425 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23426 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
23427 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
23428 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23429 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23430 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23431 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23432 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23433 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
23434 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm17 {%k1}
23435 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23436 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23437 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23438 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23439 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23440 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
23441 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
23442 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23443 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23444 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23445 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23446 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23447 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23448 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
23449 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23450 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23451 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23452 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23453 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23454 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23455 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
23456 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23457 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23458 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23459 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23460 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23461 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23462 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
23463 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
23464 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
23465 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
23466 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23467 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23468 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23469 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
23470 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
23471 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
23472 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
23473 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
23474 ; AVX512DQ-BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
23475 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 2816(%rax)
23476 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
23477 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
23478 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 2624(%rax)
23479 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
23480 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 2496(%rax)
23481 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
23482 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
23483 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 2368(%rax)
23484 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
23485 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
23486 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
23487 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
23488 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
23489 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
23490 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
23491 ; AVX512DQ-BW-NEXT:    vmovaps %zmm5, 1920(%rax)
23492 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
23493 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
23494 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
23495 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
23496 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
23497 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
23498 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23499 ; AVX512DQ-BW-NEXT:    vmovaps %zmm4, 1472(%rax)
23500 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23501 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1408(%rax)
23502 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23503 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1344(%rax)
23504 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23505 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1280(%rax)
23506 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 1216(%rax)
23507 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
23508 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 1088(%rax)
23509 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23510 ; AVX512DQ-BW-NEXT:    vmovaps %zmm3, 1024(%rax)
23511 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23512 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 960(%rax)
23513 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23514 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 896(%rax)
23515 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23516 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 832(%rax)
23517 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 768(%rax)
23518 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 704(%rax)
23519 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 640(%rax)
23520 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23521 ; AVX512DQ-BW-NEXT:    vmovaps %zmm2, 576(%rax)
23522 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23523 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 512(%rax)
23524 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23525 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 448(%rax)
23526 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23527 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 384(%rax)
23528 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 320(%rax)
23529 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 256(%rax)
23530 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 192(%rax)
23531 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23532 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%rax)
23533 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23534 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 64(%rax)
23535 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23536 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, (%rax)
23537 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 3520(%rax)
23538 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23539 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3456(%rax)
23540 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23541 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3392(%rax)
23542 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23543 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3328(%rax)
23544 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23545 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3264(%rax)
23546 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23547 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3200(%rax)
23548 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23549 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3072(%rax)
23550 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23551 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3136(%rax)
23552 ; AVX512DQ-BW-NEXT:    addq $6280, %rsp # imm = 0x1888
23553 ; AVX512DQ-BW-NEXT:    vzeroupper
23554 ; AVX512DQ-BW-NEXT:    retq
23556 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf64:
23557 ; AVX512DQ-BW-FCP:       # %bb.0:
23558 ; AVX512DQ-BW-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
23559 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
23560 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm0
23561 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23562 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
23563 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23564 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm14
23565 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23566 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm16
23567 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23568 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm11
23569 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23570 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm7
23571 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23572 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm13
23573 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23574 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
23575 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23576 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
23577 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23578 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
23579 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23580 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %r10b
23581 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k1
23582 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
23583 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm22
23584 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
23585 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
23586 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
23587 ; AVX512DQ-BW-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23588 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23589 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [9,1,9,1,9,1,9,1]
23590 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23591 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23592 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm2
23593 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,9,0,3,4,9,0,3]
23594 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
23595 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm10, %zmm2
23596 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23597 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm0
23598 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
23599 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm2
23600 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
23601 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %ymm7
23602 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23603 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm13
23604 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23605 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm0
23606 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23607 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm6
23608 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23609 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
23610 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %r10b
23611 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k2
23612 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
23613 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23614 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [4,12,0,5,4,12,0,5]
23615 ; AVX512DQ-BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
23616 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23617 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm7, %zmm2
23618 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,1,12,7,0,1,12,7]
23619 ; AVX512DQ-BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
23620 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm15, %zmm2
23621 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23622 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
23623 ; AVX512DQ-BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
23624 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23625 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm2
23626 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
23627 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,13,6,7,0,13,6,7]
23628 ; AVX512DQ-BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
23629 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
23630 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23631 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
23632 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm23, %zmm1
23633 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
23634 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
23635 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm2
23636 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23637 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
23638 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm8, %zmm1
23639 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
23640 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm2
23641 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
23642 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
23643 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
23644 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23645 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
23646 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm27
23647 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23648 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm9, %zmm2
23649 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm2
23650 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23651 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23652 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm7, %zmm2
23653 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm2
23654 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23655 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
23656 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
23657 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm2
23658 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23659 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23660 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm23, %zmm1
23661 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm5
23662 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23663 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
23664 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23665 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
23666 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm8, %zmm1
23667 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm2
23668 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23669 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
23670 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23671 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm2
23672 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
23673 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm6
23674 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm0
23675 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23676 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %ymm30
23677 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm30[0],ymm0[0],ymm30[2],ymm0[2]
23678 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
23679 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23680 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
23681 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm16
23682 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
23683 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm9, %zmm5
23684 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
23685 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm5
23686 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23687 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
23688 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm5
23689 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
23690 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23691 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm5
23692 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm5
23693 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm19, %zmm5
23694 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23695 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23696 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm2
23697 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm18, %zmm6
23698 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23699 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
23700 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23701 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
23702 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm8, %zmm2
23703 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm5
23704 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23705 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
23706 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23707 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm5
23708 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k1}
23709 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm22
23710 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %ymm24
23711 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %ymm25
23712 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm25[0],ymm24[0],ymm25[2],ymm24[2]
23713 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm22[2,3,2,3]
23714 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23715 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
23716 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm13
23717 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
23718 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm1, %zmm9
23719 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm9
23720 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23721 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0
23722 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
23723 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm6
23724 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm12
23725 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
23726 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm12
23727 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23728 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm7
23729 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm20, %zmm7
23730 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm7
23731 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23732 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm17
23733 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
23734 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm22
23735 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23736 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
23737 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23738 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm3
23739 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23740 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
23741 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
23742 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23743 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm7
23744 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23745 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
23746 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm7
23747 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
23748 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23749 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
23750 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rax), %zmm22
23751 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%r9), %ymm15
23752 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%r8), %ymm11
23753 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
23754 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm5[2,3,2,3],zmm22[2,3,2,3]
23755 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23756 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm7
23757 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%r9), %zmm5
23758 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23759 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm12
23760 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
23761 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm12
23762 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23763 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23764 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23765 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm12
23766 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm12
23767 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23768 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
23769 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23770 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
23771 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm9
23772 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm9
23773 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23774 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23775 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23776 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm23, %zmm7
23777 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm22
23778 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23779 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
23780 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm21
23781 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
23782 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm2, %zmm7
23783 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm1
23784 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23785 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm14
23786 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm3, %zmm1
23787 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1 {%k1}
23788 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rax), %zmm2
23789 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%r9), %ymm9
23790 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%r8), %ymm3
23791 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm3[0],ymm9[0],ymm3[2],ymm9[2]
23792 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm7[2,3,2,3],zmm2[2,3,2,3]
23793 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23794 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm10
23795 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%r9), %zmm7
23796 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
23797 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm1
23798 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm22
23799 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
23800 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23801 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
23802 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm1
23803 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
23804 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23805 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
23806 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm0
23807 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm0
23808 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23809 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
23810 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm23, %zmm10
23811 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm18, %zmm2
23812 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23813 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
23814 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
23815 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload
23816 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23817 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
23818 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
23819 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23820 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm30 # 32-byte Folded Reload
23821 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm30, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23822 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm24, %ymm0, %ymm25
23823 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm25, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23824 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm15, %ymm0, %ymm11
23825 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23826 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm9, %ymm0, %ymm3
23827 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23828 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%r9), %ymm4
23829 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%r8), %ymm1
23830 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
23831 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23832 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm4, %ymm0, %ymm1
23833 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23834 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm19
23835 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm15
23836 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0
23837 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
23838 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm30
23839 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23840 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm9
23841 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm30
23842 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %r10b
23843 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k3
23844 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k3}
23845 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [0,8,0,8,0,8,0,8]
23846 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23847 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23848 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm0 # 64-byte Folded Reload
23849 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23850 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23851 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm18, %zmm0
23852 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23853 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23854 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm18, %zmm0
23855 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23856 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm17
23857 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23858 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm12
23859 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23860 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm8
23861 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23862 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
23863 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
23864 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
23865 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
23866 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
23867 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm30
23868 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm18
23869 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm22
23870 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23871 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
23872 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23873 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
23874 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23875 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm7
23876 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
23877 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
23878 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23879 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
23880 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
23881 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23882 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
23883 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23884 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm10
23885 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
23886 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
23887 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
23888 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm13
23889 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
23890 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23891 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm17
23892 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm17
23893 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm7
23894 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23895 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
23896 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23897 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
23898 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
23899 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
23900 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm5, %zmm0
23901 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23902 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
23903 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm0
23904 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23905 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm23, %zmm4
23906 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23907 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %r10b
23908 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k4
23909 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
23910 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23911 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23912 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm6
23913 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23914 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm6
23915 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23916 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
23917 ; AVX512DQ-BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
23918 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
23919 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm6, %zmm12
23920 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23921 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm11[0],zmm0[0],zmm11[2],zmm0[2],zmm11[4],zmm0[4],zmm11[6],zmm0[6]
23922 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23923 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
23924 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
23925 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23926 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
23927 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
23928 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23929 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm11
23930 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23931 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
23932 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
23933 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23934 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm8, %zmm0
23935 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
23936 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
23937 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm5, %zmm0
23938 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23939 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
23940 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm1, %zmm0
23941 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23942 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm11
23943 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23944 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23945 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
23946 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23947 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm11
23948 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23949 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
23950 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
23951 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23952 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
23953 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23954 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
23955 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
23956 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23957 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
23958 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
23959 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23960 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
23961 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23963 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
23964 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23965 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm3
23966 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
23967 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm11
23968 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23969 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
23970 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
23971 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23972 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
23973 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23974 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23975 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
23976 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm0
23977 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23978 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm11
23979 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
23980 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm26[0],zmm12[2],zmm26[2],zmm12[4],zmm26[4],zmm12[6],zmm26[6]
23981 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23982 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
23983 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm0
23984 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23985 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
23986 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm0
23987 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23988 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm12
23989 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23990 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23991 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
23992 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23993 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
23994 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
23995 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm16
23996 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23997 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
23998 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm16
23999 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24000 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
24001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24003 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24004 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm3
24005 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm3
24007 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
24008 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
24009 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm12 {%k4} = zmm0[0],zmm28[0],zmm0[2],zmm28[2],zmm0[4],zmm28[4],zmm0[6],zmm28[6]
24010 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24011 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24012 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
24013 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24014 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24015 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
24016 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24017 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm0
24018 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24019 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
24020 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24021 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm28
24022 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24023 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm3
24024 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24025 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24026 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm3
24027 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24028 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
24029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24030 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24031 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
24032 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24033 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm29
24034 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
24035 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm27
24036 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm3[0],zmm0[2],zmm3[2],zmm0[4],zmm3[4],zmm0[6],zmm3[6]
24037 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
24038 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm12
24039 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24040 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
24041 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm12
24042 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24043 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
24044 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24045 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm26
24046 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24047 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm26
24048 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24049 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm5, %zmm3
24050 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24051 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24052 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
24053 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24054 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm0
24055 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24056 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
24057 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
24058 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16
24059 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm16
24060 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm25
24061 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm31, %zmm6, %zmm25
24062 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k4} = zmm31[0],zmm21[0],zmm31[2],zmm21[2],zmm31[4],zmm21[4],zmm31[6],zmm21[6]
24063 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm22
24064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm14
24065 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm3
24066 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm23, %zmm31
24067 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm22
24068 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm5, %zmm14
24069 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24070 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm1, %zmm3
24071 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24072 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm15, %zmm19, %zmm2
24073 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24074 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm19, %zmm15, %zmm8
24075 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
24076 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
24077 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24078 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm19
24079 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24080 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
24081 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm19
24082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
24083 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
24084 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm15, %zmm3
24085 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
24086 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
24087 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm20
24088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
24089 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm20
24090 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm15
24091 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24092 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm14[0],zmm9[0],zmm14[2],zmm9[2],zmm14[4],zmm9[4],zmm14[6],zmm9[6]
24093 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm5
24094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
24095 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm14
24096 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24097 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm23
24098 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
24099 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
24100 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
24101 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm1 # 64-byte Folded Reload
24102 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = zmm19[0,1,2,3],mem[4,5,6,7]
24103 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k1}
24104 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
24105 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
24106 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm13, %zmm9
24107 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k1}
24108 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [12,0,0,3,4,5,6,13]
24109 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
24110 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm16 {%k3}
24111 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
24112 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm16
24113 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %sil
24114 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k5
24115 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
24116 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
24117 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
24118 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
24119 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
24120 ; AVX512DQ-BW-FCP-NEXT:    movb $64, %sil
24121 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24122 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
24123 ; AVX512DQ-BW-FCP-NEXT:    movb $4, %sil
24124 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24125 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
24126 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
24127 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,11,0,4,5,6,7]
24128 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm21
24129 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
24130 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm3
24131 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
24132 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm7
24133 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
24134 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm9
24135 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
24136 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm16
24137 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %sil
24138 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24139 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
24140 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
24141 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
24142 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
24143 ; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
24144 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
24145 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
24146 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,3,9,0,6,7]
24147 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm10
24148 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
24149 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24151 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
24152 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
24153 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
24155 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
24156 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
24157 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24158 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm15
24159 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm15 {%k5}
24160 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
24161 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24162 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm14
24163 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
24164 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
24165 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24166 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
24167 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
24168 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24169 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
24170 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
24171 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24172 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k5}
24173 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
24174 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24175 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24176 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
24177 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24178 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24179 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
24180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24181 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
24182 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24183 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
24184 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24185 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
24186 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24187 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24188 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
24189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24190 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
24191 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
24192 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
24193 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
24194 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
24195 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24196 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
24197 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm0
24198 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24199 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
24200 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
24201 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24202 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm16
24203 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
24204 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
24205 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24206 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
24207 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
24208 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24209 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %sil
24210 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
24211 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm21 {%k2}
24212 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24214 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
24215 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24216 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24217 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
24218 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24219 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24220 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
24221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
24222 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24223 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k3}
24224 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24226 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
24227 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24228 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
24229 ; AVX512DQ-BW-FCP-NEXT:    movb $-31, %sil
24230 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
24231 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
24233 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24234 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24235 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
24236 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24237 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24238 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
24239 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
24242 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24244 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
24245 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24247 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
24248 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm4
24249 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24250 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24251 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24252 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm1 {%k4}
24253 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm4
24254 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24255 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24256 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24257 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm3 {%k4}
24258 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm4
24259 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24260 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24261 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24262 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k4}
24263 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm4
24264 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24265 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24266 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
24267 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm9 {%k4}
24268 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%rdx), %xmm4
24269 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24270 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24271 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm29 {%k4}
24272 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%rdx), %xmm4
24273 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24274 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24275 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm22 {%k4}
24276 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%rdx), %xmm4
24277 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24278 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24279 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm23 {%k4}
24280 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %cl
24281 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24283 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
24284 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24285 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24286 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm3 {%k2}
24287 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24289 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm7 {%k2}
24290 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24292 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm9 {%k2}
24293 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24294 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24295 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm29 {%k2}
24296 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24297 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm22 {%k2}
24298 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 384(%rax), %zmm18, %zmm23 {%k2}
24299 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %cl
24300 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24301 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
24303 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24304 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24305 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
24306 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24307 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24308 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
24309 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24310 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24311 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
24312 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24313 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24314 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
24315 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24316 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
24317 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm20 {%k2}
24318 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24319 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24320 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %cl
24321 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24322 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
24323 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k2}
24324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24325 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24326 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
24327 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm15 {%k2}
24328 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24329 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24330 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
24331 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
24332 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24333 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24334 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24335 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k2}
24336 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24337 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24338 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm28 {%k2}
24339 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24340 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24341 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm26 {%k2}
24342 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24343 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24344 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm8 {%k2}
24345 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24346 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
24348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24350 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
24351 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24352 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
24354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24355 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24356 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
24357 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24358 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k1}
24360 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24361 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24362 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
24363 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24364 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
24365 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %al
24366 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
24367 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24368 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
24369 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24370 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
24371 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
24372 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
24373 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k1}
24374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
24376 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24377 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2 {%k1}
24378 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24379 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1 {%k1}
24380 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24381 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm0 {%k1}
24382 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k1}
24383 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %al
24384 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
24385 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24386 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
24387 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24388 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
24389 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
24390 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24391 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
24392 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24393 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
24394 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
24395 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24396 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k1}
24397 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24398 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
24399 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
24400 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24401 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k1}
24402 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24403 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
24404 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
24405 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24406 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm12 {%k1}
24407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24408 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload
24409 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = zmm13[0,1,2,3],mem[4,5,6,7]
24410 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
24411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm13 {%k1}
24412 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
24413 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm18 # 64-byte Folded Reload
24414 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = zmm18[0,1,2,3],mem[4,5,6,7]
24415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
24416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
24417 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
24418 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 3008(%rax)
24419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 2944(%rax)
24420 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 2880(%rax)
24421 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24422 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 2816(%rax)
24423 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
24424 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
24425 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 2624(%rax)
24426 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 2560(%rax)
24427 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
24428 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 2432(%rax)
24429 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24430 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 2368(%rax)
24431 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 2304(%rax)
24432 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 2240(%rax)
24433 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24434 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
24435 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, 2112(%rax)
24436 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
24437 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
24438 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24439 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 1920(%rax)
24440 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 1856(%rax)
24441 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
24442 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24443 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
24444 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
24445 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
24446 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 1536(%rax)
24447 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24448 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 1472(%rax)
24449 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24450 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1408(%rax)
24451 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24452 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
24453 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24454 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
24455 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
24456 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
24457 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 1088(%rax)
24458 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24459 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
24460 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24461 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
24462 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24463 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
24464 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24465 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
24466 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
24467 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 704(%rax)
24468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 640(%rax)
24469 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24470 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
24471 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24472 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
24473 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24474 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
24475 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24476 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
24477 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
24478 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
24479 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
24480 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24481 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm4, 128(%rax)
24482 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24483 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
24484 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24485 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
24486 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 3520(%rax)
24487 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24488 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
24489 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24490 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
24491 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 3328(%rax)
24492 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24493 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
24494 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24495 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
24496 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, 3072(%rax)
24497 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24498 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
24499 ; AVX512DQ-BW-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
24500 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
24501 ; AVX512DQ-BW-FCP-NEXT:    retq
24502   %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 64
24503   %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 64
24504   %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 64
24505   %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 64
24506   %in.vec4 = load <64 x i64>, ptr %in.vecptr4, align 64
24507   %in.vec5 = load <64 x i64>, ptr %in.vecptr5, align 64
24508   %in.vec6 = load <64 x i64>, ptr %in.vecptr6, align 64
24509   %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>
24510   %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>
24511   %3 = shufflevector <64 x i64> %in.vec4, <64 x i64> %in.vec5, <128 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127>
24512   %4 = 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>
24513   %5 = shufflevector <64 x i64> %in.vec6, <64 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 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>
24514   %6 = shufflevector <128 x i64> %3, <128 x i64> %5, <192 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191>
24515   %7 = shufflevector <192 x i64> %6, <192 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 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 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef>
24516   %8 = shufflevector <256 x i64> %4, <256 x i64> %7, <448 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15, i32 16, i32 17, i32 18, i32 19, i32 20, i32 21, i32 22, i32 23, i32 24, i32 25, i32 26, i32 27, i32 28, i32 29, i32 30, i32 31, i32 32, i32 33, i32 34, i32 35, i32 36, i32 37, i32 38, i32 39, i32 40, i32 41, i32 42, i32 43, i32 44, i32 45, i32 46, i32 47, i32 48, i32 49, i32 50, i32 51, i32 52, i32 53, i32 54, i32 55, i32 56, i32 57, i32 58, i32 59, i32 60, i32 61, i32 62, i32 63, i32 64, i32 65, i32 66, i32 67, i32 68, i32 69, i32 70, i32 71, i32 72, i32 73, i32 74, i32 75, i32 76, i32 77, i32 78, i32 79, i32 80, i32 81, i32 82, i32 83, i32 84, i32 85, i32 86, i32 87, i32 88, i32 89, i32 90, i32 91, i32 92, i32 93, i32 94, i32 95, i32 96, i32 97, i32 98, i32 99, i32 100, i32 101, i32 102, i32 103, i32 104, i32 105, i32 106, i32 107, i32 108, i32 109, i32 110, i32 111, i32 112, i32 113, i32 114, i32 115, i32 116, i32 117, i32 118, i32 119, i32 120, i32 121, i32 122, i32 123, i32 124, i32 125, i32 126, i32 127, i32 128, i32 129, i32 130, i32 131, i32 132, i32 133, i32 134, i32 135, i32 136, i32 137, i32 138, i32 139, i32 140, i32 141, i32 142, i32 143, i32 144, i32 145, i32 146, i32 147, i32 148, i32 149, i32 150, i32 151, i32 152, i32 153, i32 154, i32 155, i32 156, i32 157, i32 158, i32 159, i32 160, i32 161, i32 162, i32 163, i32 164, i32 165, i32 166, i32 167, i32 168, i32 169, i32 170, i32 171, i32 172, i32 173, i32 174, i32 175, i32 176, i32 177, i32 178, i32 179, i32 180, i32 181, i32 182, i32 183, i32 184, i32 185, i32 186, i32 187, i32 188, i32 189, i32 190, i32 191, i32 192, i32 193, i32 194, i32 195, i32 196, i32 197, i32 198, i32 199, i32 200, i32 201, i32 202, i32 203, i32 204, i32 205, i32 206, i32 207, i32 208, i32 209, i32 210, i32 211, i32 212, i32 213, i32 214, i32 215, i32 216, i32 217, i32 218, i32 219, i32 220, i32 221, i32 222, i32 223, i32 224, i32 225, i32 226, i32 227, i32 228, i32 229, i32 230, i32 231, i32 232, i32 233, i32 234, i32 235, i32 236, i32 237, i32 238, i32 239, i32 240, i32 241, i32 242, i32 243, i32 244, i32 245, i32 246, i32 247, i32 248, i32 249, i32 250, i32 251, i32 252, i32 253, i32 254, i32 255, i32 256, i32 257, i32 258, i32 259, i32 260, i32 261, i32 262, i32 263, i32 264, i32 265, i32 266, i32 267, i32 268, i32 269, i32 270, i32 271, i32 272, i32 273, i32 274, i32 275, i32 276, i32 277, i32 278, i32 279, i32 280, i32 281, i32 282, i32 283, i32 284, i32 285, i32 286, i32 287, i32 288, i32 289, i32 290, i32 291, i32 292, i32 293, i32 294, i32 295, i32 296, i32 297, i32 298, i32 299, i32 300, i32 301, i32 302, i32 303, i32 304, i32 305, i32 306, i32 307, i32 308, i32 309, i32 310, i32 311, i32 312, i32 313, i32 314, i32 315, i32 316, i32 317, i32 318, i32 319, i32 320, i32 321, i32 322, i32 323, i32 324, i32 325, i32 326, i32 327, i32 328, i32 329, i32 330, i32 331, i32 332, i32 333, i32 334, i32 335, i32 336, i32 337, i32 338, i32 339, i32 340, i32 341, i32 342, i32 343, i32 344, i32 345, i32 346, i32 347, i32 348, i32 349, i32 350, i32 351, i32 352, i32 353, i32 354, i32 355, i32 356, i32 357, i32 358, i32 359, i32 360, i32 361, i32 362, i32 363, i32 364, i32 365, i32 366, i32 367, i32 368, i32 369, i32 370, i32 371, i32 372, i32 373, i32 374, i32 375, i32 376, i32 377, i32 378, i32 379, i32 380, i32 381, i32 382, i32 383, i32 384, i32 385, i32 386, i32 387, i32 388, i32 389, i32 390, i32 391, i32 392, i32 393, i32 394, i32 395, i32 396, i32 397, i32 398, i32 399, i32 400, i32 401, i32 402, i32 403, i32 404, i32 405, i32 406, i32 407, i32 408, i32 409, i32 410, i32 411, i32 412, i32 413, i32 414, i32 415, i32 416, i32 417, i32 418, i32 419, i32 420, i32 421, i32 422, i32 423, i32 424, i32 425, i32 426, i32 427, i32 428, i32 429, i32 430, i32 431, i32 432, i32 433, i32 434, i32 435, i32 436, i32 437, i32 438, i32 439, i32 440, i32 441, i32 442, i32 443, i32 444, i32 445, i32 446, i32 447>
24517   %interleaved.vec = shufflevector <448 x i64> %8, <448 x i64> poison, <448 x i32> <i32 0, i32 64, i32 128, i32 192, i32 256, i32 320, i32 384, i32 1, i32 65, i32 129, i32 193, i32 257, i32 321, i32 385, i32 2, i32 66, i32 130, i32 194, i32 258, i32 322, i32 386, i32 3, i32 67, i32 131, i32 195, i32 259, i32 323, i32 387, i32 4, i32 68, i32 132, i32 196, i32 260, i32 324, i32 388, i32 5, i32 69, i32 133, i32 197, i32 261, i32 325, i32 389, i32 6, i32 70, i32 134, i32 198, i32 262, i32 326, i32 390, i32 7, i32 71, i32 135, i32 199, i32 263, i32 327, i32 391, i32 8, i32 72, i32 136, i32 200, i32 264, i32 328, i32 392, i32 9, i32 73, i32 137, i32 201, i32 265, i32 329, i32 393, i32 10, i32 74, i32 138, i32 202, i32 266, i32 330, i32 394, i32 11, i32 75, i32 139, i32 203, i32 267, i32 331, i32 395, i32 12, i32 76, i32 140, i32 204, i32 268, i32 332, i32 396, i32 13, i32 77, i32 141, i32 205, i32 269, i32 333, i32 397, i32 14, i32 78, i32 142, i32 206, i32 270, i32 334, i32 398, i32 15, i32 79, i32 143, i32 207, i32 271, i32 335, i32 399, i32 16, i32 80, i32 144, i32 208, i32 272, i32 336, i32 400, i32 17, i32 81, i32 145, i32 209, i32 273, i32 337, i32 401, i32 18, i32 82, i32 146, i32 210, i32 274, i32 338, i32 402, i32 19, i32 83, i32 147, i32 211, i32 275, i32 339, i32 403, i32 20, i32 84, i32 148, i32 212, i32 276, i32 340, i32 404, i32 21, i32 85, i32 149, i32 213, i32 277, i32 341, i32 405, i32 22, i32 86, i32 150, i32 214, i32 278, i32 342, i32 406, i32 23, i32 87, i32 151, i32 215, i32 279, i32 343, i32 407, i32 24, i32 88, i32 152, i32 216, i32 280, i32 344, i32 408, i32 25, i32 89, i32 153, i32 217, i32 281, i32 345, i32 409, i32 26, i32 90, i32 154, i32 218, i32 282, i32 346, i32 410, i32 27, i32 91, i32 155, i32 219, i32 283, i32 347, i32 411, i32 28, i32 92, i32 156, i32 220, i32 284, i32 348, i32 412, i32 29, i32 93, i32 157, i32 221, i32 285, i32 349, i32 413, i32 30, i32 94, i32 158, i32 222, i32 286, i32 350, i32 414, i32 31, i32 95, i32 159, i32 223, i32 287, i32 351, i32 415, i32 32, i32 96, i32 160, i32 224, i32 288, i32 352, i32 416, i32 33, i32 97, i32 161, i32 225, i32 289, i32 353, i32 417, i32 34, i32 98, i32 162, i32 226, i32 290, i32 354, i32 418, i32 35, i32 99, i32 163, i32 227, i32 291, i32 355, i32 419, i32 36, i32 100, i32 164, i32 228, i32 292, i32 356, i32 420, i32 37, i32 101, i32 165, i32 229, i32 293, i32 357, i32 421, i32 38, i32 102, i32 166, i32 230, i32 294, i32 358, i32 422, i32 39, i32 103, i32 167, i32 231, i32 295, i32 359, i32 423, i32 40, i32 104, i32 168, i32 232, i32 296, i32 360, i32 424, i32 41, i32 105, i32 169, i32 233, i32 297, i32 361, i32 425, i32 42, i32 106, i32 170, i32 234, i32 298, i32 362, i32 426, i32 43, i32 107, i32 171, i32 235, i32 299, i32 363, i32 427, i32 44, i32 108, i32 172, i32 236, i32 300, i32 364, i32 428, i32 45, i32 109, i32 173, i32 237, i32 301, i32 365, i32 429, i32 46, i32 110, i32 174, i32 238, i32 302, i32 366, i32 430, i32 47, i32 111, i32 175, i32 239, i32 303, i32 367, i32 431, i32 48, i32 112, i32 176, i32 240, i32 304, i32 368, i32 432, i32 49, i32 113, i32 177, i32 241, i32 305, i32 369, i32 433, i32 50, i32 114, i32 178, i32 242, i32 306, i32 370, i32 434, i32 51, i32 115, i32 179, i32 243, i32 307, i32 371, i32 435, i32 52, i32 116, i32 180, i32 244, i32 308, i32 372, i32 436, i32 53, i32 117, i32 181, i32 245, i32 309, i32 373, i32 437, i32 54, i32 118, i32 182, i32 246, i32 310, i32 374, i32 438, i32 55, i32 119, i32 183, i32 247, i32 311, i32 375, i32 439, i32 56, i32 120, i32 184, i32 248, i32 312, i32 376, i32 440, i32 57, i32 121, i32 185, i32 249, i32 313, i32 377, i32 441, i32 58, i32 122, i32 186, i32 250, i32 314, i32 378, i32 442, i32 59, i32 123, i32 187, i32 251, i32 315, i32 379, i32 443, i32 60, i32 124, i32 188, i32 252, i32 316, i32 380, i32 444, i32 61, i32 125, i32 189, i32 253, i32 317, i32 381, i32 445, i32 62, i32 126, i32 190, i32 254, i32 318, i32 382, i32 446, i32 63, i32 127, i32 191, i32 255, i32 319, i32 383, i32 447>
24518   store <448 x i64> %interleaved.vec, ptr %out.vec, align 64
24519   ret void