Revert " [LoongArch][ISel] Check the number of sign bits in `PatGprGpr_32` (#107432)"
[llvm-project.git] / llvm / test / CodeGen / X86 / vector-interleaved-store-i64-stride-7.ll
blob8ca0e0cb97186186629f6463e9202b5470eb96e2
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), %ymm13
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 = ymm13[0],ymm9[0],ymm13[2],ymm9[2]
6521 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],mem[0],ymm2[2],mem[2]
6522 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm6[2,3],ymm4[2,3]
6523 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6524 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm4
6525 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
6526 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
6527 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6528 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
6529 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6530 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
6531 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
6532 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
6533 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6534 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6535 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm1
6536 ; AVX2-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
6537 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6538 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
6539 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm1
6540 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6541 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
6542 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
6543 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6544 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6545 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
6546 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1
6547 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm2
6548 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6549 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6550 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6551 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm0
6552 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm4
6553 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6554 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm3
6555 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6556 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
6557 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6558 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6559 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6560 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6561 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6562 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6563 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm1
6564 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6565 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6566 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm0
6567 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
6568 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm1
6569 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6570 ; AVX2-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
6571 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6572 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6573 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm0
6574 ; AVX2-NEXT:    vbroadcastsd 72(%rcx), %ymm1
6575 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6576 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6577 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6578 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm2
6579 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6580 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6581 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6582 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6583 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm2
6584 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6585 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6586 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
6587 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
6588 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm3
6589 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6590 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
6591 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6592 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm4
6593 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6594 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm1
6595 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6596 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
6597 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6598 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
6599 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6600 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6601 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6602 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6603 ; AVX2-NEXT:    vmovaps 80(%rax), %xmm1
6604 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6605 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6606 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm0
6607 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
6608 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm2
6609 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6610 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm3
6611 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6612 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
6613 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
6614 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6615 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm3
6616 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6617 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6618 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
6619 ; AVX2-NEXT:    vbroadcastsd 104(%rcx), %ymm3
6620 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
6621 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6622 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6623 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6624 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6625 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6626 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
6627 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm2
6628 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6629 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6630 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6631 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm0
6632 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm4
6633 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6634 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm3
6635 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6636 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
6637 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6638 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6639 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6640 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6641 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6642 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6643 ; AVX2-NEXT:    vmovaps 112(%rax), %xmm1
6644 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6645 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6646 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
6647 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
6648 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
6649 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6650 ; AVX2-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
6651 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6652 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6653 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm0
6654 ; AVX2-NEXT:    vbroadcastsd 136(%rcx), %ymm1
6655 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6656 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6657 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6658 ; AVX2-NEXT:    vmovaps 128(%r8), %xmm2
6659 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6660 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
6661 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6662 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6663 ; AVX2-NEXT:    vmovaps 128(%rax), %xmm2
6664 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
6665 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6666 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
6667 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
6668 ; AVX2-NEXT:    vmovaps 128(%rsi), %ymm3
6669 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6670 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
6671 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6672 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm15
6673 ; AVX2-NEXT:    vmovaps 128(%r9), %ymm1
6674 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6675 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
6676 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6677 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
6678 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6679 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6680 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6681 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6682 ; AVX2-NEXT:    vmovaps 144(%rax), %xmm1
6683 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6684 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6685 ; AVX2-NEXT:    vmovaps 160(%r8), %xmm0
6686 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
6687 ; AVX2-NEXT:    vmovaps 160(%rax), %xmm2
6688 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
6689 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm12
6690 ; AVX2-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm3
6691 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
6692 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6693 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm11
6694 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6695 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
6696 ; AVX2-NEXT:    vbroadcastsd 168(%rcx), %ymm3
6697 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
6698 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
6699 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6700 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6701 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
6702 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
6703 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm1
6704 ; AVX2-NEXT:    vmovaps 160(%rsi), %ymm2
6705 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
6706 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
6707 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6708 ; AVX2-NEXT:    vmovaps 160(%rdx), %ymm0
6709 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm9
6710 ; AVX2-NEXT:    vmovaps 160(%r9), %ymm8
6711 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
6712 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
6713 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
6714 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6715 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
6716 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6717 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6718 ; AVX2-NEXT:    vmovaps 176(%rax), %xmm1
6719 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6720 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6721 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
6722 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
6723 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm7
6724 ; AVX2-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
6725 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
6726 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6727 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm0
6728 ; AVX2-NEXT:    vbroadcastsd 200(%rcx), %ymm1
6729 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
6730 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
6731 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
6732 ; AVX2-NEXT:    vmovaps 192(%r8), %xmm5
6733 ; AVX2-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
6734 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
6735 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6736 ; AVX2-NEXT:    vmovaps 192(%rax), %xmm4
6737 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6738 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
6739 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
6740 ; AVX2-NEXT:    vmovaps 192(%rsi), %ymm3
6741 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
6742 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
6743 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6744 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm1
6745 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
6746 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm0[0],mem[0],ymm0[2],mem[2]
6747 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm6[2,3],ymm1[2,3]
6748 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6749 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
6750 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
6751 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
6752 ; AVX2-NEXT:    vmovaps 208(%rax), %xmm1
6753 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
6754 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6755 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm0
6756 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm2
6757 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
6758 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
6759 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
6760 ; AVX2-NEXT:    vbroadcastsd 224(%rax), %ymm3
6761 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
6762 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6763 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm1
6764 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
6765 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
6766 ; AVX2-NEXT:    vbroadcastsd 232(%rcx), %ymm6
6767 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
6768 ; AVX2-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
6769 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6770 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6771 ; AVX2-NEXT:    vmovaps 224(%rsi), %ymm3
6772 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
6773 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
6774 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm10[4,5,6,7]
6775 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6776 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
6777 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
6778 ; AVX2-NEXT:    vmovaps 224(%rdx), %ymm0
6779 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
6780 ; AVX2-NEXT:    vmovaps 240(%rax), %xmm6
6781 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6782 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6783 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6784 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6785 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6786 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6787 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6788 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm3 # 32-byte Folded Reload
6789 ; AVX2-NEXT:    # ymm3 = ymm13[1],mem[1],ymm13[3],mem[3]
6790 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6791 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6792 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm6
6793 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6794 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6795 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6796 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6797 ; AVX2-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
6798 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm6
6799 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6800 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6801 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6802 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6803 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6804 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6805 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6806 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm6
6807 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6808 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6809 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6810 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6811 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6812 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6813 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6814 ; AVX2-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
6815 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6816 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6817 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6818 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6819 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6820 ; AVX2-NEXT:    vbroadcastsd 88(%rcx), %ymm6
6821 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6822 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6823 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6824 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6825 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6826 ; AVX2-NEXT:    vbroadcastsd 96(%rcx), %ymm6
6827 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm3[0,1,2,3,4,5],ymm6[6,7]
6828 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
6829 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
6830 ; AVX2-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
6831 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6832 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6833 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm6
6834 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm3[2,3,4,5,6,7]
6835 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
6836 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
6837 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
6838 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
6839 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
6840 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
6841 ; AVX2-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
6842 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
6843 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
6844 ; AVX2-NEXT:    vbroadcastsd 152(%rcx), %ymm15
6845 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
6846 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
6847 ; AVX2-NEXT:    vinsertf128 $1, %xmm11, %ymm12, %ymm11
6848 ; AVX2-NEXT:    vbroadcastsd 160(%rcx), %ymm12
6849 ; AVX2-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm12[6,7]
6850 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
6851 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
6852 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
6853 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm9
6854 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5,6,7]
6855 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
6856 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
6857 ; AVX2-NEXT:    vbroadcastsd %xmm4, %ymm4
6858 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
6859 ; AVX2-NEXT:    vbroadcastsd 216(%rcx), %ymm5
6860 ; AVX2-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
6861 ; AVX2-NEXT:    vbroadcastsd 216(%r9), %ymm7
6862 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
6863 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm7
6864 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
6865 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
6866 ; AVX2-NEXT:    vbroadcastsd 224(%rcx), %ymm7
6867 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
6868 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
6869 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
6870 ; AVX2-NEXT:    vbroadcastsd 240(%r9), %ymm2
6871 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
6872 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm2
6873 ; AVX2-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
6874 ; AVX2-NEXT:    vbroadcastsd 248(%r9), %ymm7
6875 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
6876 ; AVX2-NEXT:    vmovaps 224(%rax), %ymm7
6877 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
6878 ; AVX2-NEXT:    # ymm9 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
6879 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
6880 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
6881 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
6882 ; AVX2-NEXT:    vmovaps %ymm2, 1760(%rcx)
6883 ; AVX2-NEXT:    vmovaps %ymm14, 1728(%rcx)
6884 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%rcx)
6885 ; AVX2-NEXT:    vmovaps %ymm9, 1664(%rcx)
6886 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6887 ; AVX2-NEXT:    vmovaps %ymm0, 1632(%rcx)
6888 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6889 ; AVX2-NEXT:    vmovaps %ymm0, 1600(%rcx)
6890 ; AVX2-NEXT:    vmovaps %ymm1, 1568(%rcx)
6891 ; AVX2-NEXT:    vmovaps %ymm5, 1536(%rcx)
6892 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6893 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%rcx)
6894 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6895 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%rcx)
6896 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6897 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%rcx)
6898 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6899 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%rcx)
6900 ; AVX2-NEXT:    vmovaps %ymm4, 1376(%rcx)
6901 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6902 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%rcx)
6903 ; AVX2-NEXT:    vmovaps %ymm8, 1312(%rcx)
6904 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6905 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%rcx)
6906 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6907 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%rcx)
6908 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6909 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%rcx)
6910 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6911 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%rcx)
6912 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6913 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%rcx)
6914 ; AVX2-NEXT:    vmovaps %ymm11, 1120(%rcx)
6915 ; AVX2-NEXT:    vmovaps %ymm3, 1088(%rcx)
6916 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6917 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%rcx)
6918 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6919 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%rcx)
6920 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6921 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rcx)
6922 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6923 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rcx)
6924 ; AVX2-NEXT:    vmovaps %ymm6, 928(%rcx)
6925 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6926 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rcx)
6927 ; AVX2-NEXT:    vmovaps %ymm10, 864(%rcx)
6928 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6929 ; AVX2-NEXT:    vmovaps %ymm0, 832(%rcx)
6930 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6931 ; AVX2-NEXT:    vmovaps %ymm0, 800(%rcx)
6932 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6933 ; AVX2-NEXT:    vmovaps %ymm0, 768(%rcx)
6934 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6935 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rcx)
6936 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6937 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rcx)
6938 ; AVX2-NEXT:    vmovaps %ymm13, 672(%rcx)
6939 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6940 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rcx)
6941 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6942 ; AVX2-NEXT:    vmovaps %ymm0, 608(%rcx)
6943 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6944 ; AVX2-NEXT:    vmovaps %ymm0, 576(%rcx)
6945 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6946 ; AVX2-NEXT:    vmovaps %ymm0, 544(%rcx)
6947 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6948 ; AVX2-NEXT:    vmovaps %ymm0, 512(%rcx)
6949 ; AVX2-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
6950 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rcx)
6951 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6952 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rcx)
6953 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6954 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rcx)
6955 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6956 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rcx)
6957 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6958 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)
6959 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6960 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rcx)
6961 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6962 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)
6963 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6964 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)
6965 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6966 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rcx)
6967 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6968 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)
6969 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6970 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)
6971 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6972 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rcx)
6973 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6974 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)
6975 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6976 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rcx)
6977 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6978 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)
6979 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
6980 ; AVX2-NEXT:    vmovaps %ymm0, (%rcx)
6981 ; AVX2-NEXT:    addq $1672, %rsp # imm = 0x688
6982 ; AVX2-NEXT:    vzeroupper
6983 ; AVX2-NEXT:    retq
6985 ; AVX2-FP-LABEL: store_i64_stride7_vf32:
6986 ; AVX2-FP:       # %bb.0:
6987 ; AVX2-FP-NEXT:    subq $1672, %rsp # imm = 0x688
6988 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
6989 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
6990 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1
6991 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2
6992 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm13
6993 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm9
6994 ; AVX2-FP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6995 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm3
6996 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
6997 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm4
6998 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
6999 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
7000 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7001 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
7002 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7003 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7004 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7005 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
7006 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
7007 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
7008 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm5
7009 ; AVX2-FP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7010 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm3
7011 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7012 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
7013 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7014 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7015 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm8
7016 ; AVX2-FP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7017 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm5
7018 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7019 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
7020 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7021 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7022 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm13[0],ymm9[0],ymm13[2],ymm9[2]
7023 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],mem[0],ymm2[2],mem[2]
7024 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm6[2,3],ymm4[2,3]
7025 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7026 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm4
7027 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7028 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
7029 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7030 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
7031 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7032 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
7033 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
7034 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
7035 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7036 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7037 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm1
7038 ; AVX2-FP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
7039 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7040 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
7041 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm1
7042 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7043 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
7044 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7045 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7046 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7047 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
7048 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1
7049 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm2
7050 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7051 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7052 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7053 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm0
7054 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm4
7055 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7056 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm3
7057 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7058 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7059 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7060 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7061 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7062 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7063 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7064 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7065 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm1
7066 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7067 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7068 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm0
7069 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
7070 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm1
7071 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7072 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
7073 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7074 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7075 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm0
7076 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
7077 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7078 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7079 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7080 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm2
7081 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7082 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7083 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7084 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7085 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm2
7086 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7087 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7088 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7089 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
7090 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm3
7091 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7092 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7093 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7094 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm4
7095 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7096 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm1
7097 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7098 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
7099 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7100 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7101 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7102 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7103 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7104 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7105 ; AVX2-FP-NEXT:    vmovaps 80(%rax), %xmm1
7106 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7107 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7108 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm0
7109 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7110 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm2
7111 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7112 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm3
7113 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7114 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7115 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7116 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7117 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm3
7118 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7119 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7120 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
7121 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
7122 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7123 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7124 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7125 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7126 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7127 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7128 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
7129 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm2
7130 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7131 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7132 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7133 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm0
7134 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm4
7135 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7136 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm3
7137 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7138 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7139 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7140 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7141 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7142 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7143 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7144 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7145 ; AVX2-FP-NEXT:    vmovaps 112(%rax), %xmm1
7146 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7147 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7148 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
7149 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
7150 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
7151 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7152 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
7153 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7154 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7155 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm0
7156 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
7157 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7158 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7159 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7160 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %xmm2
7161 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7162 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7163 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7164 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7165 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %xmm2
7166 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7167 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7168 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7169 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
7170 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm3
7171 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7172 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7173 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7174 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm15
7175 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %ymm1
7176 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7177 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
7178 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7179 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7180 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7181 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7182 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7183 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7184 ; AVX2-FP-NEXT:    vmovaps 144(%rax), %xmm1
7185 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7186 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7187 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %xmm0
7188 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7189 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %xmm2
7190 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7191 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm12
7192 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm3
7193 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7194 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7195 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm11
7196 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7197 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
7198 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
7199 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7200 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7201 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7202 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7203 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7204 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7205 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm1
7206 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm2
7207 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7208 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7209 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7210 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm0
7211 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm9
7212 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %ymm8
7213 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
7214 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7215 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7216 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7217 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7218 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7219 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7220 ; AVX2-FP-NEXT:    vmovaps 176(%rax), %xmm1
7221 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7222 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7223 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
7224 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
7225 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm7
7226 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
7227 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7228 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7229 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm0
7230 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
7231 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7232 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7233 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7234 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %xmm5
7235 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
7236 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7237 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7238 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %xmm4
7239 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7240 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
7241 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
7242 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm3
7243 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7244 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
7245 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7246 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm1
7247 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
7248 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm0[0],mem[0],ymm0[2],mem[2]
7249 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm6[2,3],ymm1[2,3]
7250 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7251 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7252 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7253 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7254 ; AVX2-FP-NEXT:    vmovaps 208(%rax), %xmm1
7255 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7256 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7257 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm0
7258 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm2
7259 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7260 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
7261 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
7262 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rax), %ymm3
7263 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
7264 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7265 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm1
7266 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7267 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
7268 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rcx), %ymm6
7269 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
7270 ; AVX2-FP-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
7271 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7272 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7273 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm3
7274 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7275 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
7276 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm10[4,5,6,7]
7277 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7278 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
7279 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
7280 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm0
7281 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7282 ; AVX2-FP-NEXT:    vmovaps 240(%rax), %xmm6
7283 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7284 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7285 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7286 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7287 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7288 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7289 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7290 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm3 # 32-byte Folded Reload
7291 ; AVX2-FP-NEXT:    # ymm3 = ymm13[1],mem[1],ymm13[3],mem[3]
7292 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7293 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7294 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
7295 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7296 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7297 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7298 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7299 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
7300 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
7301 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7302 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7303 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7304 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7305 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7306 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7307 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7308 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm6
7309 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7310 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7311 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7312 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7313 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7314 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7315 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7316 ; AVX2-FP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
7317 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7318 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7319 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7320 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7321 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7322 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rcx), %ymm6
7323 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7324 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7325 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7326 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7327 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7328 ; AVX2-FP-NEXT:    vbroadcastsd 96(%rcx), %ymm6
7329 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7330 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7331 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7332 ; AVX2-FP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7333 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7334 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7335 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm6
7336 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7337 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7338 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7339 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7340 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7341 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7342 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
7343 ; AVX2-FP-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
7344 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7345 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7346 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rcx), %ymm15
7347 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
7348 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
7349 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm11, %ymm12, %ymm11
7350 ; AVX2-FP-NEXT:    vbroadcastsd 160(%rcx), %ymm12
7351 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm12[6,7]
7352 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
7353 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
7354 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
7355 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm9
7356 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5,6,7]
7357 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
7358 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
7359 ; AVX2-FP-NEXT:    vbroadcastsd %xmm4, %ymm4
7360 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
7361 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rcx), %ymm5
7362 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
7363 ; AVX2-FP-NEXT:    vbroadcastsd 216(%r9), %ymm7
7364 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
7365 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm7
7366 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
7367 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
7368 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rcx), %ymm7
7369 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
7370 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
7371 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
7372 ; AVX2-FP-NEXT:    vbroadcastsd 240(%r9), %ymm2
7373 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7374 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm2
7375 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
7376 ; AVX2-FP-NEXT:    vbroadcastsd 248(%r9), %ymm7
7377 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
7378 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %ymm7
7379 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
7380 ; AVX2-FP-NEXT:    # ymm9 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
7381 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
7382 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
7383 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
7384 ; AVX2-FP-NEXT:    vmovaps %ymm2, 1760(%rcx)
7385 ; AVX2-FP-NEXT:    vmovaps %ymm14, 1728(%rcx)
7386 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%rcx)
7387 ; AVX2-FP-NEXT:    vmovaps %ymm9, 1664(%rcx)
7388 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7389 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1632(%rcx)
7390 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7391 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1600(%rcx)
7392 ; AVX2-FP-NEXT:    vmovaps %ymm1, 1568(%rcx)
7393 ; AVX2-FP-NEXT:    vmovaps %ymm5, 1536(%rcx)
7394 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7395 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%rcx)
7396 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7397 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%rcx)
7398 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7399 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%rcx)
7400 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7401 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%rcx)
7402 ; AVX2-FP-NEXT:    vmovaps %ymm4, 1376(%rcx)
7403 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7404 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%rcx)
7405 ; AVX2-FP-NEXT:    vmovaps %ymm8, 1312(%rcx)
7406 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7407 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%rcx)
7408 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7409 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%rcx)
7410 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7411 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%rcx)
7412 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7413 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%rcx)
7414 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7415 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%rcx)
7416 ; AVX2-FP-NEXT:    vmovaps %ymm11, 1120(%rcx)
7417 ; AVX2-FP-NEXT:    vmovaps %ymm3, 1088(%rcx)
7418 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7419 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%rcx)
7420 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7421 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%rcx)
7422 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7423 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rcx)
7424 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7425 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rcx)
7426 ; AVX2-FP-NEXT:    vmovaps %ymm6, 928(%rcx)
7427 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7428 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rcx)
7429 ; AVX2-FP-NEXT:    vmovaps %ymm10, 864(%rcx)
7430 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7431 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%rcx)
7432 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7433 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%rcx)
7434 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7435 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%rcx)
7436 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7437 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rcx)
7438 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7439 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rcx)
7440 ; AVX2-FP-NEXT:    vmovaps %ymm13, 672(%rcx)
7441 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7442 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rcx)
7443 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7444 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%rcx)
7445 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7446 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rcx)
7447 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7448 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rcx)
7449 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7450 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%rcx)
7451 ; AVX2-FP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
7452 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rcx)
7453 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7454 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rcx)
7455 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7456 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rcx)
7457 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7458 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rcx)
7459 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7460 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)
7461 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7462 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rcx)
7463 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7464 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)
7465 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7466 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)
7467 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7468 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rcx)
7469 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7470 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)
7471 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7472 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)
7473 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7474 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rcx)
7475 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7476 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)
7477 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7478 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rcx)
7479 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7480 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)
7481 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7482 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)
7483 ; AVX2-FP-NEXT:    addq $1672, %rsp # imm = 0x688
7484 ; AVX2-FP-NEXT:    vzeroupper
7485 ; AVX2-FP-NEXT:    retq
7487 ; AVX2-FCP-LABEL: store_i64_stride7_vf32:
7488 ; AVX2-FCP:       # %bb.0:
7489 ; AVX2-FCP-NEXT:    subq $1672, %rsp # imm = 0x688
7490 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7491 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
7492 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1
7493 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2
7494 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm13
7495 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm9
7496 ; AVX2-FCP-NEXT:    vmovups %ymm9, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7497 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm3
7498 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
7499 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm4
7500 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7501 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
7502 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7503 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
7504 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7505 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7506 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7507 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
7508 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
7509 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm3[0,1],ymm4[2,3,4,5,6,7]
7510 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm5
7511 ; AVX2-FCP-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7512 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm3
7513 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm5
7514 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm4[0,1,2,3,4,5],ymm5[6,7]
7515 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7516 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
7517 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm8
7518 ; AVX2-FCP-NEXT:    vmovaps %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7519 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm5
7520 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7521 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
7522 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm6[0,1,2,3],ymm4[4,5,6,7]
7523 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7524 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm13[0],ymm9[0],ymm13[2],ymm9[2]
7525 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],mem[0],ymm2[2],mem[2]
7526 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm4 = ymm6[2,3],ymm4[2,3]
7527 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7528 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm4
7529 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
7530 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
7531 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7532 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm5[0,1],ymm0[2,3,4,5,6,7]
7533 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7534 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
7535 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm3[0],mem[0]
7536 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
7537 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7538 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7539 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm1
7540 ; AVX2-FCP-NEXT:    vmovaps %xmm1, (%rsp) # 16-byte Spill
7541 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7542 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
7543 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm1
7544 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7545 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm1
7546 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
7547 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7548 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7549 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
7550 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1
7551 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm2
7552 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7553 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7554 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7555 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm0
7556 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm4
7557 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7558 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm3
7559 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7560 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7561 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7562 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7563 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7564 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7565 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7566 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7567 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm1
7568 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7569 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7570 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm0
7571 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
7572 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm1
7573 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7574 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
7575 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7576 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7577 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm0
7578 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
7579 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7580 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7581 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7582 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm2
7583 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7584 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7585 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7586 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7587 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm2
7588 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7589 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7590 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7591 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
7592 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm3
7593 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7594 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7595 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7596 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm4
7597 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7598 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm1
7599 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7600 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
7601 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7602 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7603 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7604 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7605 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7606 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7607 ; AVX2-FCP-NEXT:    vmovaps 80(%rax), %xmm1
7608 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7609 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7610 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm0
7611 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7612 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm2
7613 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7614 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm3
7615 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7616 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
7617 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7618 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7619 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm3
7620 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7621 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7622 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
7623 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
7624 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7625 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7626 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7627 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7628 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7629 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7630 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
7631 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm2
7632 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7633 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7634 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7635 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm0
7636 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm4
7637 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7638 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm3
7639 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7640 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
7641 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7642 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7643 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7644 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7645 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7646 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7647 ; AVX2-FCP-NEXT:    vmovaps 112(%rax), %xmm1
7648 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7649 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7650 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
7651 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
7652 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
7653 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7654 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
7655 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7656 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7657 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm0
7658 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
7659 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7660 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7661 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7662 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %xmm2
7663 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7664 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
7665 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7666 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7667 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %xmm2
7668 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
7669 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7670 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
7671 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
7672 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm3
7673 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7674 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
7675 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7676 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm15
7677 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %ymm1
7678 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7679 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
7680 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7681 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
7682 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7683 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7684 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7685 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7686 ; AVX2-FCP-NEXT:    vmovaps 144(%rax), %xmm1
7687 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7688 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7689 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %xmm0
7690 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
7691 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %xmm2
7692 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
7693 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm12
7694 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm12, %ymm0, %ymm3
7695 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
7696 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7697 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm11
7698 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7699 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm11[1]
7700 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
7701 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
7702 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
7703 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7704 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7705 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
7706 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
7707 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm1
7708 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm2
7709 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
7710 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
7711 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7712 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm0
7713 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm9
7714 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %ymm8
7715 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm9[0],ymm8[0],ymm9[2],ymm8[2]
7716 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
7717 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
7718 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7719 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
7720 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7721 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7722 ; AVX2-FCP-NEXT:    vmovaps 176(%rax), %xmm1
7723 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7724 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7725 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
7726 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
7727 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm7
7728 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm7, %ymm1
7729 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
7730 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7731 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm0
7732 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
7733 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
7734 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
7735 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
7736 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %xmm5
7737 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm5, %ymm0, %ymm2
7738 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
7739 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7740 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %xmm4
7741 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7742 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm4[1]
7743 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
7744 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm3
7745 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
7746 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm6[4,5,6,7]
7747 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7748 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm1
7749 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
7750 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm0[0],mem[0],ymm0[2],mem[2]
7751 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm6[2,3],ymm1[2,3]
7752 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7753 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
7754 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
7755 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
7756 ; AVX2-FCP-NEXT:    vmovaps 208(%rax), %xmm1
7757 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
7758 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7759 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm0
7760 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm2
7761 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
7762 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[0,1],ymm0[0,1]
7763 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
7764 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rax), %ymm3
7765 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
7766 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7767 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm1
7768 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
7769 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
7770 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rcx), %ymm6
7771 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5,6,7]
7772 ; AVX2-FCP-NEXT:    vinsertf128 $1, 224(%r8), %ymm0, %ymm6
7773 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7774 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7775 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm3
7776 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
7777 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm10 = ymm0[0],ymm3[0],ymm0[2],ymm3[2]
7778 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3],ymm10[4,5,6,7]
7779 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7780 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm3[1],ymm0[3],ymm3[3]
7781 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm0[0,2,3,3]
7782 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm0
7783 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm0[6,7]
7784 ; AVX2-FCP-NEXT:    vmovaps 240(%rax), %xmm6
7785 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7786 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7787 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7788 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7789 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7790 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7791 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7792 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm3 # 32-byte Folded Reload
7793 ; AVX2-FCP-NEXT:    # ymm3 = ymm13[1],mem[1],ymm13[3],mem[3]
7794 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7795 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7796 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm6
7797 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7798 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7799 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7800 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7801 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rsp), %ymm3, %ymm3 # 16-byte Folded Reload
7802 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm6
7803 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7804 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7805 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7806 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7807 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7808 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7809 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7810 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm6
7811 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7812 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7813 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7814 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7815 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7816 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7817 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7818 ; AVX2-FCP-NEXT:    vmovups %ymm3, (%rsp) # 32-byte Spill
7819 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7820 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7821 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7822 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7823 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7824 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rcx), %ymm6
7825 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7826 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
7827 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7828 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7829 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7830 ; AVX2-FCP-NEXT:    vbroadcastsd 96(%rcx), %ymm6
7831 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm3[0,1,2,3,4,5],ymm6[6,7]
7832 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
7833 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 32-byte Folded Reload
7834 ; AVX2-FCP-NEXT:    # ymm3 = ymm3[1],mem[1],ymm3[3],mem[3]
7835 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7836 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7837 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm6
7838 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm6[0,1],ymm3[2,3,4,5,6,7]
7839 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm3 # 16-byte Reload
7840 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],mem[0]
7841 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm3, %ymm3 # 16-byte Folded Reload
7842 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 16-byte Folded Reload
7843 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm3[0,1,2,3],ymm6[4,5],ymm3[6,7]
7844 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm3 # 32-byte Folded Reload
7845 ; AVX2-FCP-NEXT:    # ymm3 = ymm15[1],mem[1],ymm15[3],mem[3]
7846 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm3 = ymm3[0,2,3,3]
7847 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
7848 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rcx), %ymm15
7849 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm3[2,3,4,5,6,7]
7850 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
7851 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm11, %ymm12, %ymm11
7852 ; AVX2-FCP-NEXT:    vbroadcastsd 160(%rcx), %ymm12
7853 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm11 = ymm11[0,1,2,3,4,5],ymm12[6,7]
7854 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm8 = ymm9[1],ymm8[1],ymm9[3],ymm8[3]
7855 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm8 = ymm8[0,2,3,3]
7856 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
7857 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm9
7858 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm9[0,1],ymm8[2,3,4,5,6,7]
7859 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm5 = xmm5[0],mem[0]
7860 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm5, %ymm5
7861 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm4, %ymm4
7862 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm5[0,1,2,3],ymm4[4,5],ymm5[6,7]
7863 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rcx), %ymm5
7864 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm5 = xmm5[0,1],mem[2,3]
7865 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%r9), %ymm7
7866 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3],ymm7[4,5,6,7]
7867 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm7
7868 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm7 = xmm7[0],mem[0]
7869 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm7, %ymm1
7870 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rcx), %ymm7
7871 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm7[6,7]
7872 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
7873 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm0[2,3],ymm2[2,3]
7874 ; AVX2-FCP-NEXT:    vbroadcastsd 240(%r9), %ymm2
7875 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
7876 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm2
7877 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm2 = xmm2[0,1],mem[2,3]
7878 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%r9), %ymm7
7879 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3],ymm7[4,5,6,7]
7880 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %ymm7
7881 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm9 # 32-byte Folded Reload
7882 ; AVX2-FCP-NEXT:    # ymm9 = mem[0,1],ymm7[2,3],mem[4,5,6,7]
7883 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm7[6,7]
7884 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
7885 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1,2,3,4,5],mem[6,7]
7886 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 1760(%rcx)
7887 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 1728(%rcx)
7888 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%rcx)
7889 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 1664(%rcx)
7890 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7891 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1632(%rcx)
7892 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7893 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1600(%rcx)
7894 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 1568(%rcx)
7895 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 1536(%rcx)
7896 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7897 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%rcx)
7898 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7899 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%rcx)
7900 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7901 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%rcx)
7902 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7903 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%rcx)
7904 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 1376(%rcx)
7905 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7906 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%rcx)
7907 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 1312(%rcx)
7908 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7909 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%rcx)
7910 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7911 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%rcx)
7912 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7913 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%rcx)
7914 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7915 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%rcx)
7916 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7917 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%rcx)
7918 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 1120(%rcx)
7919 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 1088(%rcx)
7920 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7921 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%rcx)
7922 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7923 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%rcx)
7924 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7925 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rcx)
7926 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7927 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rcx)
7928 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 928(%rcx)
7929 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7930 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rcx)
7931 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 864(%rcx)
7932 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7933 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%rcx)
7934 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7935 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%rcx)
7936 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7937 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%rcx)
7938 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7939 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rcx)
7940 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7941 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rcx)
7942 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 672(%rcx)
7943 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7944 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rcx)
7945 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7946 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%rcx)
7947 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7948 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%rcx)
7949 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7950 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%rcx)
7951 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7952 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%rcx)
7953 ; AVX2-FCP-NEXT:    vmovups (%rsp), %ymm0 # 32-byte Reload
7954 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rcx)
7955 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7956 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rcx)
7957 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7958 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rcx)
7959 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7960 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rcx)
7961 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7962 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rcx)
7963 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7964 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)
7965 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7966 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)
7967 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7968 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rcx)
7969 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7970 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rcx)
7971 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7972 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)
7973 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7974 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)
7975 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7976 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rcx)
7977 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7978 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rcx)
7979 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7980 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rcx)
7981 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7982 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)
7983 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
7984 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)
7985 ; AVX2-FCP-NEXT:    addq $1672, %rsp # imm = 0x688
7986 ; AVX2-FCP-NEXT:    vzeroupper
7987 ; AVX2-FCP-NEXT:    retq
7989 ; AVX512-LABEL: store_i64_stride7_vf32:
7990 ; AVX512:       # %bb.0:
7991 ; AVX512-NEXT:    subq $2184, %rsp # imm = 0x888
7992 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
7993 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm17
7994 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm14
7995 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm16
7996 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm23
7997 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm6
7998 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm7
7999 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm8
8000 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm29
8001 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm0
8002 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm3
8003 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm1
8004 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm5
8005 ; AVX512-NEXT:    movb $96, %r10b
8006 ; AVX512-NEXT:    kmovw %r10d, %k1
8007 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
8008 ; AVX512-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8009 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8010 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [9,1,9,1,9,1,9,1]
8011 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8012 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10
8013 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm2, %zmm10
8014 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm11
8015 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,9,0,3,4,9,0,3]
8016 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8017 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
8018 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
8019 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8020 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm12
8021 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
8022 ; AVX512-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8023 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm1
8024 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm15, %zmm1
8025 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [2,10,0,3,2,10,0,3]
8026 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
8027 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm4
8028 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm10, %zmm4
8029 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm22
8030 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
8031 ; AVX512-NEXT:    vmovdqa (%r9), %ymm10
8032 ; AVX512-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
8033 ; AVX512-NEXT:    vmovdqa 64(%r9), %ymm13
8034 ; AVX512-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8035 ; AVX512-NEXT:    vmovdqa (%r8), %ymm1
8036 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8037 ; AVX512-NEXT:    vmovdqa64 64(%r8), %ymm18
8038 ; AVX512-NEXT:    vmovdqu64 %ymm18, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8039 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
8040 ; AVX512-NEXT:    movb $28, %r10b
8041 ; AVX512-NEXT:    kmovw %r10d, %k2
8042 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
8043 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8044 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
8045 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
8046 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8047 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm10, %zmm1
8048 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,1,12,7,0,1,12,7]
8049 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8050 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
8051 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8052 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm1
8053 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
8054 ; AVX512-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
8055 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm21
8056 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8057 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm20, %zmm21
8058 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8059 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8060 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm2, %zmm21
8061 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8062 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
8063 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8064 ; AVX512-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8065 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm1
8066 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8067 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm0
8068 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm15, %zmm0
8069 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm1
8070 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm21
8071 ; AVX512-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8072 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm22, %zmm1
8073 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
8074 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm18[0],ymm13[0],ymm18[2],ymm13[2]
8075 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
8076 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8077 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm0
8078 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm13
8079 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8080 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm11, %zmm1
8081 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8082 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8083 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm12, %zmm1
8084 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8085 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
8086 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
8087 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm4, %zmm1
8088 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8089 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm1
8090 ; AVX512-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8091 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
8092 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm1
8093 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8094 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8095 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm19, %zmm0
8096 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8097 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8098 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm18
8099 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm22
8100 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm1
8101 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm15, %zmm1
8102 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm0
8103 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm28
8104 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5
8105 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm21, %zmm5
8106 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
8107 ; AVX512-NEXT:    vmovdqa64 128(%rax), %zmm30
8108 ; AVX512-NEXT:    vmovdqa 128(%r9), %ymm13
8109 ; AVX512-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8110 ; AVX512-NEXT:    vmovdqa 128(%r8), %ymm1
8111 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8112 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm13[0],ymm1[2],ymm13[2]
8113 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm30[2,3,2,3]
8114 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8115 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm5
8116 ; AVX512-NEXT:    vmovdqa64 128(%r9), %zmm1
8117 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm5, %zmm10
8118 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm4, %zmm10
8119 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8120 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm4
8121 ; AVX512-NEXT:    vpermi2q %zmm5, %zmm1, %zmm20
8122 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm2, %zmm20
8123 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8124 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
8125 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm11, %zmm1
8126 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8127 ; AVX512-NEXT:    vpermt2q %zmm30, %zmm12, %zmm1
8128 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8129 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8130 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm19, %zmm5
8131 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm3, %zmm30
8132 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [13,5,13,5,13,5,13,5]
8133 ; AVX512-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8134 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8135 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm3, %zmm1
8136 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8137 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [6,14,6,14,6,14,6,14]
8138 ; AVX512-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8139 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8140 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm12, %zmm1
8141 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8142 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm1
8143 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm19, %zmm1
8144 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8145 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm1
8146 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
8147 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8148 ; AVX512-NEXT:    vpermt2q %zmm7, %zmm2, %zmm8
8149 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm31
8150 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
8151 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm3, %zmm4
8152 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8153 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4
8154 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm12, %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, %zmm19, %zmm4
8158 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8159 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm2, %zmm29
8160 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4
8161 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm3, %zmm4
8162 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8163 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4
8164 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm12, %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, %zmm19, %zmm4
8168 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8169 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm28
8170 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm10
8171 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
8172 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm24
8173 ; AVX512-NEXT:    vpermt2q %zmm10, %zmm2, %zmm24
8174 ; AVX512-NEXT:    movb $48, %r10b
8175 ; AVX512-NEXT:    kmovw %r10d, %k3
8176 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm7
8177 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm2
8178 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm7[0],zmm2[0],zmm7[2],zmm2[2],zmm7[4],zmm2[4],zmm7[6],zmm2[6]
8179 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
8180 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
8181 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm26
8182 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
8183 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
8184 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8185 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm27
8186 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm13, %zmm27
8187 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm4
8188 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm21
8189 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm11, %zmm21
8190 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm23
8191 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm13, %zmm23
8192 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm8
8193 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm19
8194 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm11, %zmm19
8195 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm20
8196 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm13, %zmm20
8197 ; AVX512-NEXT:    vpermi2q %zmm2, %zmm7, %zmm13
8198 ; AVX512-NEXT:    vpermi2q %zmm7, %zmm2, %zmm11
8199 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm25
8200 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm5
8201 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm6
8202 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm7
8203 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm12, %zmm25
8204 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm3, %zmm5
8205 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm6
8206 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm2
8207 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm17[0],zmm16[0],zmm17[2],zmm16[2],zmm17[4],zmm16[4],zmm17[6],zmm16[6]
8208 ; AVX512-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8209 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm4
8210 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm16
8211 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm15
8212 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm3, %zmm4
8213 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm12, %zmm16
8214 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm15
8215 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k3} = zmm14[0],zmm8[0],zmm14[2],zmm8[2],zmm14[4],zmm8[4],zmm14[6],zmm8[6]
8216 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm2
8217 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm17
8218 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
8219 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm12, %zmm17
8220 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm1, %zmm14
8221 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm8
8222 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm8
8223 ; AVX512-NEXT:    vpermi2q %zmm22, %zmm18, %zmm3
8224 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm9
8225 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm12, %zmm9
8226 ; AVX512-NEXT:    vpermi2q %zmm22, %zmm18, %zmm12
8227 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k3} = zmm18[0],zmm22[0],zmm18[2],zmm22[2],zmm18[4],zmm22[4],zmm18[6],zmm22[6]
8228 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm1, %zmm18
8229 ; AVX512-NEXT:    vmovdqa64 %zmm10, %zmm22
8230 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm22
8231 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8232 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
8233 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm25[0,1,2,3],zmm9[4,5,6,7]
8234 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm0
8235 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
8236 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm24, %zmm9
8237 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
8238 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [12,0,0,3,4,5,6,13]
8239 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm25
8240 ; AVX512-NEXT:    movb $24, %sil
8241 ; AVX512-NEXT:    kmovw %esi, %k3
8242 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm6 {%k3}
8243 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,15,0,0]
8244 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm5
8245 ; AVX512-NEXT:    vmovdqa (%rdx), %xmm6
8246 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm6 = xmm6[0],mem[0]
8247 ; AVX512-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
8248 ; AVX512-NEXT:    movb $12, %sil
8249 ; AVX512-NEXT:    kmovw %esi, %k4
8250 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm27 {%k4}
8251 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [0,8,0,8,0,8,0,8]
8252 ; AVX512-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8253 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
8254 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm22 # 64-byte Folded Reload
8255 ; AVX512-NEXT:    vmovdqa 64(%rdx), %xmm8
8256 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8257 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8258 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm23 {%k4}
8259 ; AVX512-NEXT:    vmovdqa 128(%rdx), %xmm8
8260 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8261 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8262 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm20 {%k4}
8263 ; AVX512-NEXT:    vmovdqa 192(%rdx), %xmm8
8264 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
8265 ; AVX512-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
8266 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm13 {%k4}
8267 ; AVX512-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm8
8268 ; AVX512-NEXT:    movb $112, %sil
8269 ; AVX512-NEXT:    kmovw %esi, %k4
8270 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm27 {%k4}
8271 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8272 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
8273 ; AVX512-NEXT:    vinserti32x4 $3, 64(%rax), %zmm1, %zmm8
8274 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm23 {%k4}
8275 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8276 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
8277 ; AVX512-NEXT:    vinserti32x4 $3, 128(%rax), %zmm1, %zmm1
8278 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm20 {%k4}
8279 ; AVX512-NEXT:    vmovdqa64 192(%r9), %zmm1
8280 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
8281 ; AVX512-NEXT:    vinserti32x4 $3, 192(%rax), %zmm6, %zmm6
8282 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm13 {%k4}
8283 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8284 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k1}
8285 ; AVX512-NEXT:    movb $120, %sil
8286 ; AVX512-NEXT:    kmovw %esi, %k4
8287 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
8288 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm24 {%k4}
8289 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm22 # 64-byte Folded Reload
8290 ; AVX512-NEXT:    # zmm22 = zmm16[0,1,2,3],mem[4,5,6,7]
8291 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8292 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
8293 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
8294 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k4}
8295 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8296 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
8297 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8298 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k4}
8299 ; AVX512-NEXT:    movb $-61, %sil
8300 ; AVX512-NEXT:    kmovw %esi, %k4
8301 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8302 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k4}
8303 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm2 # 64-byte Folded Reload
8304 ; AVX512-NEXT:    # zmm2 = zmm17[0,1,2,3],mem[4,5,6,7]
8305 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8306 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k4}
8307 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 # 64-byte Folded Reload
8308 ; AVX512-NEXT:    # zmm3 = zmm12[0,1,2,3],mem[4,5,6,7]
8309 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8310 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k4}
8311 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm6
8312 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8313 ; AVX512-NEXT:    movb $6, %sil
8314 ; AVX512-NEXT:    kmovw %esi, %k4
8315 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm26 {%k4}
8316 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8317 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
8318 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8319 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
8320 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8321 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
8322 ; AVX512-NEXT:    movb $-31, %sil
8323 ; AVX512-NEXT:    kmovw %esi, %k3
8324 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8325 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
8326 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8327 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
8328 ; AVX512-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k3}
8329 ; AVX512-NEXT:    movb $56, %sil
8330 ; AVX512-NEXT:    kmovw %esi, %k3
8331 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8332 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm26 {%k3}
8333 ; AVX512-NEXT:    vpbroadcastq 72(%rcx), %ymm6
8334 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8335 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm21 {%k4}
8336 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8337 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
8338 ; AVX512-NEXT:    vpbroadcastq 136(%rcx), %ymm6
8339 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8340 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k4}
8341 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8342 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
8343 ; AVX512-NEXT:    vpbroadcastq 200(%rcx), %ymm6
8344 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
8345 ; AVX512-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm11 {%k4}
8346 ; AVX512-NEXT:    movb $64, %cl
8347 ; AVX512-NEXT:    kmovw %ecx, %k4
8348 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k4}
8349 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8350 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm6, %zmm0
8351 ; AVX512-NEXT:    vmovdqa64 192(%rax), %zmm6
8352 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
8353 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm8, %zmm0
8354 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k3}
8355 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,11,0,4,5,6,7]
8356 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm9, %zmm0
8357 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm10 {%k1}
8358 ; AVX512-NEXT:    vmovdqa 192(%r8), %ymm7
8359 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm7[0],mem[0],ymm7[2],mem[2]
8360 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm7[2,3,2,3],zmm6[2,3,2,3]
8361 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8362 ; AVX512-NEXT:    vpunpckhqdq (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
8363 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8364 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8365 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8366 ; AVX512-NEXT:    movb $14, %cl
8367 ; AVX512-NEXT:    kmovw %ecx, %k1
8368 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
8369 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm12 {%k1}
8370 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8371 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
8372 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8373 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8374 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8375 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm29 {%k1}
8376 ; AVX512-NEXT:    movb $8, %cl
8377 ; AVX512-NEXT:    kmovw %ecx, %k2
8378 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k2}
8379 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
8380 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
8381 ; AVX512-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
8382 ; AVX512-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
8383 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
8384 ; AVX512-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm28 {%k1}
8385 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
8386 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm25, %zmm7
8387 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
8388 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm31, %zmm8
8389 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
8390 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm5, %zmm9
8391 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
8392 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm7, %zmm1
8393 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,13,2,3,4,5,6,7]
8394 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm8, %zmm5
8395 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [14,1,2,3,4,5,6,15]
8396 ; AVX512-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
8397 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8398 ; AVX512-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
8399 ; AVX512-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
8400 ; AVX512-NEXT:    vmovdqa64 %zmm18, 1280(%rax)
8401 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1216(%rax)
8402 ; AVX512-NEXT:    vmovdqa64 %zmm4, 1152(%rax)
8403 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8404 ; AVX512-NEXT:    vmovaps %zmm3, 1024(%rax)
8405 ; AVX512-NEXT:    vmovdqa64 %zmm19, 960(%rax)
8406 ; AVX512-NEXT:    vmovdqa64 %zmm14, 832(%rax)
8407 ; AVX512-NEXT:    vmovdqa64 %zmm2, 768(%rax)
8408 ; AVX512-NEXT:    vmovdqa64 %zmm16, 704(%rax)
8409 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8410 ; AVX512-NEXT:    vmovaps %zmm2, 576(%rax)
8411 ; AVX512-NEXT:    vmovdqa64 %zmm21, 512(%rax)
8412 ; AVX512-NEXT:    vmovdqa64 %zmm15, 384(%rax)
8413 ; AVX512-NEXT:    vmovdqa64 %zmm22, 320(%rax)
8414 ; AVX512-NEXT:    vmovdqa64 %zmm24, 256(%rax)
8415 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8416 ; AVX512-NEXT:    vmovaps %zmm2, 128(%rax)
8417 ; AVX512-NEXT:    vmovdqa64 %zmm26, 64(%rax)
8418 ; AVX512-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
8419 ; AVX512-NEXT:    vmovdqa64 %zmm28, 1088(%rax)
8420 ; AVX512-NEXT:    vmovdqa64 %zmm20, 896(%rax)
8421 ; AVX512-NEXT:    vmovdqa64 %zmm29, 640(%rax)
8422 ; AVX512-NEXT:    vmovdqa64 %zmm23, 448(%rax)
8423 ; AVX512-NEXT:    vmovdqa64 %zmm12, 192(%rax)
8424 ; AVX512-NEXT:    vmovdqa64 %zmm27, (%rax)
8425 ; AVX512-NEXT:    vmovdqa64 %zmm7, 1728(%rax)
8426 ; AVX512-NEXT:    vmovdqa64 %zmm5, 1664(%rax)
8427 ; AVX512-NEXT:    vmovdqa64 %zmm1, 1600(%rax)
8428 ; AVX512-NEXT:    vmovdqa64 %zmm0, 1536(%rax)
8429 ; AVX512-NEXT:    addq $2184, %rsp # imm = 0x888
8430 ; AVX512-NEXT:    vzeroupper
8431 ; AVX512-NEXT:    retq
8433 ; AVX512-FCP-LABEL: store_i64_stride7_vf32:
8434 ; AVX512-FCP:       # %bb.0:
8435 ; AVX512-FCP-NEXT:    subq $2152, %rsp # imm = 0x868
8436 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8437 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm16
8438 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm17
8439 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm29
8440 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm28
8441 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm19
8442 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm23
8443 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
8444 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm30
8445 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
8446 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm7
8447 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
8448 ; AVX512-FCP-NEXT:    movb $96, %r10b
8449 ; AVX512-FCP-NEXT:    kmovw %r10d, %k1
8450 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [15,7,15,7,15,7,15,7]
8451 ; AVX512-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8452 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8453 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [9,1,9,1,9,1,9,1]
8454 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8455 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8456 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm2, %zmm4
8457 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
8458 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,9,0,3,4,9,0,3]
8459 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8460 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm4
8461 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8462 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
8463 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
8464 ; AVX512-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8465 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
8466 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm25, %zmm1
8467 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
8468 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
8469 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
8470 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm2
8471 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm15
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 {{.*#+}} zmm1 = [4,12,0,5,4,12,0,5]
8489 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8490 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
8491 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm2
8492 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
8493 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
8494 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8495 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
8496 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8497 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
8498 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8499 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
8500 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
8501 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8502 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm14
8503 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8504 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8505 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm7
8506 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm14
8507 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8508 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
8509 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8510 ; AVX512-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8511 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm7
8512 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8513 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm12[0],ymm6[0],ymm12[2],ymm6[2]
8514 ; AVX512-FCP-NEXT:    vpermt2q %ymm6, %ymm5, %ymm12
8515 ; AVX512-FCP-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8516 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
8517 ; AVX512-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm11
8518 ; AVX512-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8519 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm4
8520 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm25, %zmm4
8521 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm6
8522 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm5
8523 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8524 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm15, %zmm6
8525 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
8526 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm11
8527 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 {%k2} = zmm0[2,3,2,3],zmm11[2,3,2,3]
8528 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8529 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm0
8530 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
8531 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8532 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8533 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8534 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm8, %zmm4
8535 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8536 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm4
8537 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8538 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
8539 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm4
8540 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm4
8541 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8542 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
8543 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm4
8544 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm2, %zmm4
8545 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8546 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8547 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm0
8548 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
8549 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8550 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
8551 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm18
8552 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
8553 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm25, %zmm0
8554 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm31
8555 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm15
8556 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm4
8557 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm4
8558 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
8559 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rax), %zmm5
8560 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm7[2,3,2,3],zmm5[2,3,2,3]
8561 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8562 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
8563 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r9), %zmm4
8564 ; AVX512-FCP-NEXT:    vpermi2q %zmm4, %zmm0, %zmm10
8565 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm10
8566 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8567 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm4, %zmm13
8568 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
8569 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8570 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
8571 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm1
8572 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8573 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm9, %zmm1
8574 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8575 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8576 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm0
8577 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8578 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8579 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm7
8580 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
8581 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [3,0,12,4,3,0,12,4]
8582 ; AVX512-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
8583 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
8584 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm24
8585 ; AVX512-FCP-NEXT:    movb $48, %r10b
8586 ; AVX512-FCP-NEXT:    kmovw %r10d, %k3
8587 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm12
8588 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm3
8589 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm12[0],zmm3[0],zmm12[2],zmm3[2],zmm12[4],zmm3[4],zmm12[6],zmm3[6]
8590 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,8,0,1,0,8,0,1]
8591 ; AVX512-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
8592 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
8593 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm14, %zmm1
8594 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8595 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
8596 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm14, %zmm1
8597 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8598 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1
8599 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm14, %zmm1
8600 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8601 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm12, %zmm14
8602 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
8603 ; AVX512-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
8604 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
8605 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
8606 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8607 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
8608 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
8609 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm20
8610 ; AVX512-FCP-NEXT:    vpermt2q %zmm27, %zmm11, %zmm20
8611 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm11
8612 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm8
8613 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
8614 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9
8615 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm25, %zmm12
8616 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
8617 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8618 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm8
8619 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
8620 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8621 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm10
8622 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm9
8623 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
8624 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
8625 ; AVX512-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm25
8626 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm1, %zmm23
8627 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
8628 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm3
8629 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8630 ; AVX512-FCP-NEXT:    vpermt2q %zmm22, %zmm21, %zmm2
8631 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8632 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm16[0],zmm29[0],zmm16[2],zmm29[2],zmm16[4],zmm29[4],zmm16[6],zmm29[6]
8633 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6
8634 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm6
8635 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
8636 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm22
8637 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm21, %zmm16
8638 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8639 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm16
8640 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
8641 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm13, %zmm16
8642 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm19
8643 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29
8644 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm4, %zmm29
8645 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm21, %zmm2
8646 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8647 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm30
8648 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k3} = zmm17[0],zmm28[0],zmm17[2],zmm28[2],zmm17[4],zmm28[4],zmm17[6],zmm28[6]
8649 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
8650 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
8651 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm17
8652 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm21, %zmm30
8653 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
8654 ; AVX512-FCP-NEXT:    vpermi2q %zmm31, %zmm15, %zmm13
8655 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm31
8656 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm28
8657 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm28
8658 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm21, %zmm2
8659 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8660 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm15
8661 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm15
8662 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
8663 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm5
8664 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k3} = zmm27[0],zmm18[0],zmm27[2],zmm18[2],zmm27[4],zmm18[4],zmm27[6],zmm18[6]
8665 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm1
8666 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm4
8667 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm27
8668 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
8669 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm21, %zmm18
8670 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
8671 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
8672 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm8[0,1,2,3],zmm15[4,5,6,7]
8673 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8674 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
8675 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,11,0,0,4,5,6,7]
8676 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm24, %zmm0
8677 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r9), %zmm8
8678 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,1,11,0,4,5,6,7]
8679 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm0, %zmm15
8680 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k1}
8681 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [12,0,0,3,4,5,6,13]
8682 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm0
8683 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8684 ; AVX512-FCP-NEXT:    movb $24, %sil
8685 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8686 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k3}
8687 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [0,1,2,3,4,15,0,0]
8688 ; AVX512-FCP-NEXT:    vpermi2q %zmm2, %zmm9, %zmm24
8689 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm0
8690 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
8691 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
8692 ; AVX512-FCP-NEXT:    movb $12, %sil
8693 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8694 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
8695 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k4}
8696 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
8697 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8698 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8699 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
8700 ; AVX512-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
8701 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8702 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8703 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8704 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k4}
8705 ; AVX512-FCP-NEXT:    vmovdqa 128(%rdx), %xmm5
8706 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8707 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8708 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
8709 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm18 {%k4}
8710 ; AVX512-FCP-NEXT:    vmovdqa 192(%rdx), %xmm5
8711 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
8712 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
8713 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm14 {%k4}
8714 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm9, %zmm5
8715 ; AVX512-FCP-NEXT:    movb $112, %sil
8716 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8717 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k4}
8718 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8719 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
8720 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
8721 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm5, %zmm5
8722 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
8723 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8724 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
8725 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
8726 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm5, %zmm5
8727 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k4}
8728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
8729 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm2, %zmm0
8730 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
8731 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k4}
8732 ; AVX512-FCP-NEXT:    vmovdqu (%rsp), %ymm0 # 32-byte Reload
8733 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8734 ; AVX512-FCP-NEXT:    movb $14, %sil
8735 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8736 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k4}
8737 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, %zmm6 {%k1}
8738 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8739 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8740 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
8741 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
8742 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
8743 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm13 {%k4}
8744 ; AVX512-FCP-NEXT:    movb $120, %sil
8745 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8746 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
8747 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k4}
8748 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm22, %zmm5 # 64-byte Folded Reload
8749 ; AVX512-FCP-NEXT:    # zmm5 = zmm22[0,1,2,3],mem[4,5,6,7]
8750 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3 {%k1}
8751 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
8752 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
8753 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm1 {%k1}
8754 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
8755 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k4}
8756 ; AVX512-FCP-NEXT:    movb $-61, %sil
8757 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8758 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8759 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k4}
8760 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm29[4,5,6,7]
8761 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8762 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k4}
8763 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm4[0,1,2,3],zmm28[4,5,6,7]
8764 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8765 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
8766 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
8767 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8768 ; AVX512-FCP-NEXT:    movb $6, %sil
8769 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
8770 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8771 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
8772 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8773 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8774 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
8775 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8776 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
8777 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8778 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
8779 ; AVX512-FCP-NEXT:    movb $-31, %sil
8780 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8781 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
8783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19
8784 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8785 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
8786 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8787 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
8788 ; AVX512-FCP-NEXT:    movb $56, %sil
8789 ; AVX512-FCP-NEXT:    kmovw %esi, %k3
8790 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8791 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
8792 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm17
8793 ; AVX512-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm3
8794 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8795 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm26 {%k4}
8796 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8797 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm26 {%k3}
8798 ; AVX512-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm3
8799 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8800 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k4}
8801 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8802 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20 {%k3}
8803 ; AVX512-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm3
8804 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
8805 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm11 {%k4}
8806 ; AVX512-FCP-NEXT:    movb $64, %cl
8807 ; AVX512-FCP-NEXT:    kmovw %ecx, %k4
8808 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
8809 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k4}
8810 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
8811 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
8812 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rax), %zmm3
8813 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8814 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm2
8815 ; AVX512-FCP-NEXT:    movb $8, %al
8816 ; AVX512-FCP-NEXT:    kmovw %eax, %k4
8817 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k4}
8818 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k3}
8819 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
8820 ; AVX512-FCP-NEXT:    vmovdqa 192(%r8), %ymm2
8821 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
8822 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
8823 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,12,0,3,4,5,6,7]
8824 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
8825 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm4, %zmm2
8826 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,3,4,5,6,14]
8827 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm6, %zmm4
8828 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,5,15,0]
8829 ; AVX512-FCP-NEXT:    vpermi2q %zmm8, %zmm24, %zmm6
8830 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,12,3,4,5,6,7]
8831 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
8832 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,13,2,3,4,5,6,7]
8833 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm2
8834 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [14,1,2,3,4,5,6,15]
8835 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm6, %zmm4
8836 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8837 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 1472(%rax)
8838 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
8839 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
8840 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
8841 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, 1152(%rax)
8842 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
8843 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
8844 ; AVX512-FCP-NEXT:    vmovaps %zmm1, 1024(%rax)
8845 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 960(%rax)
8846 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 832(%rax)
8847 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 768(%rax)
8848 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 704(%rax)
8849 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
8850 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8851 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
8852 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 512(%rax)
8853 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 384(%rax)
8854 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 320(%rax)
8855 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
8856 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 192(%rax)
8857 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8858 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
8859 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 64(%rax)
8860 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 1344(%rax)
8861 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, 896(%rax)
8862 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8863 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
8864 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
8865 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%rax)
8866 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 1728(%rax)
8867 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 1664(%rax)
8868 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 1600(%rax)
8869 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 1536(%rax)
8870 ; AVX512-FCP-NEXT:    addq $2152, %rsp # imm = 0x868
8871 ; AVX512-FCP-NEXT:    vzeroupper
8872 ; AVX512-FCP-NEXT:    retq
8874 ; AVX512DQ-LABEL: store_i64_stride7_vf32:
8875 ; AVX512DQ:       # %bb.0:
8876 ; AVX512DQ-NEXT:    subq $2184, %rsp # imm = 0x888
8877 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
8878 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm16
8879 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm9
8880 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm23
8881 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm10
8882 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm20
8883 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm18
8884 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm6
8885 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm7
8886 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm0
8887 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm3
8888 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm2
8889 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm4
8890 ; AVX512DQ-NEXT:    movb $96, %r10b
8891 ; AVX512DQ-NEXT:    kmovw %r10d, %k1
8892 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [15,7,15,7,15,7,15,7]
8893 ; AVX512DQ-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8894 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8895 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [9,1,9,1,9,1,9,1]
8896 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8897 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8898 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm1, %zmm5
8899 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm12
8900 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,9,0,3,4,9,0,3]
8901 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8902 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
8903 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8904 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm13
8905 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
8906 ; AVX512DQ-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
8907 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
8908 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm25, %zmm1
8909 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [2,10,0,3,2,10,0,3]
8910 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
8911 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm5
8912 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm8, %zmm5
8913 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm15
8914 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
8915 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm8
8916 ; AVX512DQ-NEXT:    vmovdqu %ymm8, (%rsp) # 32-byte Spill
8917 ; AVX512DQ-NEXT:    vmovdqa 64(%r9), %ymm14
8918 ; AVX512DQ-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8919 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm1
8920 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8921 ; AVX512DQ-NEXT:    vmovdqa 64(%r8), %ymm11
8922 ; AVX512DQ-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8923 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
8924 ; AVX512DQ-NEXT:    movb $28, %r10b
8925 ; AVX512DQ-NEXT:    kmovw %r10d, %k2
8926 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
8927 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8928 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,12,0,5,4,12,0,5]
8929 ; AVX512DQ-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
8930 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8931 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
8932 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
8933 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
8934 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
8935 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8936 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm5
8937 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [5,0,14,6,5,0,14,6]
8938 ; AVX512DQ-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
8939 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm19
8940 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8941 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm21, %zmm19
8942 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
8943 ; AVX512DQ-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
8944 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm19
8945 ; AVX512DQ-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8946 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm17, %zmm0
8947 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
8948 ; AVX512DQ-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
8949 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8950 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8951 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm0
8952 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm25, %zmm0
8953 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm5
8954 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm15, %zmm5
8955 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8956 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
8957 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
8958 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
8959 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8960 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm0
8961 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm11
8962 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5
8963 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
8964 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8965 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8966 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
8967 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8968 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm5
8969 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4
8970 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm8, %zmm4
8971 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm1, %zmm4
8972 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8973 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm4
8974 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8975 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm21, %zmm4
8976 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm4
8977 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8978 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8979 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
8980 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
8981 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8982 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm11
8983 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm19
8984 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm5
8985 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm25, %zmm5
8986 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm4
8987 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm31
8988 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
8989 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm15, %zmm0
8990 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
8991 ; AVX512DQ-NEXT:    vmovdqa64 128(%rax), %zmm15
8992 ; AVX512DQ-NEXT:    vmovdqa 128(%r9), %ymm14
8993 ; AVX512DQ-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8994 ; AVX512DQ-NEXT:    vmovdqa 128(%r8), %ymm5
8995 ; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
8996 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm5[0],ymm14[0],ymm5[2],ymm14[2]
8997 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm5[2,3,2,3],zmm15[2,3,2,3]
8998 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
8999 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm5
9000 ; AVX512DQ-NEXT:    vmovdqa64 128(%r9), %zmm0
9001 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm8
9002 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm1, %zmm8
9003 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9004 ; AVX512DQ-NEXT:    vpermi2q %zmm5, %zmm0, %zmm21
9005 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm2, %zmm21
9006 ; AVX512DQ-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9007 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
9008 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm1
9009 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9010 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm13, %zmm1
9011 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9012 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9013 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm5
9014 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm3, %zmm15
9015 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9016 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
9017 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9018 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9019 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm0
9020 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm1, %zmm2
9021 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9022 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [6,14,6,14,6,14,6,14]
9023 ; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9024 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9025 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
9026 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9027 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
9028 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
9029 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9030 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm15
9031 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [3,0,12,4,3,0,12,4]
9032 ; AVX512DQ-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
9033 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm3, %zmm0
9034 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2
9035 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9036 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm1, %zmm0
9037 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9038 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9039 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm6, %zmm0
9040 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9041 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm0
9042 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
9043 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9044 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm3, %zmm7
9045 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm5
9046 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm29
9047 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm1, %zmm29
9048 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm30
9049 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm6, %zmm30
9050 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
9051 ; AVX512DQ-NEXT:    vpermt2q %zmm31, %zmm17, %zmm0
9052 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9053 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm3, %zmm31
9054 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm12
9055 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm21
9056 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm22
9057 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm3, %zmm22
9058 ; AVX512DQ-NEXT:    movb $48, %r10b
9059 ; AVX512DQ-NEXT:    kmovw %r10d, %k3
9060 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm8
9061 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm7
9062 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k3} = zmm8[0],zmm7[0],zmm8[2],zmm7[2],zmm8[4],zmm7[4],zmm8[6],zmm7[6]
9063 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
9064 ; AVX512DQ-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
9065 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
9066 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm28
9067 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm14, %zmm28
9068 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
9069 ; AVX512DQ-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
9070 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm27
9071 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm13, %zmm27
9072 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm26
9073 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm14, %zmm26
9074 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm23
9075 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm13, %zmm23
9076 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm20
9077 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm14, %zmm20
9078 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm18
9079 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm13, %zmm18
9080 ; AVX512DQ-NEXT:    vpermi2q %zmm7, %zmm8, %zmm13
9081 ; AVX512DQ-NEXT:    vpermi2q %zmm8, %zmm7, %zmm14
9082 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm24
9083 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm3
9084 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm4
9085 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm25, %zmm8
9086 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm6, %zmm24
9087 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm1, %zmm3
9088 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm4
9089 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm16[0],zmm0[0],zmm16[2],zmm0[2],zmm16[4],zmm0[4],zmm16[6],zmm0[6]
9090 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9091 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm25
9092 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm2
9093 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm17
9094 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm25
9095 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
9096 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm15, %zmm17
9097 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm5 {%k3} = zmm9[0],zmm10[0],zmm9[2],zmm10[2],zmm9[4],zmm10[4],zmm9[6],zmm10[6]
9098 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9099 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm0
9100 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm5
9101 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm16
9102 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm1, %zmm0
9103 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm6, %zmm5
9104 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm15, %zmm16
9105 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm9
9106 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm1, %zmm9
9107 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm11, %zmm1
9108 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm10
9109 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm6, %zmm10
9110 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm11, %zmm6
9111 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm11[0],zmm19[0],zmm11[2],zmm19[2],zmm11[4],zmm19[4],zmm11[6],zmm19[6]
9112 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm7
9113 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm15, %zmm7
9114 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm11
9115 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm15, %zmm11
9116 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9117 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm15, %zmm12
9118 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm10[4,5,6,7]
9119 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm19
9120 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
9121 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm22, %zmm10
9122 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
9123 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [12,0,0,3,4,5,6,13]
9124 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm3, %zmm22
9125 ; AVX512DQ-NEXT:    movb $24, %sil
9126 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9127 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm4 {%k3}
9128 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,15,0,0]
9129 ; AVX512DQ-NEXT:    vpermi2q %zmm19, %zmm4, %zmm21
9130 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9131 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm25 {%k1}
9132 ; AVX512DQ-NEXT:    movb $120, %sil
9133 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9134 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9135 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k4}
9136 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9137 ; AVX512DQ-NEXT:    # zmm3 = zmm2[0,1,2,3],mem[4,5,6,7]
9138 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9139 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k1}
9140 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
9141 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k4}
9142 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k1}
9143 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
9144 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm25 {%k4}
9145 ; AVX512DQ-NEXT:    movb $-61, %sil
9146 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9147 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9148 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k4}
9149 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm4 # 64-byte Folded Reload
9150 ; AVX512DQ-NEXT:    # zmm4 = zmm5[0,1,2,3],mem[4,5,6,7]
9151 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9152 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k4}
9153 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm6[0,1,2,3],zmm30[4,5,6,7]
9154 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9155 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k4}
9156 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm0
9157 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
9158 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
9159 ; AVX512DQ-NEXT:    movb $12, %sil
9160 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9161 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k4}
9162 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
9163 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9164 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9165 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9166 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9167 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
9168 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9169 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
9170 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9171 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
9172 ; AVX512DQ-NEXT:    movb $-31, %sil
9173 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9174 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
9176 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9177 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
9178 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9179 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
9180 ; AVX512DQ-NEXT:    movb $112, %sil
9181 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9182 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%rax), %zmm2, %zmm27 {%k3}
9183 ; AVX512DQ-NEXT:    vmovdqa 64(%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, %zmm23 {%k4}
9187 ; AVX512DQ-NEXT:    vmovdqa 128(%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, %zmm18 {%k4}
9191 ; AVX512DQ-NEXT:    vmovdqa 192(%rdx), %xmm2
9192 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9193 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9194 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm13 {%k4}
9195 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm2
9196 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9197 ; AVX512DQ-NEXT:    movb $6, %sil
9198 ; AVX512DQ-NEXT:    kmovw %esi, %k4
9199 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm28 {%k4}
9200 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9201 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9202 ; AVX512DQ-NEXT:    vinserti64x2 $3, 64(%rax), %zmm2, %zmm23 {%k3}
9203 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9204 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
9205 ; AVX512DQ-NEXT:    vinserti64x2 $3, 128(%rax), %zmm2, %zmm18 {%k3}
9206 ; AVX512DQ-NEXT:    vmovdqa64 192(%r9), %zmm2
9207 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm19, %zmm0
9208 ; AVX512DQ-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm13 {%k3}
9209 ; AVX512DQ-NEXT:    movb $56, %sil
9210 ; AVX512DQ-NEXT:    kmovw %esi, %k3
9211 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9212 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k3}
9213 ; AVX512DQ-NEXT:    vpbroadcastq 72(%rcx), %ymm0
9214 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9215 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm26 {%k4}
9216 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9217 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
9218 ; AVX512DQ-NEXT:    vpbroadcastq 136(%rcx), %ymm0
9219 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9220 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
9221 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9222 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k3}
9223 ; AVX512DQ-NEXT:    vpbroadcastq 200(%rcx), %ymm0
9224 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
9225 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k4}
9226 ; AVX512DQ-NEXT:    movb $64, %cl
9227 ; AVX512DQ-NEXT:    kmovw %ecx, %k4
9228 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm24 {%k4}
9229 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9230 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm0, %zmm19
9231 ; AVX512DQ-NEXT:    vmovdqa64 192(%rax), %zmm0
9232 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9233 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm19
9234 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
9235 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,11,0,4,5,6,7]
9236 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm10, %zmm5
9237 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm12 {%k1}
9238 ; AVX512DQ-NEXT:    vmovdqa 192(%r8), %ymm6
9239 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
9240 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
9241 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9242 ; AVX512DQ-NEXT:    vpunpckhqdq (%rsp), %ymm6, %ymm6 # 32-byte Folded Reload
9243 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9244 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9245 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9246 ; AVX512DQ-NEXT:    movb $14, %cl
9247 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
9248 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
9249 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm10 {%k1}
9250 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9251 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9252 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9253 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9254 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9255 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9256 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k1}
9257 ; AVX512DQ-NEXT:    movb $8, %cl
9258 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
9259 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
9260 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
9261 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
9262 ; AVX512DQ-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
9263 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
9264 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
9265 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm31 {%k1}
9266 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,12,0,3,4,5,6,7]
9267 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm22, %zmm6
9268 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
9269 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm24, %zmm8
9270 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
9271 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm21, %zmm9
9272 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,12,3,4,5,6,7]
9273 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm6, %zmm2
9274 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,13,2,3,4,5,6,7]
9275 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm8, %zmm6
9276 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
9277 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
9278 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9279 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 1472(%rax)
9280 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 1408(%rax)
9281 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
9282 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 1280(%rax)
9283 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
9284 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 1152(%rax)
9285 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1088(%rax)
9286 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9287 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1024(%rax)
9288 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 960(%rax)
9289 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 896(%rax)
9290 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 832(%rax)
9291 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 768(%rax)
9292 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 704(%rax)
9293 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 640(%rax)
9294 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9295 ; AVX512DQ-NEXT:    vmovaps %zmm0, 576(%rax)
9296 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 512(%rax)
9297 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 448(%rax)
9298 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 384(%rax)
9299 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 320(%rax)
9300 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 256(%rax)
9301 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 192(%rax)
9302 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9303 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%rax)
9304 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 64(%rax)
9305 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, (%rax)
9306 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, 1728(%rax)
9307 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 1664(%rax)
9308 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
9309 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 1536(%rax)
9310 ; AVX512DQ-NEXT:    addq $2184, %rsp # imm = 0x888
9311 ; AVX512DQ-NEXT:    vzeroupper
9312 ; AVX512DQ-NEXT:    retq
9314 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf32:
9315 ; AVX512DQ-FCP:       # %bb.0:
9316 ; AVX512DQ-FCP-NEXT:    subq $2088, %rsp # imm = 0x828
9317 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9318 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm8
9319 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm9
9320 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm26
9321 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm24
9322 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
9323 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm11
9324 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
9325 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm28
9326 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
9327 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
9328 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm5
9329 ; AVX512DQ-FCP-NEXT:    movb $96, %r10b
9330 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k1
9331 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
9332 ; AVX512DQ-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9333 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9334 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
9335 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9336 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
9337 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm0, %zmm1
9338 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
9339 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
9340 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
9341 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm1
9342 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9343 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
9344 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [11,3,11,3,11,3,11,3]
9345 ; AVX512DQ-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9346 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
9347 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm0
9348 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [2,10,0,3,2,10,0,3]
9349 ; AVX512DQ-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9350 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
9351 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm2, %zmm1
9352 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm18
9353 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9354 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
9355 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm1
9356 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r9), %ymm0
9357 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
9358 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm7
9359 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %ymm16
9360 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r8), %ymm15
9361 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm7[0],ymm1[0],ymm7[2],ymm1[2]
9362 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm7, %ymm17
9363 ; AVX512DQ-FCP-NEXT:    movb $28, %r10b
9364 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k2
9365 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
9366 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm2[2,3,2,3],zmm5[2,3,2,3]
9367 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9368 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
9369 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm17
9370 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm17, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9371 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
9372 ; AVX512DQ-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9373 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
9374 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
9375 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm2
9376 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,1,12,7,0,1,12,7]
9377 ; AVX512DQ-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
9378 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm2
9379 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9380 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
9381 ; AVX512DQ-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
9382 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm20
9383 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
9384 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9385 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm20
9386 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,13,6,7,0,13,6,7]
9387 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
9388 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm20
9389 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9390 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm3
9391 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [6,13,14,7,6,13,14,7]
9392 ; AVX512DQ-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9393 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
9394 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9395 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm0[0],ymm16[2],ymm0[2]
9396 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm0, %ymm5, %ymm16
9397 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm16, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9398 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
9399 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm15
9400 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9401 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
9402 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm4
9403 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm5
9404 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9405 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm18, %zmm5
9406 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
9407 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm7
9408 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm3[2,3,2,3],zmm7[2,3,2,3]
9409 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9410 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm3
9411 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm5
9412 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9413 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
9414 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9415 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
9416 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9417 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm4
9418 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9419 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
9420 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm4
9421 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm4
9422 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9423 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
9424 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm4
9425 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm4
9426 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9427 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9428 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm3
9429 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
9430 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9431 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
9432 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm20
9433 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
9434 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm31, %zmm3
9435 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm29
9436 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm23
9437 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4
9438 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm18, %zmm4
9439 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k1}
9440 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
9441 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm0[2,3,2,3],zmm30[2,3,2,3]
9442 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9443 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
9444 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r9), %zmm3
9445 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
9446 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm10
9447 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9448 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm17
9449 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm17
9450 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9451 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
9452 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm12, %zmm1
9453 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9454 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm30, %zmm13, %zmm1
9455 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9456 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9457 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
9458 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
9459 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm10
9460 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm1
9461 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [3,0,12,4,3,0,12,4]
9462 ; AVX512DQ-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
9463 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
9464 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm4
9465 ; AVX512DQ-FCP-NEXT:    movb $48, %r10b
9466 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k3
9467 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm18
9468 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm7
9469 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm4 {%k3} = zmm18[0],zmm7[0],zmm18[2],zmm7[2],zmm18[4],zmm7[4],zmm18[6],zmm7[6]
9470 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,8,0,1,0,8,0,1]
9471 ; AVX512DQ-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
9472 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
9473 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
9474 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9475 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
9476 ; AVX512DQ-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
9477 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm0
9478 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm8, %zmm15, %zmm0
9479 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9480 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm0
9481 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm16, %zmm0
9482 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9483 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
9484 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm15, %zmm0
9485 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9486 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
9487 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm16, %zmm0
9488 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9489 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
9490 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm15, %zmm0
9491 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9492 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm7, %zmm18, %zmm16
9493 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm18, %zmm7, %zmm15
9494 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm17
9495 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm6
9496 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
9497 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm31, %zmm18
9498 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
9499 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9500 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
9501 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
9502 ; AVX512DQ-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9503 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm6
9504 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm19, %zmm21
9505 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm3
9506 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm31
9507 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
9508 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm31
9509 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm13, %zmm11
9510 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm22
9511 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm22
9512 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
9513 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9514 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm8[0],zmm26[0],zmm8[2],zmm26[2],zmm8[4],zmm26[4],zmm8[6],zmm26[6]
9515 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
9516 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm13, %zmm3
9517 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm12
9518 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm0, %zmm12
9519 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm19, %zmm8
9520 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9521 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
9522 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm2
9523 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm25, %zmm26
9524 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm7
9525 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm13, %zmm7
9526 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm0, %zmm14
9527 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm19, %zmm2
9528 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9529 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k3} = zmm9[0],zmm24[0],zmm9[2],zmm24[2],zmm9[4],zmm24[4],zmm9[6],zmm24[6]
9530 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2
9531 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm13, %zmm2
9532 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm5
9533 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm0, %zmm5
9534 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm24, %zmm19, %zmm9
9535 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9536 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm29, %zmm23, %zmm25
9537 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
9538 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm28
9539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24
9540 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm24
9541 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm29
9542 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm23
9543 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm23
9544 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
9545 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
9546 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm27[0],zmm20[0],zmm27[2],zmm20[2],zmm27[4],zmm20[4],zmm27[6],zmm20[6]
9547 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm13
9548 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm0
9549 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm20, %zmm19, %zmm27
9550 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9
9551 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm9
9552 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9553 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm10
9554 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm17[0,1,2,3],zmm23[4,5,6,7]
9555 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm1
9556 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,11,0,0,4,5,6,7]
9557 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm17
9558 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %zmm4
9559 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [0,1,11,0,4,5,6,7]
9560 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm17, %zmm20
9561 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6 {%k1}
9562 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
9563 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm6, %zmm8
9564 ; AVX512DQ-FCP-NEXT:    movb $24, %sil
9565 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9566 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm21 {%k3}
9567 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,15,0,0]
9568 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm21, %zmm6
9569 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9570 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9571 ; AVX512DQ-FCP-NEXT:    movb $14, %sil
9572 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9573 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm31 {%k4}
9574 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k1}
9575 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9576 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9577 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm26 {%k4}
9578 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
9579 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
9580 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm25 {%k4}
9581 ; AVX512DQ-FCP-NEXT:    movb $120, %sil
9582 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9583 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
9584 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k4}
9585 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm12[0,1,2,3],zmm22[4,5,6,7]
9586 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
9587 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
9588 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm7 {%k4}
9589 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm13 {%k1}
9590 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
9591 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k4}
9592 ; AVX512DQ-FCP-NEXT:    movb $-61, %sil
9593 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9594 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9595 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k4}
9596 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm5[0,1,2,3],zmm14[4,5,6,7]
9597 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9598 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k4}
9599 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm24[4,5,6,7]
9600 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9601 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k4}
9602 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm2
9603 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
9604 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
9605 ; AVX512DQ-FCP-NEXT:    movb $12, %sil
9606 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9607 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
9608 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm12 {%k4}
9609 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
9610 ; AVX512DQ-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9611 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9612 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9613 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
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), %zmm14 # 64-byte Reload
9617 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9618 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
9619 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm27 {%k3}
9620 ; AVX512DQ-FCP-NEXT:    movb $-31, %sil
9621 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9622 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9623 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
9624 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9625 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
9626 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm29
9627 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, %zmm27 {%k3}
9628 ; AVX512DQ-FCP-NEXT:    movb $112, %sil
9629 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9630 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm3, %zmm12 {%k3}
9631 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
9632 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9633 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9634 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
9635 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k4}
9636 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
9637 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9638 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9639 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
9640 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k4}
9641 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
9642 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
9643 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
9644 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm16 {%k4}
9645 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
9646 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
9647 ; AVX512DQ-FCP-NEXT:    movb $6, %sil
9648 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
9649 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
9650 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm5 {%k4}
9651 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9652 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9653 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm3, %zmm14 {%k3}
9654 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm17
9655 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9656 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
9657 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm3, %zmm19 {%k3}
9658 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm22
9659 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm1, %zmm2
9660 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm2, %zmm16 {%k3}
9661 ; AVX512DQ-FCP-NEXT:    movb $56, %sil
9662 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k3
9663 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9664 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k3}
9665 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
9666 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm2
9667 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9668 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9669 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
9670 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9671 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
9672 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm19
9673 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm2
9674 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9675 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9676 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
9677 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9678 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
9679 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
9680 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm2
9681 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
9682 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm15 {%k4}
9683 ; AVX512DQ-FCP-NEXT:    movb $64, %cl
9684 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k4
9685 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k4}
9686 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
9687 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm2, %zmm1
9688 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rax), %zmm2
9689 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
9690 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm3, %zmm1
9691 ; AVX512DQ-FCP-NEXT:    movb $8, %al
9692 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k4
9693 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k4}
9694 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15 {%k3}
9695 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm10 {%k1}
9696 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%r8), %ymm1
9697 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
9698 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
9699 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,12,0,3,4,5,6,7]
9700 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm8, %zmm1
9701 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [13,0,2,3,4,5,6,14]
9702 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm23, %zmm3
9703 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,5,15,0]
9704 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm4, %zmm6, %zmm5
9705 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,12,3,4,5,6,7]
9706 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm4
9707 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
9708 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
9709 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
9710 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
9711 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9712 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
9713 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 1408(%rax)
9714 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 1344(%rax)
9715 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
9716 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 1216(%rax)
9717 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 1152(%rax)
9718 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 1088(%rax)
9719 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9720 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1024(%rax)
9721 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 960(%rax)
9722 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 896(%rax)
9723 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
9724 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 768(%rax)
9725 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 704(%rax)
9726 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 640(%rax)
9727 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9728 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
9729 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
9730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 448(%rax)
9731 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)
9732 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 320(%rax)
9733 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
9734 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 192(%rax)
9735 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
9736 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
9737 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)
9738 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
9739 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1728(%rax)
9740 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 1664(%rax)
9741 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 1600(%rax)
9742 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 1536(%rax)
9743 ; AVX512DQ-FCP-NEXT:    addq $2088, %rsp # imm = 0x828
9744 ; AVX512DQ-FCP-NEXT:    vzeroupper
9745 ; AVX512DQ-FCP-NEXT:    retq
9747 ; AVX512BW-LABEL: store_i64_stride7_vf32:
9748 ; AVX512BW:       # %bb.0:
9749 ; AVX512BW-NEXT:    subq $2184, %rsp # imm = 0x888
9750 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
9751 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm17
9752 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm14
9753 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm16
9754 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm23
9755 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm6
9756 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm7
9757 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm8
9758 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm29
9759 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm0
9760 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm3
9761 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm1
9762 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm5
9763 ; AVX512BW-NEXT:    movb $96, %r10b
9764 ; AVX512BW-NEXT:    kmovd %r10d, %k1
9765 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
9766 ; AVX512BW-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9767 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9768 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [9,1,9,1,9,1,9,1]
9769 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9770 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10
9771 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm2, %zmm10
9772 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11
9773 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [4,9,0,3,4,9,0,3]
9774 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
9775 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
9776 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm10
9777 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9778 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm12
9779 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm15 = [11,3,11,3,11,3,11,3]
9780 ; AVX512BW-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9781 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm1
9782 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm15, %zmm1
9783 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [2,10,0,3,2,10,0,3]
9784 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9785 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm4
9786 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm10, %zmm4
9787 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm22
9788 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
9789 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm10
9790 ; AVX512BW-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
9791 ; AVX512BW-NEXT:    vmovdqa 64(%r9), %ymm13
9792 ; AVX512BW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9793 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm1
9794 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9795 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %ymm18
9796 ; AVX512BW-NEXT:    vmovdqu64 %ymm18, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9797 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm10[0],ymm1[2],ymm10[2]
9798 ; AVX512BW-NEXT:    movb $28, %r10b
9799 ; AVX512BW-NEXT:    kmovd %r10d, %k2
9800 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
9801 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9802 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
9803 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
9804 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9805 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm10, %zmm1
9806 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,1,12,7,0,1,12,7]
9807 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
9808 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
9809 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9810 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm1
9811 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
9812 ; AVX512BW-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
9813 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm21
9814 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9815 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm21
9816 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
9817 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9818 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm21
9819 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9820 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
9821 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
9822 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
9823 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm1
9824 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9825 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm0
9826 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm15, %zmm0
9827 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm1
9828 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm21
9829 ; AVX512BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9830 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm22, %zmm1
9831 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
9832 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm18[0],ymm13[0],ymm18[2],ymm13[2]
9833 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
9834 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9835 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm0
9836 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm13
9837 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9838 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm11, %zmm1
9839 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9840 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9841 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm12, %zmm1
9842 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9843 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
9844 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
9845 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm4, %zmm1
9846 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9847 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1
9848 ; AVX512BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9849 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
9850 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm1
9851 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9852 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9853 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm19, %zmm0
9854 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
9855 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9856 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm18
9857 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm22
9858 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm1
9859 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm15, %zmm1
9860 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm0
9861 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm28
9862 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5
9863 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm21, %zmm5
9864 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
9865 ; AVX512BW-NEXT:    vmovdqa64 128(%rax), %zmm30
9866 ; AVX512BW-NEXT:    vmovdqa 128(%r9), %ymm13
9867 ; AVX512BW-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9868 ; AVX512BW-NEXT:    vmovdqa 128(%r8), %ymm1
9869 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
9870 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm13[0],ymm1[2],ymm13[2]
9871 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm30[2,3,2,3]
9872 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9873 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm5
9874 ; AVX512BW-NEXT:    vmovdqa64 128(%r9), %zmm1
9875 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm5, %zmm10
9876 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm4, %zmm10
9877 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9878 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm4
9879 ; AVX512BW-NEXT:    vpermi2q %zmm5, %zmm1, %zmm20
9880 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm2, %zmm20
9881 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9882 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
9883 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm11, %zmm1
9884 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9885 ; AVX512BW-NEXT:    vpermt2q %zmm30, %zmm12, %zmm1
9886 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9887 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9888 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm19, %zmm5
9889 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm3, %zmm30
9890 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm3 = [13,5,13,5,13,5,13,5]
9891 ; AVX512BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9892 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9893 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm3, %zmm1
9894 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9895 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm12 = [6,14,6,14,6,14,6,14]
9896 ; AVX512BW-NEXT:    # zmm12 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
9897 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9898 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm12, %zmm1
9899 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9900 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm1
9901 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm19, %zmm1
9902 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9903 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
9904 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
9905 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
9906 ; AVX512BW-NEXT:    vpermt2q %zmm7, %zmm2, %zmm8
9907 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm31
9908 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9909 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm3, %zmm4
9910 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9911 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9912 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm12, %zmm4
9913 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9914 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4
9915 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm19, %zmm4
9916 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9917 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm2, %zmm29
9918 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9919 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm3, %zmm4
9920 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9921 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9922 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm12, %zmm4
9923 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9924 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4
9925 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm19, %zmm4
9926 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9927 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm28
9928 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm10
9929 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
9930 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24
9931 ; AVX512BW-NEXT:    vpermt2q %zmm10, %zmm2, %zmm24
9932 ; AVX512BW-NEXT:    movb $48, %r10b
9933 ; AVX512BW-NEXT:    kmovd %r10d, %k3
9934 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm7
9935 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm2
9936 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm7[0],zmm2[0],zmm7[2],zmm2[2],zmm7[4],zmm2[4],zmm7[6],zmm2[6]
9937 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
9938 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
9939 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm26
9940 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
9941 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
9942 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
9943 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm27
9944 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm13, %zmm27
9945 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm4
9946 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm21
9947 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm11, %zmm21
9948 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm23
9949 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm23
9950 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm8
9951 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm19
9952 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm11, %zmm19
9953 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm20
9954 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm13, %zmm20
9955 ; AVX512BW-NEXT:    vpermi2q %zmm2, %zmm7, %zmm13
9956 ; AVX512BW-NEXT:    vpermi2q %zmm7, %zmm2, %zmm11
9957 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm25
9958 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm5
9959 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6
9960 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm7
9961 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm12, %zmm25
9962 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm3, %zmm5
9963 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm6
9964 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm2
9965 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm17[0],zmm16[0],zmm17[2],zmm16[2],zmm17[4],zmm16[4],zmm17[6],zmm16[6]
9966 ; AVX512BW-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
9967 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm4
9968 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm16
9969 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm15
9970 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm3, %zmm4
9971 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm12, %zmm16
9972 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm15
9973 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k3} = zmm14[0],zmm8[0],zmm14[2],zmm8[2],zmm14[4],zmm8[4],zmm14[6],zmm8[6]
9974 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm2
9975 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm17
9976 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
9977 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm12, %zmm17
9978 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm14
9979 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm8
9980 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm8
9981 ; AVX512BW-NEXT:    vpermi2q %zmm22, %zmm18, %zmm3
9982 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm9
9983 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm9
9984 ; AVX512BW-NEXT:    vpermi2q %zmm22, %zmm18, %zmm12
9985 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k3} = zmm18[0],zmm22[0],zmm18[2],zmm22[2],zmm18[4],zmm22[4],zmm18[6],zmm22[6]
9986 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm1, %zmm18
9987 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, %zmm22
9988 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm22
9989 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
9990 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
9991 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm31 = zmm25[0,1,2,3],zmm9[4,5,6,7]
9992 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm0
9993 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
9994 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm24, %zmm9
9995 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
9996 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm25 = [12,0,0,3,4,5,6,13]
9997 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm25
9998 ; AVX512BW-NEXT:    movb $24, %sil
9999 ; AVX512BW-NEXT:    kmovd %esi, %k3
10000 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm6 {%k3}
10001 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,15,0,0]
10002 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm5
10003 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm6
10004 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm6 = xmm6[0],mem[0]
10005 ; AVX512BW-NEXT:    vinserti128 $1, %xmm6, %ymm0, %ymm6
10006 ; AVX512BW-NEXT:    movb $12, %sil
10007 ; AVX512BW-NEXT:    kmovd %esi, %k4
10008 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm27 {%k4}
10009 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [0,8,0,8,0,8,0,8]
10010 ; AVX512BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10011 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
10012 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm22 # 64-byte Folded Reload
10013 ; AVX512BW-NEXT:    vmovdqa 64(%rdx), %xmm8
10014 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10015 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10016 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm23 {%k4}
10017 ; AVX512BW-NEXT:    vmovdqa 128(%rdx), %xmm8
10018 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10019 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10020 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm20 {%k4}
10021 ; AVX512BW-NEXT:    vmovdqa 192(%rdx), %xmm8
10022 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm8 = xmm8[0],mem[0]
10023 ; AVX512BW-NEXT:    vinserti128 $1, %xmm8, %ymm0, %ymm8
10024 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm13 {%k4}
10025 ; AVX512BW-NEXT:    vinserti32x4 $3, (%rax), %zmm22, %zmm8
10026 ; AVX512BW-NEXT:    movb $112, %sil
10027 ; AVX512BW-NEXT:    kmovd %esi, %k4
10028 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm27 {%k4}
10029 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10030 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
10031 ; AVX512BW-NEXT:    vinserti32x4 $3, 64(%rax), %zmm1, %zmm8
10032 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm23 {%k4}
10033 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10034 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm6, %zmm1 # 64-byte Folded Reload
10035 ; AVX512BW-NEXT:    vinserti32x4 $3, 128(%rax), %zmm1, %zmm1
10036 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm20 {%k4}
10037 ; AVX512BW-NEXT:    vmovdqa64 192(%r9), %zmm1
10038 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
10039 ; AVX512BW-NEXT:    vinserti32x4 $3, 192(%rax), %zmm6, %zmm6
10040 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm13 {%k4}
10041 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10042 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm4 {%k1}
10043 ; AVX512BW-NEXT:    movb $120, %sil
10044 ; AVX512BW-NEXT:    kmovd %esi, %k4
10045 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
10046 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm24 {%k4}
10047 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm16, %zmm22 # 64-byte Folded Reload
10048 ; AVX512BW-NEXT:    # zmm22 = zmm16[0,1,2,3],mem[4,5,6,7]
10049 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10050 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm2 {%k1}
10051 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
10052 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k4}
10053 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10054 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k1}
10055 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10056 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k4}
10057 ; AVX512BW-NEXT:    movb $-61, %sil
10058 ; AVX512BW-NEXT:    kmovd %esi, %k4
10059 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10060 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm22 {%k4}
10061 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm17, %zmm2 # 64-byte Folded Reload
10062 ; AVX512BW-NEXT:    # zmm2 = zmm17[0,1,2,3],mem[4,5,6,7]
10063 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10064 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k4}
10065 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm3 # 64-byte Folded Reload
10066 ; AVX512BW-NEXT:    # zmm3 = zmm12[0,1,2,3],mem[4,5,6,7]
10067 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10068 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3 {%k4}
10069 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm6
10070 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10071 ; AVX512BW-NEXT:    movb $6, %sil
10072 ; AVX512BW-NEXT:    kmovd %esi, %k4
10073 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm26 {%k4}
10074 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10075 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
10076 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10077 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
10078 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10079 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm18 {%k3}
10080 ; AVX512BW-NEXT:    movb $-31, %sil
10081 ; AVX512BW-NEXT:    kmovd %esi, %k3
10082 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10083 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm15 {%k3}
10084 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10085 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm14 {%k3}
10086 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, %zmm18 {%k3}
10087 ; AVX512BW-NEXT:    movb $56, %sil
10088 ; AVX512BW-NEXT:    kmovd %esi, %k3
10089 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10090 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm26 {%k3}
10091 ; AVX512BW-NEXT:    vpbroadcastq 72(%rcx), %ymm6
10092 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10093 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm21 {%k4}
10094 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10095 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm21 {%k3}
10096 ; AVX512BW-NEXT:    vpbroadcastq 136(%rcx), %ymm6
10097 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10098 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k4}
10099 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10100 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm19 {%k3}
10101 ; AVX512BW-NEXT:    vpbroadcastq 200(%rcx), %ymm6
10102 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm6 = mem[0,1,2,3],ymm6[4,5,6,7]
10103 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm11 {%k4}
10104 ; AVX512BW-NEXT:    movb $64, %cl
10105 ; AVX512BW-NEXT:    kmovd %ecx, %k4
10106 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k4}
10107 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10108 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm6, %zmm0
10109 ; AVX512BW-NEXT:    vmovdqa64 192(%rax), %zmm6
10110 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
10111 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm0
10112 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k3}
10113 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,11,0,4,5,6,7]
10114 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm9, %zmm0
10115 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm10 {%k1}
10116 ; AVX512BW-NEXT:    vmovdqa 192(%r8), %ymm7
10117 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm7[0],mem[0],ymm7[2],mem[2]
10118 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm7[2,3,2,3],zmm6[2,3,2,3]
10119 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10120 ; AVX512BW-NEXT:    vpunpckhqdq (%rsp), %ymm7, %ymm7 # 32-byte Folded Reload
10121 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10122 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10123 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10124 ; AVX512BW-NEXT:    movb $14, %cl
10125 ; AVX512BW-NEXT:    kmovd %ecx, %k1
10126 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
10127 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm12 {%k1}
10128 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10129 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
10130 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10131 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10132 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10133 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm29 {%k1}
10134 ; AVX512BW-NEXT:    movb $8, %cl
10135 ; AVX512BW-NEXT:    kmovd %ecx, %k2
10136 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k2}
10137 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm7 # 32-byte Reload
10138 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm7, %ymm7 # 32-byte Folded Reload
10139 ; AVX512BW-NEXT:    # ymm7 = ymm7[1],mem[1],ymm7[3],mem[3]
10140 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm7 = ymm7[0,2,3,3]
10141 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm7 = ymm7[0,1,2,3,4,5],mem[6,7]
10142 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm7, %zmm0, %zmm28 {%k1}
10143 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
10144 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm25, %zmm7
10145 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
10146 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm31, %zmm8
10147 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
10148 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm5, %zmm9
10149 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
10150 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm7, %zmm1
10151 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,13,2,3,4,5,6,7]
10152 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm8, %zmm5
10153 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [14,1,2,3,4,5,6,15]
10154 ; AVX512BW-NEXT:    vpermi2q %zmm6, %zmm9, %zmm7
10155 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10156 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
10157 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
10158 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 1280(%rax)
10159 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1216(%rax)
10160 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 1152(%rax)
10161 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10162 ; AVX512BW-NEXT:    vmovaps %zmm3, 1024(%rax)
10163 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 960(%rax)
10164 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 832(%rax)
10165 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 768(%rax)
10166 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 704(%rax)
10167 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10168 ; AVX512BW-NEXT:    vmovaps %zmm2, 576(%rax)
10169 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 512(%rax)
10170 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 384(%rax)
10171 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 320(%rax)
10172 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 256(%rax)
10173 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10174 ; AVX512BW-NEXT:    vmovaps %zmm2, 128(%rax)
10175 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 64(%rax)
10176 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
10177 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 1088(%rax)
10178 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 896(%rax)
10179 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 640(%rax)
10180 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 448(%rax)
10181 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 192(%rax)
10182 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, (%rax)
10183 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 1728(%rax)
10184 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 1664(%rax)
10185 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 1600(%rax)
10186 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 1536(%rax)
10187 ; AVX512BW-NEXT:    addq $2184, %rsp # imm = 0x888
10188 ; AVX512BW-NEXT:    vzeroupper
10189 ; AVX512BW-NEXT:    retq
10191 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf32:
10192 ; AVX512BW-FCP:       # %bb.0:
10193 ; AVX512BW-FCP-NEXT:    subq $2152, %rsp # imm = 0x868
10194 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10195 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm16
10196 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm17
10197 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm29
10198 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm28
10199 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm19
10200 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm23
10201 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
10202 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm30
10203 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm0
10204 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm7
10205 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
10206 ; AVX512BW-FCP-NEXT:    movb $96, %r10b
10207 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k1
10208 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm21 = [15,7,15,7,15,7,15,7]
10209 ; AVX512BW-FCP-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10210 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10211 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [9,1,9,1,9,1,9,1]
10212 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10213 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10214 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm2, %zmm4
10215 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm8
10216 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,9,0,3,4,9,0,3]
10217 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
10218 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm4
10219 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10220 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm9
10221 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
10222 ; AVX512BW-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10223 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
10224 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm25, %zmm1
10225 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
10226 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
10227 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
10228 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm2
10229 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm15
10230 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
10231 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
10232 ; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %ymm1
10233 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm6
10234 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
10235 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm10
10236 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm12
10237 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm11
10238 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm10[0],ymm1[0],ymm10[2],ymm1[2]
10239 ; AVX512BW-FCP-NEXT:    movb $28, %r10b
10240 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k2
10241 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
10242 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10243 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
10244 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm10
10245 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm10, (%rsp) # 32-byte Spill
10246 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,12,0,5,4,12,0,5]
10247 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10248 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
10249 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm2
10250 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
10251 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
10252 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10253 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm2
10254 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10255 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
10256 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10257 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm14
10258 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
10259 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10260 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm14
10261 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
10262 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
10263 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm7
10264 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm14
10265 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10266 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm0
10267 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
10268 ; AVX512BW-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10269 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm7
10270 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10271 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm12[0],ymm6[0],ymm12[2],ymm6[2]
10272 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm6, %ymm5, %ymm12
10273 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10274 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm11[0],ymm4[0],ymm11[2],ymm4[2]
10275 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm11
10276 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10277 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm4
10278 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm25, %zmm4
10279 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm6
10280 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm5
10281 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10282 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm15, %zmm6
10283 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm6 {%k1}
10284 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm11
10285 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm6 {%k2} = zmm0[2,3,2,3],zmm11[2,3,2,3]
10286 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10287 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm0
10288 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm6
10289 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10290 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10291 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10292 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm8, %zmm4
10293 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10294 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm9, %zmm4
10295 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10296 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4
10297 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm4
10298 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm4
10299 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10300 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
10301 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm4
10302 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm2, %zmm4
10303 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10304 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10305 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm21, %zmm0
10306 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
10307 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10308 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
10309 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm18
10310 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
10311 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm25, %zmm0
10312 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm31
10313 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm15
10314 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm4
10315 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm4
10316 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
10317 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm5
10318 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm7[2,3,2,3],zmm5[2,3,2,3]
10319 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10320 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
10321 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm4
10322 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm4, %zmm0, %zmm10
10323 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm10
10324 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10325 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm4, %zmm13
10326 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm2, %zmm13
10327 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10328 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
10329 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm1
10330 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10331 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm9, %zmm1
10332 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10333 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10334 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm21, %zmm0
10335 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10336 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10337 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm7
10338 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
10339 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [3,0,12,4,3,0,12,4]
10340 ; AVX512BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10341 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24
10342 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm24
10343 ; AVX512BW-FCP-NEXT:    movb $48, %r10b
10344 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k3
10345 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm12
10346 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm3
10347 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm24 {%k3} = zmm12[0],zmm3[0],zmm12[2],zmm3[2],zmm12[4],zmm3[4],zmm12[6],zmm3[6]
10348 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [0,8,0,1,0,8,0,1]
10349 ; AVX512BW-FCP-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
10350 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm1
10351 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm14, %zmm1
10352 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10353 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm1
10354 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm14, %zmm1
10355 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10356 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm1
10357 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm14, %zmm1
10358 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10359 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm12, %zmm14
10360 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm11 = [1,0,10,2,1,0,10,2]
10361 ; AVX512BW-FCP-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3]
10362 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
10363 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
10364 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10365 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
10366 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm11, %zmm26
10367 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm20
10368 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm27, %zmm11, %zmm20
10369 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm11
10370 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm8
10371 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
10372 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm9
10373 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm25, %zmm12
10374 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm4 = [6,14,6,14,6,14,6,14]
10375 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10376 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm8
10377 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
10378 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10379 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm10
10380 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm21, %zmm9
10381 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm25
10382 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm2
10383 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm25
10384 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm1, %zmm23
10385 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
10386 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm4, %zmm3
10387 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10388 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm22, %zmm21, %zmm2
10389 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10390 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm16[0],zmm29[0],zmm16[2],zmm29[2],zmm16[4],zmm29[4],zmm16[6],zmm29[6]
10391 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm6
10392 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm6
10393 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm22
10394 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm22
10395 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm21, %zmm16
10396 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10397 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm16
10398 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
10399 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm13, %zmm16
10400 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm19
10401 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm29
10402 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm4, %zmm29
10403 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm21, %zmm2
10404 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10405 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm30
10406 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm16 {%k3} = zmm17[0],zmm28[0],zmm17[2],zmm28[2],zmm17[4],zmm28[4],zmm17[6],zmm28[6]
10407 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
10408 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
10409 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm17
10410 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm21, %zmm30
10411 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
10412 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm31, %zmm15, %zmm13
10413 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm31
10414 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm28
10415 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm28
10416 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm21, %zmm2
10417 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10418 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm15
10419 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm15
10420 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm5
10421 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm5
10422 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k3} = zmm27[0],zmm18[0],zmm27[2],zmm18[2],zmm27[4],zmm18[4],zmm27[6],zmm18[6]
10423 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm1
10424 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm27, %zmm4
10425 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm21, %zmm27
10426 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm18
10427 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm21, %zmm18
10428 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10429 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
10430 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm8[0,1,2,3],zmm15[4,5,6,7]
10431 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10432 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm2
10433 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,11,0,0,4,5,6,7]
10434 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm24, %zmm0
10435 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm8
10436 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm15 = [0,1,11,0,4,5,6,7]
10437 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm0, %zmm15
10438 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k1}
10439 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [12,0,0,3,4,5,6,13]
10440 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm10, %zmm0
10441 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10442 ; AVX512BW-FCP-NEXT:    movb $24, %sil
10443 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10444 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm9 {%k3}
10445 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm24 = [0,1,2,3,4,15,0,0]
10446 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm2, %zmm9, %zmm24
10447 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm0
10448 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
10449 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10450 ; AVX512BW-FCP-NEXT:    movb $12, %sil
10451 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10452 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm21 # 64-byte Reload
10453 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k4}
10454 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
10455 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10456 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10457 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
10458 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm5
10459 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10460 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10461 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10462 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm10 {%k4}
10463 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm5
10464 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10465 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10466 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10467 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm18 {%k4}
10468 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm5
10469 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm5 = xmm5[0],mem[0]
10470 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm5, %ymm0, %ymm5
10471 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm5, %zmm0, %zmm14 {%k4}
10472 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm9, %zmm5
10473 ; AVX512BW-FCP-NEXT:    movb $112, %sil
10474 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10475 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21 {%k4}
10476 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10477 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10478 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
10479 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm5, %zmm5
10480 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm10 {%k4}
10481 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10482 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10483 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
10484 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm5, %zmm5
10485 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm18 {%k4}
10486 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
10487 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm2, %zmm0
10488 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
10489 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k4}
10490 ; AVX512BW-FCP-NEXT:    vmovdqu (%rsp), %ymm0 # 32-byte Reload
10491 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10492 ; AVX512BW-FCP-NEXT:    movb $14, %sil
10493 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10494 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k4}
10495 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, %zmm6 {%k1}
10496 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10497 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10498 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm16 {%k4}
10499 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
10500 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
10501 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm13 {%k4}
10502 ; AVX512BW-FCP-NEXT:    movb $120, %sil
10503 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10504 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
10505 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm9 {%k4}
10506 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm22, %zmm5 # 64-byte Folded Reload
10507 ; AVX512BW-FCP-NEXT:    # zmm5 = zmm22[0,1,2,3],mem[4,5,6,7]
10508 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3 {%k1}
10509 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
10510 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
10511 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm1 {%k1}
10512 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
10513 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm18 {%k4}
10514 ; AVX512BW-FCP-NEXT:    movb $-61, %sil
10515 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10516 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10517 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k4}
10518 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm17[0,1,2,3],zmm29[4,5,6,7]
10519 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10520 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k4}
10521 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm4[0,1,2,3],zmm28[4,5,6,7]
10522 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10523 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
10524 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
10525 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10526 ; AVX512BW-FCP-NEXT:    movb $6, %sil
10527 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
10528 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10529 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
10530 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10531 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10532 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
10533 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10534 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
10535 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10536 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
10537 ; AVX512BW-FCP-NEXT:    movb $-31, %sil
10538 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10539 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10540 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k3}
10541 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm19
10542 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10543 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm30 {%k3}
10544 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10545 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k3}
10546 ; AVX512BW-FCP-NEXT:    movb $56, %sil
10547 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k3
10548 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10549 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
10550 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm17
10551 ; AVX512BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm3
10552 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10553 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm26 {%k4}
10554 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10555 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm26 {%k3}
10556 ; AVX512BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm3
10557 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10558 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k4}
10559 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10560 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm20 {%k3}
10561 ; AVX512BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm3
10562 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
10563 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm11 {%k4}
10564 ; AVX512BW-FCP-NEXT:    movb $64, %cl
10565 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k4
10566 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
10567 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k4}
10568 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10569 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm3, %zmm2
10570 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm3
10571 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10572 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm2
10573 ; AVX512BW-FCP-NEXT:    movb $8, %al
10574 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k4
10575 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k4}
10576 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm11 {%k3}
10577 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm7 {%k1}
10578 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm2
10579 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
10580 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm2[2,3,2,3],zmm3[2,3,2,3]
10581 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,12,0,3,4,5,6,7]
10582 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
10583 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm4, %zmm2
10584 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [13,0,2,3,4,5,6,14]
10585 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm6, %zmm4
10586 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,5,15,0]
10587 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm8, %zmm24, %zmm6
10588 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,12,3,4,5,6,7]
10589 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm8
10590 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,13,2,3,4,5,6,7]
10591 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm4, %zmm2
10592 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [14,1,2,3,4,5,6,15]
10593 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm6, %zmm4
10594 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10595 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 1472(%rax)
10596 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 1408(%rax)
10597 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
10598 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
10599 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, 1152(%rax)
10600 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
10601 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
10602 ; AVX512BW-FCP-NEXT:    vmovaps %zmm1, 1024(%rax)
10603 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 960(%rax)
10604 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 832(%rax)
10605 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 768(%rax)
10606 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 704(%rax)
10607 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 640(%rax)
10608 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10609 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
10610 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 512(%rax)
10611 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 384(%rax)
10612 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 320(%rax)
10613 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
10614 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 192(%rax)
10615 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10616 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
10617 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 64(%rax)
10618 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 1344(%rax)
10619 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 896(%rax)
10620 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10621 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
10622 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10623 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
10624 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 1728(%rax)
10625 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 1664(%rax)
10626 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 1600(%rax)
10627 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 1536(%rax)
10628 ; AVX512BW-FCP-NEXT:    addq $2152, %rsp # imm = 0x868
10629 ; AVX512BW-FCP-NEXT:    vzeroupper
10630 ; AVX512BW-FCP-NEXT:    retq
10632 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf32:
10633 ; AVX512DQ-BW:       # %bb.0:
10634 ; AVX512DQ-BW-NEXT:    subq $2184, %rsp # imm = 0x888
10635 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
10636 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm16
10637 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm9
10638 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm23
10639 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm10
10640 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm20
10641 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm18
10642 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm6
10643 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm7
10644 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm0
10645 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm3
10646 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm2
10647 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm4
10648 ; AVX512DQ-BW-NEXT:    movb $96, %r10b
10649 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k1
10650 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm17 = [15,7,15,7,15,7,15,7]
10651 ; AVX512DQ-BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10652 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10653 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [9,1,9,1,9,1,9,1]
10654 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10655 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10656 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm5
10657 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm12
10658 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [4,9,0,3,4,9,0,3]
10659 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10660 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
10661 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10662 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm13
10663 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [11,3,11,3,11,3,11,3]
10664 ; AVX512DQ-BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10665 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
10666 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm1
10667 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [2,10,0,3,2,10,0,3]
10668 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
10669 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm5
10670 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm5
10671 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm15
10672 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
10673 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm8
10674 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, (%rsp) # 32-byte Spill
10675 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r9), %ymm14
10676 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10677 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm1
10678 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10679 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r8), %ymm11
10680 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10681 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
10682 ; AVX512DQ-BW-NEXT:    movb $28, %r10b
10683 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k2
10684 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
10685 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10686 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [4,12,0,5,4,12,0,5]
10687 ; AVX512DQ-BW-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
10688 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10689 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
10690 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,1,12,7,0,1,12,7]
10691 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
10692 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm5
10693 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10694 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm5
10695 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm21 = [5,0,14,6,5,0,14,6]
10696 ; AVX512DQ-BW-NEXT:    # zmm21 = mem[0,1,2,3,0,1,2,3]
10697 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm19
10698 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10699 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm21, %zmm19
10700 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
10701 ; AVX512DQ-BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
10702 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm19
10703 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10704 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm17, %zmm0
10705 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [6,13,14,7,6,13,14,7]
10706 ; AVX512DQ-BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10707 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10708 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10709 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm0
10710 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm25, %zmm0
10711 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm5
10712 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm15, %zmm5
10713 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10714 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
10715 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm11[0],ymm14[0],ymm11[2],ymm14[2]
10716 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
10717 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10718 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm0
10719 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm11
10720 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5
10721 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm12, %zmm5
10722 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10723 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10724 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm13, %zmm5
10725 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10726 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm5
10727 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4
10728 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm8, %zmm4
10729 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm1, %zmm4
10730 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10731 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm4
10732 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10733 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm21, %zmm4
10734 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm4
10735 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10736 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10737 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm17, %zmm0
10738 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm5
10739 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10740 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm11
10741 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm19
10742 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm5
10743 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm25, %zmm5
10744 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm4
10745 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm31
10746 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
10747 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm15, %zmm0
10748 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm0 {%k1}
10749 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rax), %zmm15
10750 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r9), %ymm14
10751 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm14, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10752 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r8), %ymm5
10753 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
10754 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm5[0],ymm14[0],ymm5[2],ymm14[2]
10755 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm5[2,3,2,3],zmm15[2,3,2,3]
10756 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10757 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm5
10758 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r9), %zmm0
10759 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm8
10760 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm1, %zmm8
10761 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10762 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm5, %zmm0, %zmm21
10763 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm2, %zmm21
10764 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10765 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
10766 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm1
10767 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10768 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm13, %zmm1
10769 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10770 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10771 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm5
10772 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm3, %zmm15
10773 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10774 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [13,5,13,5,13,5,13,5]
10775 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10776 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10777 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm0
10778 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm2
10779 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10780 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [6,14,6,14,6,14,6,14]
10781 ; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10782 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10783 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
10784 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10785 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
10786 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
10787 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10788 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm15
10789 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [3,0,12,4,3,0,12,4]
10790 ; AVX512DQ-BW-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
10791 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm3, %zmm0
10792 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2
10793 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10794 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm0
10795 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10796 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10797 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm0
10798 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10799 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm0
10800 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
10801 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10802 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm3, %zmm7
10803 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm5
10804 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm29
10805 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm1, %zmm29
10806 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm30
10807 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm6, %zmm30
10808 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
10809 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm31, %zmm17, %zmm0
10810 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10811 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm3, %zmm31
10812 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm12
10813 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm21
10814 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm22
10815 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm3, %zmm22
10816 ; AVX512DQ-BW-NEXT:    movb $48, %r10b
10817 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k3
10818 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm8
10819 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm7
10820 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k3} = zmm8[0],zmm7[0],zmm8[2],zmm7[2],zmm8[4],zmm7[4],zmm8[6],zmm7[6]
10821 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm14 = [1,0,10,2,1,0,10,2]
10822 ; AVX512DQ-BW-NEXT:    # zmm14 = mem[0,1,2,3,0,1,2,3]
10823 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
10824 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm28
10825 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm14, %zmm28
10826 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [0,8,0,1,0,8,0,1]
10827 ; AVX512DQ-BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
10828 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm27
10829 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm13, %zmm27
10830 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm26
10831 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm14, %zmm26
10832 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm23
10833 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm13, %zmm23
10834 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm20
10835 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm14, %zmm20
10836 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm18
10837 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm13, %zmm18
10838 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm7, %zmm8, %zmm13
10839 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm8, %zmm7, %zmm14
10840 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm24
10841 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm3
10842 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm4
10843 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm25, %zmm8
10844 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm6, %zmm24
10845 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm1, %zmm3
10846 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm4
10847 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k3} = zmm16[0],zmm0[0],zmm16[2],zmm0[2],zmm16[4],zmm0[4],zmm16[6],zmm0[6]
10848 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10849 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm25
10850 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm2
10851 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm17
10852 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm25
10853 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
10854 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm15, %zmm17
10855 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm5 {%k3} = zmm9[0],zmm10[0],zmm9[2],zmm10[2],zmm9[4],zmm10[4],zmm9[6],zmm10[6]
10856 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
10857 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm0
10858 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm5
10859 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm16
10860 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm1, %zmm0
10861 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm6, %zmm5
10862 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm15, %zmm16
10863 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm9
10864 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm1, %zmm9
10865 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm11, %zmm1
10866 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm10
10867 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm6, %zmm10
10868 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm11, %zmm6
10869 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm11[0],zmm19[0],zmm11[2],zmm19[2],zmm11[4],zmm19[4],zmm11[6],zmm19[6]
10870 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm7
10871 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm15, %zmm7
10872 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm11
10873 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm15, %zmm11
10874 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10875 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm15, %zmm12
10876 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm24 = zmm24[0,1,2,3],zmm10[4,5,6,7]
10877 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm19
10878 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
10879 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm22, %zmm10
10880 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm3 {%k1}
10881 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm22 = [12,0,0,3,4,5,6,13]
10882 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm3, %zmm22
10883 ; AVX512DQ-BW-NEXT:    movb $24, %sil
10884 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10885 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm4 {%k3}
10886 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,2,3,4,15,0,0]
10887 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm19, %zmm4, %zmm21
10888 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
10889 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm25 {%k1}
10890 ; AVX512DQ-BW-NEXT:    movb $120, %sil
10891 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10892 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
10893 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm11 {%k4}
10894 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
10895 ; AVX512DQ-BW-NEXT:    # zmm3 = zmm2[0,1,2,3],mem[4,5,6,7]
10896 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10897 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k1}
10898 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
10899 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k4}
10900 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm1 {%k1}
10901 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
10902 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm25 {%k4}
10903 ; AVX512DQ-BW-NEXT:    movb $-61, %sil
10904 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10905 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10906 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k4}
10907 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm4 # 64-byte Folded Reload
10908 ; AVX512DQ-BW-NEXT:    # zmm4 = zmm5[0,1,2,3],mem[4,5,6,7]
10909 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10910 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k4}
10911 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 = zmm6[0,1,2,3],zmm30[4,5,6,7]
10912 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10913 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k4}
10914 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm0
10915 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
10916 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
10917 ; AVX512DQ-BW-NEXT:    movb $12, %sil
10918 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10919 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k4}
10920 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [0,8,0,8,0,8,0,8]
10921 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
10922 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10923 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10924 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10925 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
10926 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10927 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
10928 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10929 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
10930 ; AVX512DQ-BW-NEXT:    movb $-31, %sil
10931 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10932 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10933 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm17 {%k3}
10934 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10935 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm16 {%k3}
10936 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10937 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k3}
10938 ; AVX512DQ-BW-NEXT:    movb $112, %sil
10939 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10940 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%rax), %zmm2, %zmm27 {%k3}
10941 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%rdx), %xmm2
10942 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10943 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10944 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm23 {%k4}
10945 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%rdx), %xmm2
10946 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10947 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10948 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm18 {%k4}
10949 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%rdx), %xmm2
10950 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
10951 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
10952 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm13 {%k4}
10953 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm2
10954 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
10955 ; AVX512DQ-BW-NEXT:    movb $6, %sil
10956 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
10957 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm28 {%k4}
10958 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10959 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10960 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 64(%rax), %zmm2, %zmm23 {%k3}
10961 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
10962 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm2 # 64-byte Folded Reload
10963 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 128(%rax), %zmm2, %zmm18 {%k3}
10964 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r9), %zmm2
10965 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm19, %zmm0
10966 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm13 {%k3}
10967 ; AVX512DQ-BW-NEXT:    movb $56, %sil
10968 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k3
10969 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10970 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k3}
10971 ; AVX512DQ-BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
10972 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10973 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm26 {%k4}
10974 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10975 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
10976 ; AVX512DQ-BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
10977 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10978 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
10979 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10980 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm20 {%k3}
10981 ; AVX512DQ-BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
10982 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
10983 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k4}
10984 ; AVX512DQ-BW-NEXT:    movb $64, %cl
10985 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k4
10986 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm24 {%k4}
10987 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
10988 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm0, %zmm19
10989 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rax), %zmm0
10990 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
10991 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm19
10992 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm14 {%k3}
10993 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,11,0,4,5,6,7]
10994 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm10, %zmm5
10995 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm12 {%k1}
10996 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r8), %ymm6
10997 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
10998 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm12 {%k2} = zmm6[2,3,2,3],zmm0[2,3,2,3]
10999 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11000 ; AVX512DQ-BW-NEXT:    vpunpckhqdq (%rsp), %ymm6, %ymm6 # 32-byte Folded Reload
11001 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
11002 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
11003 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
11004 ; AVX512DQ-BW-NEXT:    movb $14, %cl
11005 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
11006 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
11007 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm10 {%k1}
11008 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11009 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
11010 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
11011 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
11012 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
11013 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11014 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm19 {%k1}
11015 ; AVX512DQ-BW-NEXT:    movb $8, %cl
11016 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
11017 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
11018 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm6 # 32-byte Reload
11019 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm6, %ymm6 # 32-byte Folded Reload
11020 ; AVX512DQ-BW-NEXT:    # ymm6 = ymm6[1],mem[1],ymm6[3],mem[3]
11021 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm6 = ymm6[0,2,3,3]
11022 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],mem[6,7]
11023 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm6, %zmm0, %zmm31 {%k1}
11024 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,12,0,3,4,5,6,7]
11025 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm22, %zmm6
11026 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [13,0,2,3,4,5,6,14]
11027 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm24, %zmm8
11028 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,1,2,3,4,5,15,0]
11029 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm21, %zmm9
11030 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,12,3,4,5,6,7]
11031 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm2
11032 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,13,2,3,4,5,6,7]
11033 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm6
11034 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
11035 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm8
11036 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11037 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 1472(%rax)
11038 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 1408(%rax)
11039 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 1344(%rax)
11040 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 1280(%rax)
11041 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 1216(%rax)
11042 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 1152(%rax)
11043 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 1088(%rax)
11044 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11045 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1024(%rax)
11046 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 960(%rax)
11047 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 896(%rax)
11048 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 832(%rax)
11049 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 768(%rax)
11050 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 704(%rax)
11051 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 640(%rax)
11052 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11053 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 576(%rax)
11054 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 512(%rax)
11055 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 448(%rax)
11056 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 384(%rax)
11057 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 320(%rax)
11058 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 256(%rax)
11059 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
11060 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11061 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%rax)
11062 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 64(%rax)
11063 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, (%rax)
11064 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, 1728(%rax)
11065 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 1664(%rax)
11066 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
11067 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 1536(%rax)
11068 ; AVX512DQ-BW-NEXT:    addq $2184, %rsp # imm = 0x888
11069 ; AVX512DQ-BW-NEXT:    vzeroupper
11070 ; AVX512DQ-BW-NEXT:    retq
11072 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf32:
11073 ; AVX512DQ-BW-FCP:       # %bb.0:
11074 ; AVX512DQ-BW-FCP-NEXT:    subq $2088, %rsp # imm = 0x828
11075 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm8
11077 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm9
11078 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm26
11079 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm24
11080 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
11081 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm11
11082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm22
11083 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm28
11084 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm3
11085 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm6
11086 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm5
11087 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %r10b
11088 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k1
11089 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm19 = [15,7,15,7,15,7,15,7]
11090 ; AVX512DQ-BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11091 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11092 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
11093 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1
11095 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm0, %zmm1
11096 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
11097 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
11098 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
11099 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm0, %zmm1
11100 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11101 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
11102 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm31 = [11,3,11,3,11,3,11,3]
11103 ; AVX512DQ-BW-FCP-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11104 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
11105 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm31, %zmm0
11106 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [2,10,0,3,2,10,0,3]
11107 ; AVX512DQ-BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
11108 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm1
11109 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm2, %zmm1
11110 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm18
11111 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
11112 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm10
11113 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %ymm1
11114 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm0
11115 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm4
11116 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm7
11117 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %ymm16
11118 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm15
11119 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm7[0],ymm1[0],ymm7[2],ymm1[2]
11120 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %ymm7, %ymm17
11121 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %r10b
11122 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k2
11123 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
11124 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm2[2,3,2,3],zmm5[2,3,2,3]
11125 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11126 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm5 = [1,3,7,7]
11127 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm1, %ymm5, %ymm17
11128 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm17, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11129 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [4,12,0,5,4,12,0,5]
11130 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
11131 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
11132 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm1
11133 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm2
11134 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [0,1,12,7,0,1,12,7]
11135 ; AVX512DQ-BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
11136 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm2
11137 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11138 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
11139 ; AVX512DQ-BW-FCP-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
11140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm20
11141 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
11142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11143 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm20
11144 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm1 = [0,13,6,7,0,13,6,7]
11145 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3]
11146 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm20
11147 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11148 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm3
11149 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [6,13,14,7,6,13,14,7]
11150 ; AVX512DQ-BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
11151 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
11152 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11153 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm3 = ymm16[0],ymm0[0],ymm16[2],ymm0[2]
11154 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm0, %ymm5, %ymm16
11155 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm16, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11156 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm15[0],ymm4[0],ymm15[2],ymm4[2]
11157 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm4, %ymm5, %ymm15
11158 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm15, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
11159 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
11160 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm31, %zmm4
11161 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm5
11162 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11163 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm18, %zmm5
11164 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm5 {%k1}
11165 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm7
11166 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm3[2,3,2,3],zmm7[2,3,2,3]
11167 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11168 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm3
11169 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm5
11170 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11171 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
11172 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11173 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
11174 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11175 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm4
11176 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11177 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4
11178 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm4
11179 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm4
11180 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11181 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4
11182 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm17, %zmm4
11183 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm1, %zmm4
11184 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11185 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11186 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm3
11187 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm7
11188 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm27
11190 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm20
11191 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
11192 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm31, %zmm3
11193 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm29
11194 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm23
11195 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm4
11196 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm18, %zmm4
11197 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k1}
11198 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm30
11199 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm0[2,3,2,3],zmm30[2,3,2,3]
11200 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11201 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm0
11202 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm3
11203 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
11204 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm10
11205 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11206 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm3, %zmm17
11207 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm1, %zmm17
11208 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11209 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1
11210 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm12, %zmm1
11211 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11212 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm30, %zmm13, %zmm1
11213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11214 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11215 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm0
11216 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm30
11217 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm10
11218 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm1
11219 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm25 = [3,0,12,4,3,0,12,4]
11220 ; AVX512DQ-BW-FCP-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3]
11221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
11222 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm25, %zmm4
11223 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %r10b
11224 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k3
11225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm18
11226 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm7
11227 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm4 {%k3} = zmm18[0],zmm7[0],zmm18[2],zmm7[2],zmm18[4],zmm7[4],zmm18[6],zmm7[6]
11228 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm16 = [0,8,0,1,0,8,0,1]
11229 ; AVX512DQ-BW-FCP-NEXT:    # zmm16 = mem[0,1,2,3,0,1,2,3]
11230 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
11231 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm16, %zmm0
11232 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11233 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [1,0,10,2,1,0,10,2]
11234 ; AVX512DQ-BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
11235 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm0
11236 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm8, %zmm15, %zmm0
11237 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11238 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm0
11239 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm16, %zmm0
11240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm0
11242 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm15, %zmm0
11243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11244 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm0
11245 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm16, %zmm0
11246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11247 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, %zmm0
11248 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm15, %zmm0
11249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11250 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm7, %zmm18, %zmm16
11251 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm18, %zmm7, %zmm15
11252 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm17
11253 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm6
11254 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm21
11255 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm31, %zmm18
11256 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [6,14,6,14,6,14,6,14]
11257 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11258 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm0, %zmm17
11259 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm13 = [13,5,13,5,13,5,13,5]
11260 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11261 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm13, %zmm6
11262 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm19, %zmm21
11263 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm3
11264 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm31
11265 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
11266 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm25, %zmm31
11267 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm13, %zmm11
11268 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm22
11269 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm22
11270 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
11271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11272 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm31 {%k3} = zmm8[0],zmm26[0],zmm8[2],zmm26[2],zmm8[4],zmm26[4],zmm8[6],zmm26[6]
11273 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm3
11274 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm13, %zmm3
11275 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm12
11276 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm0, %zmm12
11277 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm19, %zmm8
11278 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm26
11280 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm2
11281 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm25, %zmm26
11282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm7
11283 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm13, %zmm7
11284 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm0, %zmm14
11285 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm19, %zmm2
11286 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11287 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k3} = zmm9[0],zmm24[0],zmm9[2],zmm24[2],zmm9[4],zmm24[4],zmm9[6],zmm24[6]
11288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm2
11289 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm13, %zmm2
11290 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm5
11291 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm0, %zmm5
11292 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm24, %zmm19, %zmm9
11293 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
11294 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm29, %zmm23, %zmm25
11295 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
11296 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm13, %zmm28
11297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm24
11298 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm0, %zmm24
11299 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm23, %zmm19, %zmm29
11300 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm23
11301 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm0, %zmm23
11302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
11303 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm13, %zmm8
11304 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm25 {%k3} = zmm27[0],zmm20[0],zmm27[2],zmm20[2],zmm27[4],zmm20[4],zmm27[6],zmm20[6]
11305 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm13
11306 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm20, %zmm27, %zmm0
11307 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm20, %zmm19, %zmm27
11308 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm9
11309 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm9
11310 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11311 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm19, %zmm10
11312 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm23 = zmm17[0,1,2,3],zmm23[4,5,6,7]
11313 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm1
11314 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm17 = [0,11,0,0,4,5,6,7]
11315 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm4, %zmm17
11316 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm4
11317 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm20 = [0,1,11,0,4,5,6,7]
11318 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm17, %zmm20
11319 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm6 {%k1}
11320 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
11321 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm6, %zmm8
11322 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %sil
11323 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm21 {%k3}
11325 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [0,1,2,3,4,15,0,0]
11326 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm21, %zmm6
11327 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11328 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11329 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %sil
11330 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11331 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm31 {%k4}
11332 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3 {%k1}
11333 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11334 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11335 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm26 {%k4}
11336 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm9 # 32-byte Reload
11337 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm9 = ymm9[0,1,2,3,4,5],mem[6,7]
11338 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm9, %zmm0, %zmm25 {%k4}
11339 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %sil
11340 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11341 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
11342 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k4}
11343 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm21 = zmm12[0,1,2,3],zmm22[4,5,6,7]
11344 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2 {%k1}
11345 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
11346 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm7 {%k4}
11347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm13 {%k1}
11348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
11349 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm11 {%k4}
11350 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %sil
11351 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11352 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm21 {%k4}
11354 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm13 = zmm5[0,1,2,3],zmm14[4,5,6,7]
11355 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11356 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm13 {%k4}
11357 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 = zmm0[0,1,2,3],zmm24[4,5,6,7]
11358 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm0 {%k4}
11360 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm2
11361 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
11362 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
11363 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %sil
11364 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11365 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
11366 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm12 {%k4}
11367 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm2 = [0,8,0,8,0,8,0,8]
11368 ; AVX512DQ-BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
11369 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11370 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11371 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
11372 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11373 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
11374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11376 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
11377 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm27 {%k3}
11378 ; AVX512DQ-BW-FCP-NEXT:    movb $-31, %sil
11379 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11380 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11381 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm28 {%k3}
11382 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11383 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k3}
11384 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm29
11385 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm27 {%k3}
11386 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %sil
11387 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11388 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm3, %zmm12 {%k3}
11389 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
11390 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11391 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11392 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
11393 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k4}
11394 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
11395 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11396 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11397 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
11398 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k4}
11399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
11400 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
11401 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
11402 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm16 {%k4}
11403 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm3
11404 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = mem[0,1,2,3],ymm3[4,5,6,7]
11405 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %sil
11406 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
11407 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
11408 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm5 {%k4}
11409 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11410 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11411 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm3, %zmm14 {%k3}
11412 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm17
11413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11414 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm2, %zmm3 # 64-byte Folded Reload
11415 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm3, %zmm19 {%k3}
11416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm22
11417 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm1, %zmm2
11418 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm2, %zmm16 {%k3}
11419 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %sil
11420 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k3
11421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11422 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k3}
11423 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm14
11424 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm2
11425 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11426 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11427 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
11428 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11429 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11430 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm19
11431 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm2
11432 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11433 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11434 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm3 {%k4}
11435 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11436 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3 {%k3}
11437 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
11438 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm2
11439 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
11440 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm15 {%k4}
11441 ; AVX512DQ-BW-FCP-NEXT:    movb $64, %cl
11442 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k4
11443 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm23 {%k4}
11444 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
11445 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm2, %zmm1
11446 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm2
11447 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
11448 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm3, %zmm1
11449 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %al
11450 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k4
11451 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm20 {%k4}
11452 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm15 {%k3}
11453 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm10 {%k1}
11454 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm1
11455 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],mem[0],ymm1[2],mem[2]
11456 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm10 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
11457 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,12,0,3,4,5,6,7]
11458 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm8, %zmm1
11459 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [13,0,2,3,4,5,6,14]
11460 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm23, %zmm3
11461 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,1,2,3,4,5,15,0]
11462 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm4, %zmm6, %zmm5
11463 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,12,3,4,5,6,7]
11464 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm1, %zmm4
11465 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
11466 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm3, %zmm1
11467 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [14,1,2,3,4,5,6,15]
11468 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm2, %zmm5, %zmm3
11469 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 1472(%rax)
11471 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 1408(%rax)
11472 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 1344(%rax)
11473 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 1280(%rax)
11474 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 1216(%rax)
11475 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 1152(%rax)
11476 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 1088(%rax)
11477 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11478 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1024(%rax)
11479 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 960(%rax)
11480 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 896(%rax)
11481 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 832(%rax)
11482 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 768(%rax)
11483 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 704(%rax)
11484 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 640(%rax)
11485 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11486 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 576(%rax)
11487 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, 512(%rax)
11488 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 448(%rax)
11489 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 384(%rax)
11490 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 320(%rax)
11491 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 256(%rax)
11492 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 192(%rax)
11493 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
11494 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 128(%rax)
11495 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 64(%rax)
11496 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, (%rax)
11497 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1728(%rax)
11498 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 1664(%rax)
11499 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 1600(%rax)
11500 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 1536(%rax)
11501 ; AVX512DQ-BW-FCP-NEXT:    addq $2088, %rsp # imm = 0x828
11502 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
11503 ; AVX512DQ-BW-FCP-NEXT:    retq
11504   %in.vec0 = load <32 x i64>, ptr %in.vecptr0, align 64
11505   %in.vec1 = load <32 x i64>, ptr %in.vecptr1, align 64
11506   %in.vec2 = load <32 x i64>, ptr %in.vecptr2, align 64
11507   %in.vec3 = load <32 x i64>, ptr %in.vecptr3, align 64
11508   %in.vec4 = load <32 x i64>, ptr %in.vecptr4, align 64
11509   %in.vec5 = load <32 x i64>, ptr %in.vecptr5, align 64
11510   %in.vec6 = load <32 x i64>, ptr %in.vecptr6, align 64
11511   %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>
11512   %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>
11513   %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>
11514   %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>
11515   %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>
11516   %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>
11517   %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>
11518   %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>
11519   %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>
11520   store <224 x i64> %interleaved.vec, ptr %out.vec, align 64
11521   ret void
11524 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 {
11525 ; SSE-LABEL: store_i64_stride7_vf64:
11526 ; SSE:       # %bb.0:
11527 ; SSE-NEXT:    subq $3224, %rsp # imm = 0xC98
11528 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
11529 ; SSE-NEXT:    movapd (%rdi), %xmm2
11530 ; SSE-NEXT:    movapd 16(%rdi), %xmm3
11531 ; SSE-NEXT:    movapd 32(%rdi), %xmm4
11532 ; SSE-NEXT:    movapd (%rsi), %xmm5
11533 ; SSE-NEXT:    movapd 16(%rsi), %xmm6
11534 ; SSE-NEXT:    movapd (%rdx), %xmm7
11535 ; SSE-NEXT:    movapd 16(%rdx), %xmm8
11536 ; SSE-NEXT:    movapd (%rcx), %xmm9
11537 ; SSE-NEXT:    movapd 16(%rcx), %xmm10
11538 ; SSE-NEXT:    movapd 16(%r8), %xmm12
11539 ; SSE-NEXT:    movapd (%r8), %xmm11
11540 ; SSE-NEXT:    movapd 16(%r9), %xmm14
11541 ; SSE-NEXT:    movapd (%r9), %xmm13
11542 ; SSE-NEXT:    movapd 16(%rax), %xmm0
11543 ; SSE-NEXT:    movapd (%rax), %xmm1
11544 ; SSE-NEXT:    movapd %xmm2, %xmm15
11545 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm15 = xmm15[0],xmm5[0]
11546 ; SSE-NEXT:    movapd %xmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11547 ; SSE-NEXT:    movsd {{.*#+}} xmm2 = xmm1[0],xmm2[1]
11548 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11549 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm5 = xmm5[1],xmm7[1]
11550 ; SSE-NEXT:    movapd %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11551 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm9[0]
11552 ; SSE-NEXT:    movapd %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11553 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm9 = xmm9[1],xmm11[1]
11554 ; SSE-NEXT:    movapd %xmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11555 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm13[0]
11556 ; SSE-NEXT:    movapd %xmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11557 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm1[1]
11558 ; SSE-NEXT:    movapd %xmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11559 ; SSE-NEXT:    movapd %xmm3, %xmm1
11560 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm6[0]
11561 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11562 ; SSE-NEXT:    movsd {{.*#+}} xmm3 = xmm0[0],xmm3[1]
11563 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11564 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm8[1]
11565 ; SSE-NEXT:    movapd %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11566 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm8 = xmm8[0],xmm10[0]
11567 ; SSE-NEXT:    movapd %xmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11568 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm10 = xmm10[1],xmm12[1]
11569 ; SSE-NEXT:    movapd %xmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11570 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm12 = xmm12[0],xmm14[0]
11571 ; SSE-NEXT:    movapd %xmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11572 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm0[1]
11573 ; SSE-NEXT:    movapd %xmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11574 ; SSE-NEXT:    movapd 32(%rsi), %xmm1
11575 ; SSE-NEXT:    movapd %xmm4, %xmm0
11576 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm1[0]
11577 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11578 ; SSE-NEXT:    movapd 32(%rax), %xmm0
11579 ; SSE-NEXT:    movsd {{.*#+}} xmm4 = xmm0[0],xmm4[1]
11580 ; SSE-NEXT:    movapd %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11581 ; SSE-NEXT:    movapd 32(%rdx), %xmm2
11582 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
11583 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11584 ; SSE-NEXT:    movapd 32(%rcx), %xmm3
11585 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm2 = xmm2[0],xmm3[0]
11586 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11587 ; SSE-NEXT:    movapd 32(%r8), %xmm1
11588 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm3 = xmm3[1],xmm1[1]
11589 ; SSE-NEXT:    movapd %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
11590 ; SSE-NEXT:    movapd 32(%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 48(%rdi), %xmm1
11596 ; SSE-NEXT:    movapd 48(%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 48(%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 48(%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 48(%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 48(%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 48(%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 64(%rdi), %xmm1
11618 ; SSE-NEXT:    movapd 64(%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 64(%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 64(%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 64(%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 64(%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 64(%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 80(%rdi), %xmm1
11640 ; SSE-NEXT:    movapd 80(%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 80(%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 80(%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 80(%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 80(%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 80(%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 96(%rdi), %xmm1
11662 ; SSE-NEXT:    movapd 96(%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 96(%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 96(%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 96(%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 96(%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 96(%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 112(%rdi), %xmm1
11684 ; SSE-NEXT:    movapd 112(%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 112(%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 112(%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 112(%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 112(%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 112(%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 128(%rdi), %xmm1
11706 ; SSE-NEXT:    movapd 128(%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 128(%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 128(%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 128(%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 128(%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 128(%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 144(%rdi), %xmm1
11728 ; SSE-NEXT:    movapd 144(%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 144(%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 144(%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 144(%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 144(%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 144(%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 160(%rdi), %xmm1
11750 ; SSE-NEXT:    movapd 160(%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 160(%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 160(%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 160(%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 160(%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 160(%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 176(%rdi), %xmm1
11772 ; SSE-NEXT:    movapd 176(%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 176(%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 176(%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 176(%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 176(%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 176(%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 192(%rdi), %xmm1
11794 ; SSE-NEXT:    movapd 192(%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 192(%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 192(%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 192(%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 192(%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 192(%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 208(%rdi), %xmm1
11816 ; SSE-NEXT:    movapd 208(%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 208(%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 208(%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 208(%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 208(%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 208(%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 224(%rdi), %xmm1
11838 ; SSE-NEXT:    movapd 224(%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 224(%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 224(%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 224(%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 224(%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 224(%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 240(%rdi), %xmm1
11860 ; SSE-NEXT:    movapd 240(%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 240(%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 240(%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 240(%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 240(%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 240(%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 256(%rdi), %xmm1
11882 ; SSE-NEXT:    movapd 256(%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 256(%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 256(%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 256(%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 256(%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 256(%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 272(%rdi), %xmm1
11904 ; SSE-NEXT:    movapd 272(%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 272(%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 272(%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 272(%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 272(%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 272(%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 288(%rdi), %xmm1
11926 ; SSE-NEXT:    movapd 288(%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 288(%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 288(%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 288(%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 288(%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 288(%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 304(%rdi), %xmm1
11948 ; SSE-NEXT:    movapd 304(%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 304(%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 304(%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 304(%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 304(%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 304(%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 320(%rdi), %xmm1
11970 ; SSE-NEXT:    movapd 320(%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 320(%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 320(%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 320(%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 320(%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 320(%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 336(%rdi), %xmm1
11992 ; SSE-NEXT:    movapd 336(%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 336(%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 336(%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 336(%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 336(%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 336(%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 352(%rdi), %xmm1
12014 ; SSE-NEXT:    movapd 352(%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 352(%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 352(%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 352(%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 352(%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 352(%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 368(%rdi), %xmm1
12036 ; SSE-NEXT:    movapd 368(%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 368(%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 368(%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 368(%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 368(%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 368(%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 384(%rdi), %xmm1
12058 ; SSE-NEXT:    movapd 384(%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 384(%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 384(%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 384(%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 384(%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 384(%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 400(%rdi), %xmm1
12080 ; SSE-NEXT:    movapd 400(%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 400(%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 400(%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 400(%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 400(%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 400(%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 416(%rdi), %xmm1
12102 ; SSE-NEXT:    movapd 416(%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 416(%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 416(%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 416(%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 416(%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 416(%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 432(%rdi), %xmm1
12124 ; SSE-NEXT:    movapd 432(%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 432(%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 432(%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 432(%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 432(%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 432(%r9), %xmm2
12141 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12142 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 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 448(%rdi), %xmm1
12146 ; SSE-NEXT:    movapd 448(%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 448(%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 448(%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 448(%rcx), %xmm2
12157 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12158 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12159 ; SSE-NEXT:    movapd 448(%r8), %xmm1
12160 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12161 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12162 ; SSE-NEXT:    movapd 448(%r9), %xmm2
12163 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm2[0]
12164 ; SSE-NEXT:    movapd %xmm1, (%rsp) # 16-byte Spill
12165 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm0[1]
12166 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12167 ; SSE-NEXT:    movapd 464(%rdi), %xmm1
12168 ; SSE-NEXT:    movapd 464(%rsi), %xmm2
12169 ; SSE-NEXT:    movapd %xmm1, %xmm0
12170 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm2[0]
12171 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12172 ; SSE-NEXT:    movapd 464(%rax), %xmm0
12173 ; SSE-NEXT:    movsd {{.*#+}} xmm1 = xmm0[0],xmm1[1]
12174 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12175 ; SSE-NEXT:    movapd 464(%rdx), %xmm1
12176 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12177 ; SSE-NEXT:    movapd %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12178 ; SSE-NEXT:    movapd 464(%rcx), %xmm14
12179 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm14[0]
12180 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12181 ; SSE-NEXT:    movapd 464(%r8), %xmm1
12182 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm14 = xmm14[1],xmm1[1]
12183 ; SSE-NEXT:    movapd 464(%r9), %xmm13
12184 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm13[0]
12185 ; SSE-NEXT:    movapd %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12186 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm13 = xmm13[1],xmm0[1]
12187 ; SSE-NEXT:    movapd 480(%rdi), %xmm15
12188 ; SSE-NEXT:    movapd 480(%rsi), %xmm12
12189 ; SSE-NEXT:    movapd %xmm15, %xmm0
12190 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm0 = xmm0[0],xmm12[0]
12191 ; SSE-NEXT:    movapd %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12192 ; SSE-NEXT:    movapd 480(%rax), %xmm3
12193 ; SSE-NEXT:    movsd {{.*#+}} xmm15 = xmm3[0],xmm15[1]
12194 ; SSE-NEXT:    movapd 480(%rdx), %xmm11
12195 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm12 = xmm12[1],xmm11[1]
12196 ; SSE-NEXT:    movapd 480(%rcx), %xmm8
12197 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm11 = xmm11[0],xmm8[0]
12198 ; SSE-NEXT:    movapd 480(%r8), %xmm9
12199 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm8 = xmm8[1],xmm9[1]
12200 ; SSE-NEXT:    movapd 480(%r9), %xmm6
12201 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm9 = xmm9[0],xmm6[0]
12202 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm6 = xmm6[1],xmm3[1]
12203 ; SSE-NEXT:    movapd 496(%rdi), %xmm5
12204 ; SSE-NEXT:    movapd 496(%rsi), %xmm4
12205 ; SSE-NEXT:    movapd %xmm5, %xmm7
12206 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm7 = xmm7[0],xmm4[0]
12207 ; SSE-NEXT:    movapd 496(%rax), %xmm10
12208 ; SSE-NEXT:    movsd {{.*#+}} xmm5 = xmm10[0],xmm5[1]
12209 ; SSE-NEXT:    movapd 496(%rdx), %xmm3
12210 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm4 = xmm4[1],xmm3[1]
12211 ; SSE-NEXT:    movapd 496(%rcx), %xmm2
12212 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm3 = xmm3[0],xmm2[0]
12213 ; SSE-NEXT:    movapd 496(%r8), %xmm1
12214 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm2 = xmm2[1],xmm1[1]
12215 ; SSE-NEXT:    movapd 496(%r9), %xmm0
12216 ; SSE-NEXT:    unpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
12217 ; SSE-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm10[1]
12218 ; SSE-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12219 ; SSE-NEXT:    movapd %xmm0, 3568(%rax)
12220 ; SSE-NEXT:    movapd %xmm2, 3552(%rax)
12221 ; SSE-NEXT:    movapd %xmm4, 3536(%rax)
12222 ; SSE-NEXT:    movapd %xmm5, 3520(%rax)
12223 ; SSE-NEXT:    movapd %xmm1, 3504(%rax)
12224 ; SSE-NEXT:    movapd %xmm3, 3488(%rax)
12225 ; SSE-NEXT:    movapd %xmm7, 3472(%rax)
12226 ; SSE-NEXT:    movapd %xmm6, 3456(%rax)
12227 ; SSE-NEXT:    movapd %xmm8, 3440(%rax)
12228 ; SSE-NEXT:    movapd %xmm12, 3424(%rax)
12229 ; SSE-NEXT:    movapd %xmm15, 3408(%rax)
12230 ; SSE-NEXT:    movapd %xmm9, 3392(%rax)
12231 ; SSE-NEXT:    movapd %xmm11, 3376(%rax)
12232 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12233 ; SSE-NEXT:    movaps %xmm0, 3360(%rax)
12234 ; SSE-NEXT:    movapd %xmm13, 3344(%rax)
12235 ; SSE-NEXT:    movapd %xmm14, 3328(%rax)
12236 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12237 ; SSE-NEXT:    movaps %xmm0, 3312(%rax)
12238 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12239 ; SSE-NEXT:    movaps %xmm0, 3296(%rax)
12240 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12241 ; SSE-NEXT:    movaps %xmm0, 3280(%rax)
12242 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12243 ; SSE-NEXT:    movaps %xmm0, 3264(%rax)
12244 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12245 ; SSE-NEXT:    movaps %xmm0, 3248(%rax)
12246 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12247 ; SSE-NEXT:    movaps %xmm0, 3232(%rax)
12248 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12249 ; SSE-NEXT:    movaps %xmm0, 3216(%rax)
12250 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12251 ; SSE-NEXT:    movaps %xmm0, 3200(%rax)
12252 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12253 ; SSE-NEXT:    movaps %xmm0, 3184(%rax)
12254 ; SSE-NEXT:    movaps (%rsp), %xmm0 # 16-byte Reload
12255 ; SSE-NEXT:    movaps %xmm0, 3168(%rax)
12256 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12257 ; SSE-NEXT:    movaps %xmm0, 3152(%rax)
12258 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12259 ; SSE-NEXT:    movaps %xmm0, 3136(%rax)
12260 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12261 ; SSE-NEXT:    movaps %xmm0, 3120(%rax)
12262 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12263 ; SSE-NEXT:    movaps %xmm0, 3104(%rax)
12264 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12265 ; SSE-NEXT:    movaps %xmm0, 3088(%rax)
12266 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12267 ; SSE-NEXT:    movaps %xmm0, 3072(%rax)
12268 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12269 ; SSE-NEXT:    movaps %xmm0, 3056(%rax)
12270 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12271 ; SSE-NEXT:    movaps %xmm0, 3040(%rax)
12272 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12273 ; SSE-NEXT:    movaps %xmm0, 3024(%rax)
12274 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12275 ; SSE-NEXT:    movaps %xmm0, 3008(%rax)
12276 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12277 ; SSE-NEXT:    movaps %xmm0, 2992(%rax)
12278 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12279 ; SSE-NEXT:    movaps %xmm0, 2976(%rax)
12280 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12281 ; SSE-NEXT:    movaps %xmm0, 2960(%rax)
12282 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12283 ; SSE-NEXT:    movaps %xmm0, 2944(%rax)
12284 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12285 ; SSE-NEXT:    movaps %xmm0, 2928(%rax)
12286 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12287 ; SSE-NEXT:    movaps %xmm0, 2912(%rax)
12288 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12289 ; SSE-NEXT:    movaps %xmm0, 2896(%rax)
12290 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12291 ; SSE-NEXT:    movaps %xmm0, 2880(%rax)
12292 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12293 ; SSE-NEXT:    movaps %xmm0, 2864(%rax)
12294 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12295 ; SSE-NEXT:    movaps %xmm0, 2848(%rax)
12296 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12297 ; SSE-NEXT:    movaps %xmm0, 2832(%rax)
12298 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12299 ; SSE-NEXT:    movaps %xmm0, 2816(%rax)
12300 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12301 ; SSE-NEXT:    movaps %xmm0, 2800(%rax)
12302 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12303 ; SSE-NEXT:    movaps %xmm0, 2784(%rax)
12304 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12305 ; SSE-NEXT:    movaps %xmm0, 2768(%rax)
12306 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12307 ; SSE-NEXT:    movaps %xmm0, 2752(%rax)
12308 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12309 ; SSE-NEXT:    movaps %xmm0, 2736(%rax)
12310 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12311 ; SSE-NEXT:    movaps %xmm0, 2720(%rax)
12312 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12313 ; SSE-NEXT:    movaps %xmm0, 2704(%rax)
12314 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12315 ; SSE-NEXT:    movaps %xmm0, 2688(%rax)
12316 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12317 ; SSE-NEXT:    movaps %xmm0, 2672(%rax)
12318 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12319 ; SSE-NEXT:    movaps %xmm0, 2656(%rax)
12320 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12321 ; SSE-NEXT:    movaps %xmm0, 2640(%rax)
12322 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12323 ; SSE-NEXT:    movaps %xmm0, 2624(%rax)
12324 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12325 ; SSE-NEXT:    movaps %xmm0, 2608(%rax)
12326 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12327 ; SSE-NEXT:    movaps %xmm0, 2592(%rax)
12328 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12329 ; SSE-NEXT:    movaps %xmm0, 2576(%rax)
12330 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12331 ; SSE-NEXT:    movaps %xmm0, 2560(%rax)
12332 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12333 ; SSE-NEXT:    movaps %xmm0, 2544(%rax)
12334 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12335 ; SSE-NEXT:    movaps %xmm0, 2528(%rax)
12336 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12337 ; SSE-NEXT:    movaps %xmm0, 2512(%rax)
12338 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12339 ; SSE-NEXT:    movaps %xmm0, 2496(%rax)
12340 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12341 ; SSE-NEXT:    movaps %xmm0, 2480(%rax)
12342 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12343 ; SSE-NEXT:    movaps %xmm0, 2464(%rax)
12344 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12345 ; SSE-NEXT:    movaps %xmm0, 2448(%rax)
12346 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12347 ; SSE-NEXT:    movaps %xmm0, 2432(%rax)
12348 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12349 ; SSE-NEXT:    movaps %xmm0, 2416(%rax)
12350 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12351 ; SSE-NEXT:    movaps %xmm0, 2400(%rax)
12352 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12353 ; SSE-NEXT:    movaps %xmm0, 2384(%rax)
12354 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12355 ; SSE-NEXT:    movaps %xmm0, 2368(%rax)
12356 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12357 ; SSE-NEXT:    movaps %xmm0, 2352(%rax)
12358 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12359 ; SSE-NEXT:    movaps %xmm0, 2336(%rax)
12360 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12361 ; SSE-NEXT:    movaps %xmm0, 2320(%rax)
12362 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12363 ; SSE-NEXT:    movaps %xmm0, 2304(%rax)
12364 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12365 ; SSE-NEXT:    movaps %xmm0, 2288(%rax)
12366 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12367 ; SSE-NEXT:    movaps %xmm0, 2272(%rax)
12368 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12369 ; SSE-NEXT:    movaps %xmm0, 2256(%rax)
12370 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12371 ; SSE-NEXT:    movaps %xmm0, 2240(%rax)
12372 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12373 ; SSE-NEXT:    movaps %xmm0, 2224(%rax)
12374 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12375 ; SSE-NEXT:    movaps %xmm0, 2208(%rax)
12376 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12377 ; SSE-NEXT:    movaps %xmm0, 2192(%rax)
12378 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12379 ; SSE-NEXT:    movaps %xmm0, 2176(%rax)
12380 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12381 ; SSE-NEXT:    movaps %xmm0, 2160(%rax)
12382 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12383 ; SSE-NEXT:    movaps %xmm0, 2144(%rax)
12384 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12385 ; SSE-NEXT:    movaps %xmm0, 2128(%rax)
12386 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12387 ; SSE-NEXT:    movaps %xmm0, 2112(%rax)
12388 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12389 ; SSE-NEXT:    movaps %xmm0, 2096(%rax)
12390 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12391 ; SSE-NEXT:    movaps %xmm0, 2080(%rax)
12392 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12393 ; SSE-NEXT:    movaps %xmm0, 2064(%rax)
12394 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12395 ; SSE-NEXT:    movaps %xmm0, 2048(%rax)
12396 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12397 ; SSE-NEXT:    movaps %xmm0, 2032(%rax)
12398 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12399 ; SSE-NEXT:    movaps %xmm0, 2016(%rax)
12400 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12401 ; SSE-NEXT:    movaps %xmm0, 2000(%rax)
12402 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12403 ; SSE-NEXT:    movaps %xmm0, 1984(%rax)
12404 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12405 ; SSE-NEXT:    movaps %xmm0, 1968(%rax)
12406 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12407 ; SSE-NEXT:    movaps %xmm0, 1952(%rax)
12408 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12409 ; SSE-NEXT:    movaps %xmm0, 1936(%rax)
12410 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12411 ; SSE-NEXT:    movaps %xmm0, 1920(%rax)
12412 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12413 ; SSE-NEXT:    movaps %xmm0, 1904(%rax)
12414 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12415 ; SSE-NEXT:    movaps %xmm0, 1888(%rax)
12416 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12417 ; SSE-NEXT:    movaps %xmm0, 1872(%rax)
12418 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12419 ; SSE-NEXT:    movaps %xmm0, 1856(%rax)
12420 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12421 ; SSE-NEXT:    movaps %xmm0, 1840(%rax)
12422 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12423 ; SSE-NEXT:    movaps %xmm0, 1824(%rax)
12424 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12425 ; SSE-NEXT:    movaps %xmm0, 1808(%rax)
12426 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12427 ; SSE-NEXT:    movaps %xmm0, 1792(%rax)
12428 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12429 ; SSE-NEXT:    movaps %xmm0, 1776(%rax)
12430 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12431 ; SSE-NEXT:    movaps %xmm0, 1760(%rax)
12432 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12433 ; SSE-NEXT:    movaps %xmm0, 1744(%rax)
12434 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12435 ; SSE-NEXT:    movaps %xmm0, 1728(%rax)
12436 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12437 ; SSE-NEXT:    movaps %xmm0, 1712(%rax)
12438 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12439 ; SSE-NEXT:    movaps %xmm0, 1696(%rax)
12440 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12441 ; SSE-NEXT:    movaps %xmm0, 1680(%rax)
12442 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12443 ; SSE-NEXT:    movaps %xmm0, 1664(%rax)
12444 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12445 ; SSE-NEXT:    movaps %xmm0, 1648(%rax)
12446 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12447 ; SSE-NEXT:    movaps %xmm0, 1632(%rax)
12448 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12449 ; SSE-NEXT:    movaps %xmm0, 1616(%rax)
12450 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12451 ; SSE-NEXT:    movaps %xmm0, 1600(%rax)
12452 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12453 ; SSE-NEXT:    movaps %xmm0, 1584(%rax)
12454 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12455 ; SSE-NEXT:    movaps %xmm0, 1568(%rax)
12456 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12457 ; SSE-NEXT:    movaps %xmm0, 1552(%rax)
12458 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12459 ; SSE-NEXT:    movaps %xmm0, 1536(%rax)
12460 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12461 ; SSE-NEXT:    movaps %xmm0, 1520(%rax)
12462 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12463 ; SSE-NEXT:    movaps %xmm0, 1504(%rax)
12464 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12465 ; SSE-NEXT:    movaps %xmm0, 1488(%rax)
12466 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12467 ; SSE-NEXT:    movaps %xmm0, 1472(%rax)
12468 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12469 ; SSE-NEXT:    movaps %xmm0, 1456(%rax)
12470 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12471 ; SSE-NEXT:    movaps %xmm0, 1440(%rax)
12472 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12473 ; SSE-NEXT:    movaps %xmm0, 1424(%rax)
12474 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12475 ; SSE-NEXT:    movaps %xmm0, 1408(%rax)
12476 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12477 ; SSE-NEXT:    movaps %xmm0, 1392(%rax)
12478 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12479 ; SSE-NEXT:    movaps %xmm0, 1376(%rax)
12480 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12481 ; SSE-NEXT:    movaps %xmm0, 1360(%rax)
12482 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12483 ; SSE-NEXT:    movaps %xmm0, 1344(%rax)
12484 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12485 ; SSE-NEXT:    movaps %xmm0, 1328(%rax)
12486 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12487 ; SSE-NEXT:    movaps %xmm0, 1312(%rax)
12488 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12489 ; SSE-NEXT:    movaps %xmm0, 1296(%rax)
12490 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12491 ; SSE-NEXT:    movaps %xmm0, 1280(%rax)
12492 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12493 ; SSE-NEXT:    movaps %xmm0, 1264(%rax)
12494 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12495 ; SSE-NEXT:    movaps %xmm0, 1248(%rax)
12496 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12497 ; SSE-NEXT:    movaps %xmm0, 1232(%rax)
12498 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12499 ; SSE-NEXT:    movaps %xmm0, 1216(%rax)
12500 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12501 ; SSE-NEXT:    movaps %xmm0, 1200(%rax)
12502 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12503 ; SSE-NEXT:    movaps %xmm0, 1184(%rax)
12504 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12505 ; SSE-NEXT:    movaps %xmm0, 1168(%rax)
12506 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12507 ; SSE-NEXT:    movaps %xmm0, 1152(%rax)
12508 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12509 ; SSE-NEXT:    movaps %xmm0, 1136(%rax)
12510 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12511 ; SSE-NEXT:    movaps %xmm0, 1120(%rax)
12512 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12513 ; SSE-NEXT:    movaps %xmm0, 1104(%rax)
12514 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12515 ; SSE-NEXT:    movaps %xmm0, 1088(%rax)
12516 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12517 ; SSE-NEXT:    movaps %xmm0, 1072(%rax)
12518 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12519 ; SSE-NEXT:    movaps %xmm0, 1056(%rax)
12520 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12521 ; SSE-NEXT:    movaps %xmm0, 1040(%rax)
12522 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12523 ; SSE-NEXT:    movaps %xmm0, 1024(%rax)
12524 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12525 ; SSE-NEXT:    movaps %xmm0, 1008(%rax)
12526 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12527 ; SSE-NEXT:    movaps %xmm0, 992(%rax)
12528 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12529 ; SSE-NEXT:    movaps %xmm0, 976(%rax)
12530 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12531 ; SSE-NEXT:    movaps %xmm0, 960(%rax)
12532 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12533 ; SSE-NEXT:    movaps %xmm0, 944(%rax)
12534 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12535 ; SSE-NEXT:    movaps %xmm0, 928(%rax)
12536 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12537 ; SSE-NEXT:    movaps %xmm0, 912(%rax)
12538 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12539 ; SSE-NEXT:    movaps %xmm0, 896(%rax)
12540 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12541 ; SSE-NEXT:    movaps %xmm0, 880(%rax)
12542 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12543 ; SSE-NEXT:    movaps %xmm0, 864(%rax)
12544 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12545 ; SSE-NEXT:    movaps %xmm0, 848(%rax)
12546 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12547 ; SSE-NEXT:    movaps %xmm0, 832(%rax)
12548 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12549 ; SSE-NEXT:    movaps %xmm0, 816(%rax)
12550 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12551 ; SSE-NEXT:    movaps %xmm0, 800(%rax)
12552 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12553 ; SSE-NEXT:    movaps %xmm0, 784(%rax)
12554 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12555 ; SSE-NEXT:    movaps %xmm0, 768(%rax)
12556 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12557 ; SSE-NEXT:    movaps %xmm0, 752(%rax)
12558 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12559 ; SSE-NEXT:    movaps %xmm0, 736(%rax)
12560 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12561 ; SSE-NEXT:    movaps %xmm0, 720(%rax)
12562 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12563 ; SSE-NEXT:    movaps %xmm0, 704(%rax)
12564 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12565 ; SSE-NEXT:    movaps %xmm0, 688(%rax)
12566 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12567 ; SSE-NEXT:    movaps %xmm0, 672(%rax)
12568 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12569 ; SSE-NEXT:    movaps %xmm0, 656(%rax)
12570 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12571 ; SSE-NEXT:    movaps %xmm0, 640(%rax)
12572 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12573 ; SSE-NEXT:    movaps %xmm0, 624(%rax)
12574 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12575 ; SSE-NEXT:    movaps %xmm0, 608(%rax)
12576 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12577 ; SSE-NEXT:    movaps %xmm0, 592(%rax)
12578 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12579 ; SSE-NEXT:    movaps %xmm0, 576(%rax)
12580 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12581 ; SSE-NEXT:    movaps %xmm0, 560(%rax)
12582 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12583 ; SSE-NEXT:    movaps %xmm0, 544(%rax)
12584 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12585 ; SSE-NEXT:    movaps %xmm0, 528(%rax)
12586 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12587 ; SSE-NEXT:    movaps %xmm0, 512(%rax)
12588 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12589 ; SSE-NEXT:    movaps %xmm0, 496(%rax)
12590 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12591 ; SSE-NEXT:    movaps %xmm0, 480(%rax)
12592 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12593 ; SSE-NEXT:    movaps %xmm0, 464(%rax)
12594 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12595 ; SSE-NEXT:    movaps %xmm0, 448(%rax)
12596 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12597 ; SSE-NEXT:    movaps %xmm0, 432(%rax)
12598 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12599 ; SSE-NEXT:    movaps %xmm0, 416(%rax)
12600 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12601 ; SSE-NEXT:    movaps %xmm0, 400(%rax)
12602 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12603 ; SSE-NEXT:    movaps %xmm0, 384(%rax)
12604 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12605 ; SSE-NEXT:    movaps %xmm0, 368(%rax)
12606 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12607 ; SSE-NEXT:    movaps %xmm0, 352(%rax)
12608 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12609 ; SSE-NEXT:    movaps %xmm0, 336(%rax)
12610 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12611 ; SSE-NEXT:    movaps %xmm0, 320(%rax)
12612 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12613 ; SSE-NEXT:    movaps %xmm0, 304(%rax)
12614 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12615 ; SSE-NEXT:    movaps %xmm0, 288(%rax)
12616 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12617 ; SSE-NEXT:    movaps %xmm0, 272(%rax)
12618 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12619 ; SSE-NEXT:    movaps %xmm0, 256(%rax)
12620 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12621 ; SSE-NEXT:    movaps %xmm0, 240(%rax)
12622 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12623 ; SSE-NEXT:    movaps %xmm0, 224(%rax)
12624 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12625 ; SSE-NEXT:    movaps %xmm0, 208(%rax)
12626 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12627 ; SSE-NEXT:    movaps %xmm0, 192(%rax)
12628 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12629 ; SSE-NEXT:    movaps %xmm0, 176(%rax)
12630 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12631 ; SSE-NEXT:    movaps %xmm0, 160(%rax)
12632 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12633 ; SSE-NEXT:    movaps %xmm0, 144(%rax)
12634 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12635 ; SSE-NEXT:    movaps %xmm0, 128(%rax)
12636 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12637 ; SSE-NEXT:    movaps %xmm0, 112(%rax)
12638 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12639 ; SSE-NEXT:    movaps %xmm0, 96(%rax)
12640 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12641 ; SSE-NEXT:    movaps %xmm0, 80(%rax)
12642 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12643 ; SSE-NEXT:    movaps %xmm0, 64(%rax)
12644 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12645 ; SSE-NEXT:    movaps %xmm0, 48(%rax)
12646 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12647 ; SSE-NEXT:    movaps %xmm0, 32(%rax)
12648 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12649 ; SSE-NEXT:    movaps %xmm0, 16(%rax)
12650 ; SSE-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
12651 ; SSE-NEXT:    movaps %xmm0, (%rax)
12652 ; SSE-NEXT:    addq $3224, %rsp # imm = 0xC98
12653 ; SSE-NEXT:    retq
12655 ; AVX-LABEL: store_i64_stride7_vf64:
12656 ; AVX:       # %bb.0:
12657 ; AVX-NEXT:    subq $3816, %rsp # imm = 0xEE8
12658 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
12659 ; AVX-NEXT:    vmovaps (%rsi), %ymm4
12660 ; AVX-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12661 ; AVX-NEXT:    vmovaps (%rdx), %ymm0
12662 ; AVX-NEXT:    vmovaps (%r9), %ymm5
12663 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12664 ; AVX-NEXT:    vmovaps (%r9), %xmm2
12665 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12666 ; AVX-NEXT:    vmovaps (%r8), %xmm1
12667 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm2[0]
12668 ; AVX-NEXT:    vmovaps (%rdi), %xmm3
12669 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12670 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm2, %ymm3
12671 ; AVX-NEXT:    vmovaps (%rax), %xmm6
12672 ; AVX-NEXT:    vmovaps %xmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12673 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm2, %ymm2
12674 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3],ymm2[4,5],ymm3[6,7]
12675 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12676 ; AVX-NEXT:    vbroadcastsd 8(%rcx), %ymm2
12677 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm0[0,1,2,3],ymm2[4,5,6,7]
12678 ; AVX-NEXT:    vmovaps (%rsi), %xmm3
12679 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12680 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12681 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12682 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12683 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3,4,5],ymm1[6,7]
12684 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12685 ; AVX-NEXT:    vmovaps 16(%rax), %xmm1
12686 ; AVX-NEXT:    vmovaps 16(%rdi), %xmm2
12687 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm2 = ymm4[1],ymm2[1],ymm4[3],ymm2[3]
12688 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12689 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12690 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12691 ; AVX-NEXT:    vmovaps 16(%rcx), %xmm0
12692 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12693 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
12694 ; AVX-NEXT:    vmovaps 16(%r8), %xmm1
12695 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm5[1],ymm1[1],ymm5[3],ymm1[3]
12696 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],mem[6,7]
12697 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
12698 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12699 ; AVX-NEXT:    vmovaps 32(%rsi), %xmm0
12700 ; AVX-NEXT:    vmovaps 32(%rdi), %xmm1
12701 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12702 ; AVX-NEXT:    vinsertf128 $1, 32(%rcx), %ymm2, %ymm3
12703 ; AVX-NEXT:    vmovaps 32(%rdx), %xmm4
12704 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12705 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12706 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12707 ; AVX-NEXT:    vmovaps 32(%rax), %xmm5
12708 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12709 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12710 ; AVX-NEXT:    vmovaps 32(%r9), %xmm3
12711 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12712 ; AVX-NEXT:    vmovaps 32(%r8), %xmm2
12713 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12714 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12715 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12716 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12717 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12718 ; AVX-NEXT:    vbroadcastsd 40(%rcx), %ymm1
12719 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12720 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12721 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12722 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12723 ; AVX-NEXT:    vmovaps 32(%rsi), %ymm1
12724 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12725 ; AVX-NEXT:    vmovaps 48(%rdi), %xmm0
12726 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12727 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12728 ; AVX-NEXT:    vmovaps 48(%rax), %xmm1
12729 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12730 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12731 ; AVX-NEXT:    vmovaps 32(%r9), %ymm1
12732 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12733 ; AVX-NEXT:    vmovaps 48(%r8), %xmm0
12734 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12735 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12736 ; AVX-NEXT:    vmovaps 48(%rcx), %xmm1
12737 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12738 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12739 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12740 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12741 ; AVX-NEXT:    vmovaps 64(%r9), %xmm1
12742 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12743 ; AVX-NEXT:    vmovaps 64(%r8), %xmm0
12744 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12745 ; AVX-NEXT:    vmovaps 64(%rdi), %xmm2
12746 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12747 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12748 ; AVX-NEXT:    vmovaps 64(%rax), %xmm3
12749 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12750 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12751 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12752 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12753 ; AVX-NEXT:    vmovaps 64(%rdx), %ymm1
12754 ; AVX-NEXT:    vbroadcastsd 72(%rcx), %ymm2
12755 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12756 ; AVX-NEXT:    vmovaps 64(%rsi), %xmm3
12757 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12758 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12759 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12760 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12761 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12762 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12763 ; AVX-NEXT:    vmovaps 64(%rsi), %ymm2
12764 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12765 ; AVX-NEXT:    vmovaps 80(%rdi), %xmm0
12766 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12767 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12768 ; AVX-NEXT:    vmovaps 80(%rax), %xmm1
12769 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12770 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12771 ; AVX-NEXT:    vmovaps 64(%r9), %ymm1
12772 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12773 ; AVX-NEXT:    vmovaps 80(%r8), %xmm0
12774 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12775 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12776 ; AVX-NEXT:    vmovaps 80(%rcx), %xmm1
12777 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12778 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12779 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12780 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12781 ; AVX-NEXT:    vmovaps 96(%rsi), %xmm0
12782 ; AVX-NEXT:    vmovaps 96(%rdi), %xmm1
12783 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12784 ; AVX-NEXT:    vinsertf128 $1, 96(%rcx), %ymm2, %ymm3
12785 ; AVX-NEXT:    vmovaps 96(%rdx), %xmm4
12786 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12787 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12788 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12789 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12790 ; AVX-NEXT:    vmovaps 96(%r9), %xmm3
12791 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12792 ; AVX-NEXT:    vmovaps 96(%r8), %xmm2
12793 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12794 ; AVX-NEXT:    vmovaps 96(%rax), %xmm5
12795 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12796 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12797 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12798 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12799 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12800 ; AVX-NEXT:    vbroadcastsd 104(%rcx), %ymm1
12801 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12802 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12803 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12804 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12805 ; AVX-NEXT:    vmovaps 96(%rsi), %ymm1
12806 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12807 ; AVX-NEXT:    vmovaps 112(%rdi), %xmm0
12808 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12809 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12810 ; AVX-NEXT:    vmovaps 112(%rax), %xmm1
12811 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12812 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12813 ; AVX-NEXT:    vmovaps 96(%r9), %ymm1
12814 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12815 ; AVX-NEXT:    vmovaps 112(%r8), %xmm0
12816 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12817 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12818 ; AVX-NEXT:    vmovaps 112(%rcx), %xmm1
12819 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12820 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12821 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12822 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12823 ; AVX-NEXT:    vmovaps 128(%r9), %xmm1
12824 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12825 ; AVX-NEXT:    vmovaps 128(%r8), %xmm0
12826 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12827 ; AVX-NEXT:    vmovaps 128(%rdi), %xmm2
12828 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12829 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12830 ; AVX-NEXT:    vmovaps 128(%rax), %xmm3
12831 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12832 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12833 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12834 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12835 ; AVX-NEXT:    vmovaps 128(%rdx), %ymm1
12836 ; AVX-NEXT:    vbroadcastsd 136(%rcx), %ymm2
12837 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12838 ; AVX-NEXT:    vmovaps 128(%rsi), %xmm3
12839 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12840 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12841 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12842 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12843 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12844 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12845 ; AVX-NEXT:    vmovaps 128(%rsi), %ymm2
12846 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12847 ; AVX-NEXT:    vmovaps 144(%rdi), %xmm0
12848 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12849 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12850 ; AVX-NEXT:    vmovaps 144(%rax), %xmm1
12851 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12852 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12853 ; AVX-NEXT:    vmovaps 128(%r9), %ymm1
12854 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12855 ; AVX-NEXT:    vmovaps 144(%r8), %xmm0
12856 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12857 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12858 ; AVX-NEXT:    vmovaps 144(%rcx), %xmm1
12859 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12860 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12861 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12862 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12863 ; AVX-NEXT:    vmovaps 160(%rsi), %xmm0
12864 ; AVX-NEXT:    vmovaps 160(%rdi), %xmm1
12865 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12866 ; AVX-NEXT:    vinsertf128 $1, 160(%rcx), %ymm2, %ymm3
12867 ; AVX-NEXT:    vmovaps 160(%rdx), %xmm4
12868 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12869 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12870 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12871 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12872 ; AVX-NEXT:    vmovaps 160(%r9), %xmm3
12873 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12874 ; AVX-NEXT:    vmovaps 160(%r8), %xmm2
12875 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12876 ; AVX-NEXT:    vmovaps 160(%rax), %xmm5
12877 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12878 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12879 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12880 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12881 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12882 ; AVX-NEXT:    vbroadcastsd 168(%rcx), %ymm1
12883 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12884 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12885 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12886 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12887 ; AVX-NEXT:    vmovaps 160(%rsi), %ymm1
12888 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12889 ; AVX-NEXT:    vmovaps 176(%rdi), %xmm0
12890 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12891 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12892 ; AVX-NEXT:    vmovaps 176(%rax), %xmm1
12893 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12894 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12895 ; AVX-NEXT:    vmovaps 160(%r9), %ymm1
12896 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12897 ; AVX-NEXT:    vmovaps 176(%r8), %xmm0
12898 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12899 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12900 ; AVX-NEXT:    vmovaps 176(%rcx), %xmm1
12901 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12902 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12903 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12904 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12905 ; AVX-NEXT:    vmovaps 192(%r9), %xmm1
12906 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12907 ; AVX-NEXT:    vmovaps 192(%r8), %xmm0
12908 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12909 ; AVX-NEXT:    vmovaps 192(%rdi), %xmm2
12910 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12911 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12912 ; AVX-NEXT:    vmovaps 192(%rax), %xmm3
12913 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12914 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12915 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12916 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12917 ; AVX-NEXT:    vmovaps 192(%rdx), %ymm1
12918 ; AVX-NEXT:    vbroadcastsd 200(%rcx), %ymm2
12919 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
12920 ; AVX-NEXT:    vmovaps 192(%rsi), %xmm3
12921 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12922 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
12923 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
12924 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
12925 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
12926 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12927 ; AVX-NEXT:    vmovaps 192(%rsi), %ymm2
12928 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12929 ; AVX-NEXT:    vmovaps 208(%rdi), %xmm0
12930 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
12931 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12932 ; AVX-NEXT:    vmovaps 208(%rax), %xmm1
12933 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12934 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12935 ; AVX-NEXT:    vmovaps 192(%r9), %ymm1
12936 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12937 ; AVX-NEXT:    vmovaps 208(%r8), %xmm0
12938 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12939 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12940 ; AVX-NEXT:    vmovaps 208(%rcx), %xmm1
12941 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12942 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12943 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12944 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12945 ; AVX-NEXT:    vmovaps 224(%rsi), %xmm0
12946 ; AVX-NEXT:    vmovaps 224(%rdi), %xmm1
12947 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
12948 ; AVX-NEXT:    vinsertf128 $1, 224(%rcx), %ymm2, %ymm3
12949 ; AVX-NEXT:    vmovaps 224(%rdx), %xmm4
12950 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
12951 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
12952 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12953 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
12954 ; AVX-NEXT:    vmovaps 224(%r9), %xmm3
12955 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12956 ; AVX-NEXT:    vmovaps 224(%r8), %xmm2
12957 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
12958 ; AVX-NEXT:    vmovaps 224(%rax), %xmm5
12959 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12960 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
12961 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
12962 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12963 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
12964 ; AVX-NEXT:    vbroadcastsd 232(%rcx), %ymm1
12965 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
12966 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
12967 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
12968 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12969 ; AVX-NEXT:    vmovaps 224(%rsi), %ymm1
12970 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12971 ; AVX-NEXT:    vmovaps 240(%rdi), %xmm0
12972 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12973 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12974 ; AVX-NEXT:    vmovaps 240(%rax), %xmm1
12975 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12976 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12977 ; AVX-NEXT:    vmovaps 224(%r9), %ymm1
12978 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12979 ; AVX-NEXT:    vmovaps 240(%r8), %xmm0
12980 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
12981 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
12982 ; AVX-NEXT:    vmovaps 240(%rcx), %xmm1
12983 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12984 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
12985 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
12986 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12987 ; AVX-NEXT:    vmovaps 256(%r9), %xmm1
12988 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12989 ; AVX-NEXT:    vmovaps 256(%r8), %xmm0
12990 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
12991 ; AVX-NEXT:    vmovaps 256(%rdi), %xmm2
12992 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12993 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
12994 ; AVX-NEXT:    vmovaps 256(%rax), %xmm3
12995 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
12996 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
12997 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
12998 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
12999 ; AVX-NEXT:    vmovaps 256(%rdx), %ymm1
13000 ; AVX-NEXT:    vbroadcastsd 264(%rcx), %ymm2
13001 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13002 ; AVX-NEXT:    vmovaps 256(%rsi), %xmm3
13003 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13004 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
13005 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
13006 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13007 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13008 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13009 ; AVX-NEXT:    vmovaps 256(%rsi), %ymm2
13010 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13011 ; AVX-NEXT:    vmovaps 272(%rdi), %xmm0
13012 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
13013 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13014 ; AVX-NEXT:    vmovaps 272(%rax), %xmm1
13015 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13016 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13017 ; AVX-NEXT:    vmovaps 256(%r9), %ymm1
13018 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13019 ; AVX-NEXT:    vmovaps 272(%r8), %xmm0
13020 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13021 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13022 ; AVX-NEXT:    vmovaps 272(%rcx), %xmm1
13023 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13024 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13025 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13026 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13027 ; AVX-NEXT:    vmovaps 288(%rsi), %xmm0
13028 ; AVX-NEXT:    vmovaps 288(%rdi), %xmm1
13029 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
13030 ; AVX-NEXT:    vinsertf128 $1, 288(%rcx), %ymm2, %ymm3
13031 ; AVX-NEXT:    vmovaps 288(%rdx), %xmm4
13032 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13033 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
13034 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13035 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13036 ; AVX-NEXT:    vmovaps 288(%r9), %xmm3
13037 ; AVX-NEXT:    vmovaps %xmm3, (%rsp) # 16-byte Spill
13038 ; AVX-NEXT:    vmovaps 288(%r8), %xmm2
13039 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
13040 ; AVX-NEXT:    vmovaps 288(%rax), %xmm5
13041 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13042 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
13043 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
13044 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13045 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13046 ; AVX-NEXT:    vbroadcastsd 296(%rcx), %ymm1
13047 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13048 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
13049 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13050 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13051 ; AVX-NEXT:    vmovaps 288(%rsi), %ymm1
13052 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13053 ; AVX-NEXT:    vmovaps 304(%rdi), %xmm0
13054 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13055 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13056 ; AVX-NEXT:    vmovaps 304(%rax), %xmm1
13057 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13058 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13059 ; AVX-NEXT:    vmovaps 288(%r9), %ymm1
13060 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13061 ; AVX-NEXT:    vmovaps 304(%r8), %xmm0
13062 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13063 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13064 ; AVX-NEXT:    vmovaps 304(%rcx), %xmm1
13065 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13066 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13067 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13068 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13069 ; AVX-NEXT:    vmovaps 320(%r9), %xmm1
13070 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13071 ; AVX-NEXT:    vmovaps 320(%r8), %xmm0
13072 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm1[0]
13073 ; AVX-NEXT:    vmovaps 320(%rdi), %xmm2
13074 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13075 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
13076 ; AVX-NEXT:    vmovaps 320(%rax), %xmm3
13077 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13078 ; AVX-NEXT:    vinsertf128 $1, %xmm3, %ymm1, %ymm1
13079 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
13080 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13081 ; AVX-NEXT:    vmovaps 320(%rdx), %ymm1
13082 ; AVX-NEXT:    vbroadcastsd 328(%rcx), %ymm2
13083 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13084 ; AVX-NEXT:    vmovaps 320(%rsi), %xmm3
13085 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13086 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
13087 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
13088 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13089 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13090 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13091 ; AVX-NEXT:    vmovaps 320(%rsi), %ymm2
13092 ; AVX-NEXT:    vmovups %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13093 ; AVX-NEXT:    vmovaps 336(%rdi), %xmm0
13094 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm2[1],ymm0[1],ymm2[3],ymm0[3]
13095 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13096 ; AVX-NEXT:    vmovaps 336(%rax), %xmm1
13097 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13098 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13099 ; AVX-NEXT:    vmovaps 320(%r9), %ymm1
13100 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13101 ; AVX-NEXT:    vmovaps 336(%r8), %xmm0
13102 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm0[1],ymm1[3],ymm0[3]
13103 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13104 ; AVX-NEXT:    vmovaps 336(%rcx), %xmm1
13105 ; AVX-NEXT:    vmovaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13106 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm1[2,3,2,3]
13107 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13108 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13109 ; AVX-NEXT:    vmovaps 352(%rsi), %xmm0
13110 ; AVX-NEXT:    vmovaps 352(%rdi), %xmm1
13111 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm2 = xmm1[0],xmm0[0]
13112 ; AVX-NEXT:    vinsertf128 $1, 352(%rcx), %ymm2, %ymm3
13113 ; AVX-NEXT:    vmovaps 352(%rdx), %xmm4
13114 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13115 ; AVX-NEXT:    vshufpd {{.*#+}} ymm2 = ymm2[0],ymm3[1],ymm2[2],ymm3[2]
13116 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13117 ; AVX-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13118 ; AVX-NEXT:    vmovaps 352(%r9), %xmm3
13119 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13120 ; AVX-NEXT:    vmovaps 352(%r8), %xmm2
13121 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm3 = xmm2[0],xmm3[0]
13122 ; AVX-NEXT:    vmovaps 352(%rax), %xmm5
13123 ; AVX-NEXT:    vmovaps %xmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13124 ; AVX-NEXT:    vinsertf128 $1, %xmm5, %ymm3, %ymm3
13125 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1,2,3,4,5],ymm1[6,7]
13126 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13127 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13128 ; AVX-NEXT:    vbroadcastsd 360(%rcx), %ymm1
13129 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13130 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm1
13131 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13132 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13133 ; AVX-NEXT:    vmovaps 352(%rsi), %ymm15
13134 ; AVX-NEXT:    vmovaps 368(%rdi), %xmm0
13135 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm15[1],ymm0[1],ymm15[3],ymm0[3]
13136 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13137 ; AVX-NEXT:    vmovaps 368(%rax), %xmm1
13138 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13139 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13140 ; AVX-NEXT:    vmovaps 352(%r9), %ymm14
13141 ; AVX-NEXT:    vmovaps 368(%r8), %xmm0
13142 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm14[1],ymm0[1],ymm14[3],ymm0[3]
13143 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13144 ; AVX-NEXT:    vmovaps 368(%rcx), %xmm12
13145 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm12[2,3,2,3]
13146 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13147 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13148 ; AVX-NEXT:    vmovaps 384(%r9), %xmm13
13149 ; AVX-NEXT:    vmovaps 384(%r8), %xmm0
13150 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm13[0]
13151 ; AVX-NEXT:    vmovaps 384(%rdi), %xmm2
13152 ; AVX-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13153 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm2
13154 ; AVX-NEXT:    vmovaps 384(%rax), %xmm11
13155 ; AVX-NEXT:    vinsertf128 $1, %xmm11, %ymm1, %ymm1
13156 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3],ymm1[4,5],ymm2[6,7]
13157 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13158 ; AVX-NEXT:    vmovaps 384(%rdx), %ymm1
13159 ; AVX-NEXT:    vbroadcastsd 392(%rcx), %ymm2
13160 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13161 ; AVX-NEXT:    vmovaps 384(%rsi), %xmm3
13162 ; AVX-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13163 ; AVX-NEXT:    vshufps {{.*#+}} xmm3 = xmm3[2,3,2,3]
13164 ; AVX-NEXT:    vblendps {{.*#+}} ymm2 = ymm3[0,1],ymm2[2,3,4,5,6,7]
13165 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13166 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13167 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13168 ; AVX-NEXT:    vmovaps 384(%rsi), %ymm10
13169 ; AVX-NEXT:    vmovaps 400(%rdi), %xmm0
13170 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm10[1],ymm0[1],ymm10[3],ymm0[3]
13171 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13172 ; AVX-NEXT:    vmovaps 400(%rax), %xmm1
13173 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13174 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13175 ; AVX-NEXT:    vmovaps 384(%r9), %ymm9
13176 ; AVX-NEXT:    vmovaps 400(%r8), %xmm0
13177 ; AVX-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm9[1],ymm0[1],ymm9[3],ymm0[3]
13178 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
13179 ; AVX-NEXT:    vmovaps 400(%rcx), %xmm8
13180 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm8[2,3,2,3]
13181 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13182 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13183 ; AVX-NEXT:    vmovaps 416(%rsi), %xmm5
13184 ; AVX-NEXT:    vmovaps 416(%rdi), %xmm0
13185 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm0[0],xmm5[0]
13186 ; AVX-NEXT:    vinsertf128 $1, 416(%rcx), %ymm1, %ymm6
13187 ; AVX-NEXT:    vmovaps 416(%rdx), %xmm2
13188 ; AVX-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13189 ; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm6[1],ymm1[2],ymm6[2]
13190 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13191 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm6
13192 ; AVX-NEXT:    vmovapd 416(%r9), %xmm7
13193 ; AVX-NEXT:    vmovapd 416(%r8), %xmm0
13194 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],xmm7[0]
13195 ; AVX-NEXT:    vmovapd 416(%rax), %xmm4
13196 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm1, %ymm1
13197 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm6[6,7]
13198 ; AVX-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13199 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm5[1],xmm2[1]
13200 ; AVX-NEXT:    vbroadcastsd 424(%rcx), %ymm2
13201 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13202 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13203 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13204 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13205 ; AVX-NEXT:    vmovaps 448(%rsi), %xmm0
13206 ; AVX-NEXT:    vmovaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13207 ; AVX-NEXT:    vshufps {{.*#+}} xmm0 = xmm0[2,3,2,3]
13208 ; AVX-NEXT:    vbroadcastsd 456(%rcx), %ymm1
13209 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3,4,5,6,7]
13210 ; AVX-NEXT:    vmovapd 448(%rdx), %ymm5
13211 ; AVX-NEXT:    vinsertf128 $1, 448(%r8), %ymm5, %ymm1
13212 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3],ymm0[4,5],ymm1[6,7]
13213 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13214 ; AVX-NEXT:    vmovaps 480(%rsi), %xmm2
13215 ; AVX-NEXT:    vmovaps 480(%rdi), %xmm6
13216 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm6[0],xmm2[0]
13217 ; AVX-NEXT:    vinsertf128 $1, 480(%rcx), %ymm1, %ymm3
13218 ; AVX-NEXT:    vmovaps 480(%rdx), %xmm0
13219 ; AVX-NEXT:    vinsertf128 $1, %xmm0, %ymm1, %ymm1
13220 ; AVX-NEXT:    vshufpd {{.*#+}} ymm1 = ymm1[0],ymm3[1],ymm1[2],ymm3[2]
13221 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13222 ; AVX-NEXT:    vshufps {{.*#+}} xmm1 = xmm2[2,3,2,3]
13223 ; AVX-NEXT:    vbroadcastsd 488(%rcx), %ymm2
13224 ; AVX-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5,6,7]
13225 ; AVX-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm0
13226 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3],ymm1[4,5],ymm0[6,7]
13227 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13228 ; AVX-NEXT:    vmovaps (%rdi), %ymm0
13229 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13230 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13231 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13232 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13233 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13234 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13235 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13236 ; AVX-NEXT:    vmovaps (%r8), %ymm0
13237 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13238 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13239 ; AVX-NEXT:    vmovaps 16(%rdx), %xmm1
13240 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13241 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13242 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13243 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13244 ; AVX-NEXT:    vmovaps 32(%rdi), %ymm0
13245 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13246 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13247 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13248 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13249 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13250 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13251 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13252 ; AVX-NEXT:    vmovaps 32(%r8), %ymm0
13253 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13254 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13255 ; AVX-NEXT:    vmovaps 48(%rdx), %xmm1
13256 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13257 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13258 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13259 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13260 ; AVX-NEXT:    vmovaps 64(%rdi), %ymm0
13261 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13262 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13263 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13264 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13265 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13266 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13267 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13268 ; AVX-NEXT:    vmovaps 64(%r8), %ymm0
13269 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13270 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13271 ; AVX-NEXT:    vmovaps 80(%rdx), %xmm1
13272 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13273 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13274 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13275 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13276 ; AVX-NEXT:    vmovaps 96(%rdi), %ymm0
13277 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13278 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13279 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13280 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13281 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13282 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13283 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13284 ; AVX-NEXT:    vmovaps 96(%r8), %ymm0
13285 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13286 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13287 ; AVX-NEXT:    vmovaps 112(%rdx), %xmm1
13288 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13289 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13290 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13291 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13292 ; AVX-NEXT:    vmovaps 128(%rdi), %ymm0
13293 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13294 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13295 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13296 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13297 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13298 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13299 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13300 ; AVX-NEXT:    vmovaps 128(%r8), %ymm0
13301 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13302 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13303 ; AVX-NEXT:    vmovaps 144(%rdx), %xmm1
13304 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13305 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13306 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13307 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13308 ; AVX-NEXT:    vmovaps 160(%rdi), %ymm0
13309 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13310 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13311 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13312 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13313 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13314 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13315 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13316 ; AVX-NEXT:    vmovaps 160(%r8), %ymm0
13317 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13318 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13319 ; AVX-NEXT:    vmovaps 176(%rdx), %xmm1
13320 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13321 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13322 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13323 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13324 ; AVX-NEXT:    vmovaps 192(%rdi), %ymm0
13325 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13326 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13327 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13328 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13329 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13330 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13331 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13332 ; AVX-NEXT:    vmovaps 192(%r8), %ymm0
13333 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13334 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13335 ; AVX-NEXT:    vmovaps 208(%rdx), %xmm1
13336 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13337 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13338 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13339 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13340 ; AVX-NEXT:    vmovaps 224(%rdi), %ymm0
13341 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13342 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13343 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13344 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13345 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13346 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13347 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13348 ; AVX-NEXT:    vmovaps 224(%r8), %ymm0
13349 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13350 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13351 ; AVX-NEXT:    vmovaps 240(%rdx), %xmm1
13352 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13353 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13354 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13355 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13356 ; AVX-NEXT:    vmovaps 256(%rdi), %ymm0
13357 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13358 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13359 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13360 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13361 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13362 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13363 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13364 ; AVX-NEXT:    vmovaps 256(%r8), %ymm0
13365 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13366 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13367 ; AVX-NEXT:    vmovaps 272(%rdx), %xmm1
13368 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13369 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13370 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13371 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13372 ; AVX-NEXT:    vmovaps 288(%rdi), %ymm0
13373 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13374 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13375 ; AVX-NEXT:    vmovaps (%rsp), %xmm1 # 16-byte Reload
13376 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13377 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13378 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13379 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13380 ; AVX-NEXT:    vmovaps 288(%r8), %ymm0
13381 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13382 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13383 ; AVX-NEXT:    vmovaps 304(%rdx), %xmm1
13384 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13385 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13386 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13387 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13388 ; AVX-NEXT:    vmovaps 320(%rdi), %ymm0
13389 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13390 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13391 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13392 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13393 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13394 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13395 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13396 ; AVX-NEXT:    vmovaps 320(%r8), %ymm0
13397 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
13398 ; AVX-NEXT:    # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13399 ; AVX-NEXT:    vmovaps 336(%rdx), %xmm1
13400 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13401 ; AVX-NEXT:    # xmm1 = xmm1[0],mem[0]
13402 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13403 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13404 ; AVX-NEXT:    vmovaps 352(%rdi), %ymm0
13405 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm15[0],ymm0[2],ymm15[2]
13406 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 # 16-byte Reload
13407 ; AVX-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1, %xmm1 # 16-byte Folded Reload
13408 ; AVX-NEXT:    # xmm1 = xmm1[1],mem[1]
13409 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13410 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13411 ; AVX-NEXT:    vmovaps 352(%r8), %ymm0
13412 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm14[0],ymm0[2],ymm14[2]
13413 ; AVX-NEXT:    vmovaps 368(%rdx), %xmm1
13414 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm12[0]
13415 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13416 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13417 ; AVX-NEXT:    vmovaps 384(%rdi), %ymm0
13418 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm10[0],ymm0[2],ymm10[2]
13419 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm13[1],xmm11[1]
13420 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13421 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13422 ; AVX-NEXT:    vmovaps 384(%r8), %ymm0
13423 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm9[0],ymm0[2],ymm9[2]
13424 ; AVX-NEXT:    vmovaps 400(%rdx), %xmm1
13425 ; AVX-NEXT:    vmovlhps {{.*#+}} xmm1 = xmm1[0],xmm8[0]
13426 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3],ymm0[4,5,6,7]
13427 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13428 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm7[1],xmm4[1]
13429 ; AVX-NEXT:    vmovapd 416(%rdi), %ymm1
13430 ; AVX-NEXT:    vmovapd 416(%rsi), %ymm2
13431 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13432 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
13433 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13434 ; AVX-NEXT:    vmovapd 416(%r8), %ymm0
13435 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
13436 ; AVX-NEXT:    vmovapd 432(%rcx), %xmm1
13437 ; AVX-NEXT:    vmovapd 432(%rdx), %xmm3
13438 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm3 = xmm3[0],xmm1[0]
13439 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3]
13440 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13441 ; AVX-NEXT:    vmovapd 432(%rdi), %xmm0
13442 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],mem[2,3]
13443 ; AVX-NEXT:    vshufpd {{.*#+}} ymm3 = ymm2[0,0,3,2]
13444 ; AVX-NEXT:    vmovapd 416(%rax), %ymm2
13445 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm2[2,3],ymm3[2,3]
13446 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm3[0],ymm0[1],ymm3[2],ymm0[3]
13447 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13448 ; AVX-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13449 ; AVX-NEXT:    vmovaps 448(%rdi), %xmm4
13450 ; AVX-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm3
13451 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3],ymm3[4,5,6,7]
13452 ; AVX-NEXT:    vmovapd 448(%r8), %ymm3
13453 ; AVX-NEXT:    vinsertf128 $1, 448(%rax), %ymm3, %ymm7
13454 ; AVX-NEXT:    vblendps {{.*#+}} ymm0 = ymm7[0,1],ymm0[2,3],ymm7[4,5],ymm0[6,7]
13455 ; AVX-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13456 ; AVX-NEXT:    vmovapd 448(%rdi), %ymm0
13457 ; AVX-NEXT:    vmovapd 448(%rsi), %ymm7
13458 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
13459 ; AVX-NEXT:    vmovddup {{.*#+}} xmm8 = mem[0,0]
13460 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm8[0,1],ymm0[2,3]
13461 ; AVX-NEXT:    vmovapd 464(%rdi), %xmm8
13462 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm8[0,1],ymm5[2,3]
13463 ; AVX-NEXT:    vshufpd {{.*#+}} ymm7 = ymm7[0,0,3,2]
13464 ; AVX-NEXT:    vmovapd 448(%rax), %ymm10
13465 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm7 = ymm10[2,3],ymm7[2,3]
13466 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0],ymm5[1],ymm7[2],ymm5[3]
13467 ; AVX-NEXT:    vmovupd %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13468 ; AVX-NEXT:    vinsertf128 $1, %xmm6, %ymm0, %ymm5
13469 ; AVX-NEXT:    vmovddup {{.*#+}} xmm6 = mem[0,0]
13470 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm5[0,1],ymm6[2,3],ymm5[4,5,6,7]
13471 ; AVX-NEXT:    vmovapd 480(%r8), %ymm13
13472 ; AVX-NEXT:    vinsertf128 $1, 480(%rax), %ymm13, %ymm6
13473 ; AVX-NEXT:    vblendps {{.*#+}} ymm5 = ymm6[0,1],ymm5[2,3],ymm6[4,5],ymm5[6,7]
13474 ; AVX-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13475 ; AVX-NEXT:    vmovapd 480(%rdi), %ymm5
13476 ; AVX-NEXT:    vmovapd 480(%rsi), %ymm6
13477 ; AVX-NEXT:    vunpcklpd {{.*#+}} ymm5 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
13478 ; AVX-NEXT:    vmovddup {{.*#+}} xmm7 = mem[0,0]
13479 ; AVX-NEXT:    vblendpd {{.*#+}} ymm5 = ymm7[0,1],ymm5[2,3]
13480 ; AVX-NEXT:    vmovapd 496(%rdi), %xmm7
13481 ; AVX-NEXT:    vblendpd {{.*#+}} ymm7 = ymm7[0,1],mem[2,3]
13482 ; AVX-NEXT:    vshufpd {{.*#+}} ymm6 = ymm6[0,0,3,2]
13483 ; AVX-NEXT:    vmovapd 480(%rax), %ymm15
13484 ; AVX-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm15[2,3],ymm6[2,3]
13485 ; AVX-NEXT:    vblendpd {{.*#+}} ymm6 = ymm6[0],ymm7[1],ymm6[2],ymm7[3]
13486 ; AVX-NEXT:    vmovupd %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13487 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
13488 ; AVX-NEXT:    vbroadcastsd 440(%r9), %ymm6
13489 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm6[2,3]
13490 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3]
13491 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13492 ; AVX-NEXT:    vmovapd 464(%rcx), %xmm1
13493 ; AVX-NEXT:    vmovapd 464(%rdx), %xmm2
13494 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm2[0],xmm1[0]
13495 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1],ymm3[2,3]
13496 ; AVX-NEXT:    vbroadcastsd 464(%r9), %ymm3
13497 ; AVX-NEXT:    vblendpd {{.*#+}} ymm2 = ymm2[0,1,2],ymm3[3]
13498 ; AVX-NEXT:    vmovupd %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13499 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],mem[1]
13500 ; AVX-NEXT:    vbroadcastsd 472(%r9), %ymm2
13501 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm2[2,3]
13502 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0],ymm10[1],ymm0[2,3]
13503 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13504 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm1[0,1,2],ymm10[3]
13505 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13506 ; AVX-NEXT:    vmovapd 496(%rcx), %xmm0
13507 ; AVX-NEXT:    vmovapd 496(%rdx), %xmm1
13508 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm1[0],xmm0[0]
13509 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1],ymm13[2,3]
13510 ; AVX-NEXT:    vbroadcastsd 496(%r9), %ymm2
13511 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm1[0,1,2],ymm2[3]
13512 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13513 ; AVX-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],mem[1]
13514 ; AVX-NEXT:    vbroadcastsd 504(%r9), %ymm1
13515 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1],ymm1[2,3]
13516 ; AVX-NEXT:    vblendpd {{.*#+}} ymm1 = ymm5[0],ymm15[1],ymm5[2,3]
13517 ; AVX-NEXT:    vmovupd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13518 ; AVX-NEXT:    vblendpd {{.*#+}} ymm0 = ymm0[0,1,2],ymm15[3]
13519 ; AVX-NEXT:    vmovupd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13520 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13521 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm7 # 16-byte Folded Reload
13522 ; AVX-NEXT:    # xmm7 = xmm0[0],mem[0]
13523 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13524 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm6 # 16-byte Folded Reload
13525 ; AVX-NEXT:    # xmm6 = xmm0[0],mem[0]
13526 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13527 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm5 # 16-byte Folded Reload
13528 ; AVX-NEXT:    # xmm5 = xmm0[0],mem[0]
13529 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13530 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm3 # 16-byte Folded Reload
13531 ; AVX-NEXT:    # xmm3 = xmm0[0],mem[0]
13532 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13533 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm2 # 16-byte Folded Reload
13534 ; AVX-NEXT:    # xmm2 = xmm0[0],mem[0]
13535 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm4, %xmm4 # 16-byte Folded Reload
13536 ; AVX-NEXT:    # xmm4 = xmm4[0],mem[0]
13537 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13538 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm1 # 16-byte Folded Reload
13539 ; AVX-NEXT:    # xmm1 = xmm0[0],mem[0]
13540 ; AVX-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
13541 ; AVX-NEXT:    vunpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm0, %xmm0 # 16-byte Folded Reload
13542 ; AVX-NEXT:    # xmm0 = xmm0[0],mem[0]
13543 ; AVX-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13544 ; AVX-NEXT:    vmovaps 256(%rdx), %xmm14
13545 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm14 = xmm14[0],mem[0]
13546 ; AVX-NEXT:    vmovaps 128(%rdx), %xmm10
13547 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm10 = xmm10[0],mem[0]
13548 ; AVX-NEXT:    vmovaps 64(%rdx), %xmm12
13549 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm12 = xmm12[0],mem[0]
13550 ; AVX-NEXT:    vmovaps 192(%rdx), %xmm13
13551 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
13552 ; AVX-NEXT:    vmovaps 320(%rdx), %xmm15
13553 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm15[0],mem[0]
13554 ; AVX-NEXT:    vmovaps 448(%rdx), %xmm11
13555 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm11 = xmm11[0],mem[0]
13556 ; AVX-NEXT:    vmovaps 384(%rdx), %xmm9
13557 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm9 = xmm9[0],mem[0]
13558 ; AVX-NEXT:    vmovaps (%rdx), %xmm8
13559 ; AVX-NEXT:    vunpcklpd {{.*#+}} xmm8 = xmm8[0],mem[0]
13560 ; AVX-NEXT:    vmovaps %xmm8, 16(%rax)
13561 ; AVX-NEXT:    vmovaps %xmm0, (%rax)
13562 ; AVX-NEXT:    vmovaps %xmm9, 2704(%rax)
13563 ; AVX-NEXT:    vmovaps %xmm1, 2688(%rax)
13564 ; AVX-NEXT:    vmovaps %xmm11, 3152(%rax)
13565 ; AVX-NEXT:    vmovaps %xmm4, 3136(%rax)
13566 ; AVX-NEXT:    vmovaps %xmm15, 2256(%rax)
13567 ; AVX-NEXT:    vmovaps %xmm2, 2240(%rax)
13568 ; AVX-NEXT:    vmovaps %xmm13, 1360(%rax)
13569 ; AVX-NEXT:    vmovaps %xmm3, 1344(%rax)
13570 ; AVX-NEXT:    vmovaps %xmm12, 464(%rax)
13571 ; AVX-NEXT:    vmovaps %xmm5, 448(%rax)
13572 ; AVX-NEXT:    vmovaps %xmm10, 912(%rax)
13573 ; AVX-NEXT:    vmovaps %xmm6, 896(%rax)
13574 ; AVX-NEXT:    vmovaps %xmm14, 1808(%rax)
13575 ; AVX-NEXT:    vmovaps %xmm7, 1792(%rax)
13576 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13577 ; AVX-NEXT:    vmovaps %ymm0, 3520(%rax)
13578 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13579 ; AVX-NEXT:    vmovaps %ymm0, 3456(%rax)
13580 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13581 ; AVX-NEXT:    vmovaps %ymm0, 3392(%rax)
13582 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13583 ; AVX-NEXT:    vmovaps %ymm0, 3296(%rax)
13584 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13585 ; AVX-NEXT:    vmovaps %ymm0, 3232(%rax)
13586 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13587 ; AVX-NEXT:    vmovaps %ymm0, 3168(%rax)
13588 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13589 ; AVX-NEXT:    vmovaps %ymm0, 3072(%rax)
13590 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13591 ; AVX-NEXT:    vmovaps %ymm0, 3040(%rax)
13592 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13593 ; AVX-NEXT:    vmovaps %ymm0, 3008(%rax)
13594 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13595 ; AVX-NEXT:    vmovaps %ymm0, 2816(%rax)
13596 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13597 ; AVX-NEXT:    vmovaps %ymm0, 2784(%rax)
13598 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13599 ; AVX-NEXT:    vmovaps %ymm0, 2592(%rax)
13600 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13601 ; AVX-NEXT:    vmovaps %ymm0, 2560(%rax)
13602 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13603 ; AVX-NEXT:    vmovaps %ymm0, 2368(%rax)
13604 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13605 ; AVX-NEXT:    vmovaps %ymm0, 2336(%rax)
13606 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13607 ; AVX-NEXT:    vmovaps %ymm0, 2144(%rax)
13608 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13609 ; AVX-NEXT:    vmovaps %ymm0, 2112(%rax)
13610 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13611 ; AVX-NEXT:    vmovaps %ymm0, 1920(%rax)
13612 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13613 ; AVX-NEXT:    vmovaps %ymm0, 1888(%rax)
13614 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13615 ; AVX-NEXT:    vmovaps %ymm0, 1696(%rax)
13616 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13617 ; AVX-NEXT:    vmovaps %ymm0, 1664(%rax)
13618 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13619 ; AVX-NEXT:    vmovaps %ymm0, 1472(%rax)
13620 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13621 ; AVX-NEXT:    vmovaps %ymm0, 1440(%rax)
13622 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13623 ; AVX-NEXT:    vmovaps %ymm0, 1248(%rax)
13624 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13625 ; AVX-NEXT:    vmovaps %ymm0, 1216(%rax)
13626 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13627 ; AVX-NEXT:    vmovaps %ymm0, 1024(%rax)
13628 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13629 ; AVX-NEXT:    vmovaps %ymm0, 992(%rax)
13630 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13631 ; AVX-NEXT:    vmovaps %ymm0, 800(%rax)
13632 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13633 ; AVX-NEXT:    vmovaps %ymm0, 768(%rax)
13634 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13635 ; AVX-NEXT:    vmovaps %ymm0, 576(%rax)
13636 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13637 ; AVX-NEXT:    vmovaps %ymm0, 544(%rax)
13638 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13639 ; AVX-NEXT:    vmovaps %ymm0, 352(%rax)
13640 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13641 ; AVX-NEXT:    vmovaps %ymm0, 320(%rax)
13642 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13643 ; AVX-NEXT:    vmovaps %ymm0, 128(%rax)
13644 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13645 ; AVX-NEXT:    vmovaps %ymm0, 96(%rax)
13646 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13647 ; AVX-NEXT:    vmovaps %ymm0, 3552(%rax)
13648 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13649 ; AVX-NEXT:    vmovaps %ymm0, 3488(%rax)
13650 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13651 ; AVX-NEXT:    vmovaps %ymm0, 3424(%rax)
13652 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13653 ; AVX-NEXT:    vmovaps %ymm0, 3360(%rax)
13654 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13655 ; AVX-NEXT:    vmovaps %ymm0, 3328(%rax)
13656 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13657 ; AVX-NEXT:    vmovaps %ymm0, 3264(%rax)
13658 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13659 ; AVX-NEXT:    vmovaps %ymm0, 3200(%rax)
13660 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13661 ; AVX-NEXT:    vmovaps %ymm0, 3104(%rax)
13662 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13663 ; AVX-NEXT:    vmovaps %ymm0, 2976(%rax)
13664 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13665 ; AVX-NEXT:    vmovaps %ymm0, 2944(%rax)
13666 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13667 ; AVX-NEXT:    vmovaps %ymm0, 2912(%rax)
13668 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13669 ; AVX-NEXT:    vmovaps %ymm0, 2880(%rax)
13670 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13671 ; AVX-NEXT:    vmovaps %ymm0, 2848(%rax)
13672 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13673 ; AVX-NEXT:    vmovaps %ymm0, 2752(%rax)
13674 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13675 ; AVX-NEXT:    vmovaps %ymm0, 2720(%rax)
13676 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13677 ; AVX-NEXT:    vmovaps %ymm0, 2656(%rax)
13678 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13679 ; AVX-NEXT:    vmovaps %ymm0, 2624(%rax)
13680 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13681 ; AVX-NEXT:    vmovaps %ymm0, 2528(%rax)
13682 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13683 ; AVX-NEXT:    vmovaps %ymm0, 2496(%rax)
13684 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13685 ; AVX-NEXT:    vmovaps %ymm0, 2464(%rax)
13686 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13687 ; AVX-NEXT:    vmovaps %ymm0, 2432(%rax)
13688 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13689 ; AVX-NEXT:    vmovaps %ymm0, 2400(%rax)
13690 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13691 ; AVX-NEXT:    vmovaps %ymm0, 2304(%rax)
13692 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13693 ; AVX-NEXT:    vmovaps %ymm0, 2272(%rax)
13694 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13695 ; AVX-NEXT:    vmovaps %ymm0, 2208(%rax)
13696 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13697 ; AVX-NEXT:    vmovaps %ymm0, 2176(%rax)
13698 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13699 ; AVX-NEXT:    vmovaps %ymm0, 2080(%rax)
13700 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13701 ; AVX-NEXT:    vmovaps %ymm0, 2048(%rax)
13702 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13703 ; AVX-NEXT:    vmovaps %ymm0, 2016(%rax)
13704 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13705 ; AVX-NEXT:    vmovaps %ymm0, 1984(%rax)
13706 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13707 ; AVX-NEXT:    vmovaps %ymm0, 1952(%rax)
13708 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13709 ; AVX-NEXT:    vmovaps %ymm0, 1856(%rax)
13710 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13711 ; AVX-NEXT:    vmovaps %ymm0, 1824(%rax)
13712 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13713 ; AVX-NEXT:    vmovaps %ymm0, 1760(%rax)
13714 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13715 ; AVX-NEXT:    vmovaps %ymm0, 1728(%rax)
13716 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13717 ; AVX-NEXT:    vmovaps %ymm0, 1632(%rax)
13718 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13719 ; AVX-NEXT:    vmovaps %ymm0, 1600(%rax)
13720 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13721 ; AVX-NEXT:    vmovaps %ymm0, 1568(%rax)
13722 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13723 ; AVX-NEXT:    vmovaps %ymm0, 1536(%rax)
13724 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13725 ; AVX-NEXT:    vmovaps %ymm0, 1504(%rax)
13726 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13727 ; AVX-NEXT:    vmovaps %ymm0, 1408(%rax)
13728 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13729 ; AVX-NEXT:    vmovaps %ymm0, 1376(%rax)
13730 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13731 ; AVX-NEXT:    vmovaps %ymm0, 1312(%rax)
13732 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13733 ; AVX-NEXT:    vmovaps %ymm0, 1280(%rax)
13734 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13735 ; AVX-NEXT:    vmovaps %ymm0, 1184(%rax)
13736 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13737 ; AVX-NEXT:    vmovaps %ymm0, 1152(%rax)
13738 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13739 ; AVX-NEXT:    vmovaps %ymm0, 1120(%rax)
13740 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13741 ; AVX-NEXT:    vmovaps %ymm0, 1088(%rax)
13742 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13743 ; AVX-NEXT:    vmovaps %ymm0, 1056(%rax)
13744 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13745 ; AVX-NEXT:    vmovaps %ymm0, 960(%rax)
13746 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13747 ; AVX-NEXT:    vmovaps %ymm0, 928(%rax)
13748 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13749 ; AVX-NEXT:    vmovaps %ymm0, 864(%rax)
13750 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13751 ; AVX-NEXT:    vmovaps %ymm0, 832(%rax)
13752 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13753 ; AVX-NEXT:    vmovaps %ymm0, 736(%rax)
13754 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13755 ; AVX-NEXT:    vmovaps %ymm0, 704(%rax)
13756 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13757 ; AVX-NEXT:    vmovaps %ymm0, 672(%rax)
13758 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13759 ; AVX-NEXT:    vmovaps %ymm0, 640(%rax)
13760 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13761 ; AVX-NEXT:    vmovaps %ymm0, 608(%rax)
13762 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13763 ; AVX-NEXT:    vmovaps %ymm0, 512(%rax)
13764 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13765 ; AVX-NEXT:    vmovaps %ymm0, 480(%rax)
13766 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13767 ; AVX-NEXT:    vmovaps %ymm0, 416(%rax)
13768 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13769 ; AVX-NEXT:    vmovaps %ymm0, 384(%rax)
13770 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13771 ; AVX-NEXT:    vmovaps %ymm0, 288(%rax)
13772 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13773 ; AVX-NEXT:    vmovaps %ymm0, 256(%rax)
13774 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13775 ; AVX-NEXT:    vmovaps %ymm0, 224(%rax)
13776 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13777 ; AVX-NEXT:    vmovaps %ymm0, 192(%rax)
13778 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13779 ; AVX-NEXT:    vmovaps %ymm0, 160(%rax)
13780 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13781 ; AVX-NEXT:    vmovaps %ymm0, 64(%rax)
13782 ; AVX-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
13783 ; AVX-NEXT:    vmovaps %ymm0, 32(%rax)
13784 ; AVX-NEXT:    addq $3816, %rsp # imm = 0xEE8
13785 ; AVX-NEXT:    vzeroupper
13786 ; AVX-NEXT:    retq
13788 ; AVX2-LABEL: store_i64_stride7_vf64:
13789 ; AVX2:       # %bb.0:
13790 ; AVX2-NEXT:    subq $3880, %rsp # imm = 0xF28
13791 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rax
13792 ; AVX2-NEXT:    vmovaps (%rdi), %ymm0
13793 ; AVX2-NEXT:    vmovaps (%rsi), %ymm1
13794 ; AVX2-NEXT:    vmovaps (%rdx), %ymm2
13795 ; AVX2-NEXT:    vmovaps (%r8), %ymm5
13796 ; AVX2-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13797 ; AVX2-NEXT:    vmovaps (%r9), %ymm6
13798 ; AVX2-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13799 ; AVX2-NEXT:    vmovaps (%rsi), %xmm3
13800 ; AVX2-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
13801 ; AVX2-NEXT:    vmovaps (%rdi), %xmm4
13802 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13803 ; AVX2-NEXT:    vmovaps 32(%rdi), %xmm7
13804 ; AVX2-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13805 ; AVX2-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
13806 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13807 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13808 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
13809 ; AVX2-NEXT:    vbroadcastsd 8(%rcx), %ymm4
13810 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
13811 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
13812 ; AVX2-NEXT:    vmovaps (%r8), %xmm4
13813 ; AVX2-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13814 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
13815 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
13816 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13817 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
13818 ; AVX2-NEXT:    vmovaps (%rax), %xmm8
13819 ; AVX2-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
13820 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
13821 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
13822 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
13823 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13824 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
13825 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],mem[0],ymm2[2],mem[2]
13826 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
13827 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13828 ; AVX2-NEXT:    vmovaps 16(%rax), %xmm3
13829 ; AVX2-NEXT:    vmovaps 32(%rax), %xmm4
13830 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
13831 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
13832 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
13833 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
13834 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13835 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
13836 ; AVX2-NEXT:    vmovaps 32(%r8), %xmm1
13837 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
13838 ; AVX2-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
13839 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
13840 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13841 ; AVX2-NEXT:    vmovaps 32(%rdx), %xmm2
13842 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13843 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13844 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
13845 ; AVX2-NEXT:    vbroadcastsd 40(%rcx), %ymm2
13846 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
13847 ; AVX2-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
13848 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
13849 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13850 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13851 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
13852 ; AVX2-NEXT:    vmovaps 32(%rdi), %ymm1
13853 ; AVX2-NEXT:    vmovaps 32(%rsi), %ymm2
13854 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13855 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
13856 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13857 ; AVX2-NEXT:    vmovaps 32(%rdx), %ymm0
13858 ; AVX2-NEXT:    vmovaps 32(%r8), %ymm4
13859 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13860 ; AVX2-NEXT:    vmovaps 32(%r9), %ymm3
13861 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13862 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13863 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13864 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
13865 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13866 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
13867 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13868 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13869 ; AVX2-NEXT:    vmovaps 48(%rax), %xmm1
13870 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13871 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13872 ; AVX2-NEXT:    vmovaps 64(%rsi), %xmm0
13873 ; AVX2-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
13874 ; AVX2-NEXT:    vmovaps 64(%rdi), %xmm1
13875 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13876 ; AVX2-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
13877 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
13878 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13879 ; AVX2-NEXT:    vmovaps 64(%rdx), %ymm0
13880 ; AVX2-NEXT:    vbroadcastsd 72(%rcx), %ymm1
13881 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13882 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
13883 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
13884 ; AVX2-NEXT:    vmovaps 64(%r8), %xmm2
13885 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13886 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13887 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
13888 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13889 ; AVX2-NEXT:    vmovaps 64(%rax), %xmm2
13890 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13891 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13892 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
13893 ; AVX2-NEXT:    vmovaps 64(%rdi), %ymm2
13894 ; AVX2-NEXT:    vmovaps 64(%rsi), %ymm3
13895 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
13896 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
13897 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13898 ; AVX2-NEXT:    vmovaps 64(%r8), %ymm4
13899 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13900 ; AVX2-NEXT:    vmovaps 64(%r9), %ymm1
13901 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13902 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
13903 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13904 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
13905 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13906 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
13907 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13908 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13909 ; AVX2-NEXT:    vmovaps 80(%rax), %xmm1
13910 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13911 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13912 ; AVX2-NEXT:    vmovaps 96(%r8), %xmm0
13913 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
13914 ; AVX2-NEXT:    vmovaps 96(%rax), %xmm2
13915 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13916 ; AVX2-NEXT:    vmovaps 96(%rdi), %xmm3
13917 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13918 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
13919 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
13920 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13921 ; AVX2-NEXT:    vmovaps 96(%rdx), %xmm3
13922 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13923 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13924 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
13925 ; AVX2-NEXT:    vbroadcastsd 104(%rcx), %ymm3
13926 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
13927 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
13928 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13929 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13930 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
13931 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
13932 ; AVX2-NEXT:    vmovaps 96(%rdi), %ymm1
13933 ; AVX2-NEXT:    vmovaps 96(%rsi), %ymm2
13934 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
13935 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
13936 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13937 ; AVX2-NEXT:    vmovaps 96(%rdx), %ymm0
13938 ; AVX2-NEXT:    vmovaps 96(%r8), %ymm4
13939 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13940 ; AVX2-NEXT:    vmovaps 96(%r9), %ymm3
13941 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13942 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
13943 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13944 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
13945 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13946 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
13947 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13948 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13949 ; AVX2-NEXT:    vmovaps 112(%rax), %xmm1
13950 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13951 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13952 ; AVX2-NEXT:    vmovaps 128(%rsi), %xmm0
13953 ; AVX2-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
13954 ; AVX2-NEXT:    vmovaps 128(%rdi), %xmm1
13955 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13956 ; AVX2-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
13957 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
13958 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13959 ; AVX2-NEXT:    vmovaps 128(%rdx), %ymm0
13960 ; AVX2-NEXT:    vbroadcastsd 136(%rcx), %ymm1
13961 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
13962 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
13963 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
13964 ; AVX2-NEXT:    vmovaps 128(%r8), %xmm2
13965 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13966 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
13967 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
13968 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13969 ; AVX2-NEXT:    vmovaps 128(%rax), %xmm2
13970 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13971 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
13972 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
13973 ; AVX2-NEXT:    vmovaps 128(%rdi), %ymm2
13974 ; AVX2-NEXT:    vmovaps 128(%rsi), %ymm3
13975 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
13976 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
13977 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13978 ; AVX2-NEXT:    vmovaps 128(%r8), %ymm4
13979 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13980 ; AVX2-NEXT:    vmovaps 128(%r9), %ymm1
13981 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13982 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
13983 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
13984 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
13985 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13986 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
13987 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
13988 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
13989 ; AVX2-NEXT:    vmovaps 144(%rax), %xmm1
13990 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
13991 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
13992 ; AVX2-NEXT:    vmovaps 160(%r8), %xmm0
13993 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
13994 ; AVX2-NEXT:    vmovaps 160(%rax), %xmm2
13995 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
13996 ; AVX2-NEXT:    vmovaps 160(%rdi), %xmm3
13997 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
13998 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
13999 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14000 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14001 ; AVX2-NEXT:    vmovaps 160(%rdx), %xmm3
14002 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14003 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14004 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14005 ; AVX2-NEXT:    vbroadcastsd 168(%rcx), %ymm3
14006 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14007 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14008 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14009 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14010 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14011 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14012 ; AVX2-NEXT:    vmovaps 160(%rdi), %ymm1
14013 ; AVX2-NEXT:    vmovaps 160(%rsi), %ymm2
14014 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14015 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14016 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14017 ; AVX2-NEXT:    vmovaps 160(%rdx), %ymm0
14018 ; AVX2-NEXT:    vmovaps 160(%r8), %ymm4
14019 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14020 ; AVX2-NEXT:    vmovaps 160(%r9), %ymm3
14021 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14022 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14023 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14024 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14025 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14026 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14027 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14028 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14029 ; AVX2-NEXT:    vmovaps 176(%rax), %xmm1
14030 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14031 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14032 ; AVX2-NEXT:    vmovaps 192(%rsi), %xmm0
14033 ; AVX2-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
14034 ; AVX2-NEXT:    vmovaps 192(%rdi), %xmm1
14035 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14036 ; AVX2-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
14037 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14038 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14039 ; AVX2-NEXT:    vmovaps 192(%rdx), %ymm0
14040 ; AVX2-NEXT:    vbroadcastsd 200(%rcx), %ymm1
14041 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14042 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14043 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14044 ; AVX2-NEXT:    vmovaps 192(%r8), %xmm2
14045 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14046 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14047 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14048 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14049 ; AVX2-NEXT:    vmovaps 192(%rax), %xmm2
14050 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14051 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14052 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14053 ; AVX2-NEXT:    vmovaps 192(%rdi), %ymm2
14054 ; AVX2-NEXT:    vmovaps 192(%rsi), %ymm3
14055 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14056 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14057 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14058 ; AVX2-NEXT:    vmovaps 192(%r8), %ymm4
14059 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14060 ; AVX2-NEXT:    vmovaps 192(%r9), %ymm1
14061 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14062 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
14063 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14064 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14065 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14066 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14067 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14068 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14069 ; AVX2-NEXT:    vmovaps 208(%rax), %xmm1
14070 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14071 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14072 ; AVX2-NEXT:    vmovaps 224(%r8), %xmm0
14073 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14074 ; AVX2-NEXT:    vmovaps 224(%rax), %xmm2
14075 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14076 ; AVX2-NEXT:    vmovaps 224(%rdi), %xmm3
14077 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14078 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14079 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14080 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14081 ; AVX2-NEXT:    vmovaps 224(%rdx), %xmm3
14082 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14083 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14084 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14085 ; AVX2-NEXT:    vbroadcastsd 232(%rcx), %ymm3
14086 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14087 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14088 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14089 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14090 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14091 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14092 ; AVX2-NEXT:    vmovaps 224(%rdi), %ymm1
14093 ; AVX2-NEXT:    vmovaps 224(%rsi), %ymm2
14094 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14095 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14096 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14097 ; AVX2-NEXT:    vmovaps 224(%rdx), %ymm0
14098 ; AVX2-NEXT:    vmovaps 224(%r8), %ymm4
14099 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14100 ; AVX2-NEXT:    vmovaps 224(%r9), %ymm3
14101 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14102 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14103 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14104 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14105 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14106 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14107 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14108 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14109 ; AVX2-NEXT:    vmovaps 240(%rax), %xmm1
14110 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14111 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14112 ; AVX2-NEXT:    vmovaps 256(%rsi), %xmm0
14113 ; AVX2-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
14114 ; AVX2-NEXT:    vmovaps 256(%rdi), %xmm1
14115 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14116 ; AVX2-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
14117 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14118 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14119 ; AVX2-NEXT:    vmovaps 256(%rdx), %ymm0
14120 ; AVX2-NEXT:    vbroadcastsd 264(%rcx), %ymm1
14121 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14122 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14123 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14124 ; AVX2-NEXT:    vmovaps 256(%r8), %xmm2
14125 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14126 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14127 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14128 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14129 ; AVX2-NEXT:    vmovaps 256(%rax), %xmm2
14130 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14131 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14132 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14133 ; AVX2-NEXT:    vmovaps 256(%rdi), %ymm2
14134 ; AVX2-NEXT:    vmovaps 256(%rsi), %ymm3
14135 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14136 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14137 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14138 ; AVX2-NEXT:    vmovaps 256(%r8), %ymm4
14139 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14140 ; AVX2-NEXT:    vmovaps 256(%r9), %ymm1
14141 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14142 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
14143 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14144 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14145 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14146 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14147 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14148 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14149 ; AVX2-NEXT:    vmovaps 272(%rax), %xmm1
14150 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14151 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14152 ; AVX2-NEXT:    vmovaps 288(%r8), %xmm0
14153 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14154 ; AVX2-NEXT:    vmovaps 288(%rax), %xmm2
14155 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14156 ; AVX2-NEXT:    vmovaps 288(%rdi), %xmm3
14157 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14158 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14159 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14160 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14161 ; AVX2-NEXT:    vmovaps 288(%rdx), %xmm3
14162 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14163 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14164 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14165 ; AVX2-NEXT:    vbroadcastsd 296(%rcx), %ymm3
14166 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14167 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14168 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14169 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14170 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14171 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14172 ; AVX2-NEXT:    vmovaps 288(%rdi), %ymm1
14173 ; AVX2-NEXT:    vmovaps 288(%rsi), %ymm2
14174 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14175 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14176 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14177 ; AVX2-NEXT:    vmovaps 288(%rdx), %ymm0
14178 ; AVX2-NEXT:    vmovaps 288(%r8), %ymm4
14179 ; AVX2-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14180 ; AVX2-NEXT:    vmovaps 288(%r9), %ymm3
14181 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14182 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14183 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14184 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14185 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14186 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14187 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14188 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14189 ; AVX2-NEXT:    vmovaps 304(%rax), %xmm1
14190 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14191 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14192 ; AVX2-NEXT:    vmovaps 320(%rsi), %xmm0
14193 ; AVX2-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
14194 ; AVX2-NEXT:    vmovaps 320(%rdi), %xmm1
14195 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14196 ; AVX2-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
14197 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14198 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14199 ; AVX2-NEXT:    vmovaps 320(%rdx), %ymm0
14200 ; AVX2-NEXT:    vbroadcastsd 328(%rcx), %ymm1
14201 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14202 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14203 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14204 ; AVX2-NEXT:    vmovaps 320(%r8), %xmm2
14205 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14206 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14207 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14208 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14209 ; AVX2-NEXT:    vmovaps 320(%rax), %xmm10
14210 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14211 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
14212 ; AVX2-NEXT:    vmovaps 320(%rdi), %ymm2
14213 ; AVX2-NEXT:    vmovaps 320(%rsi), %ymm3
14214 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14215 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14216 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14217 ; AVX2-NEXT:    vmovaps 320(%r8), %ymm9
14218 ; AVX2-NEXT:    vmovaps 320(%r9), %ymm1
14219 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14220 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
14221 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14222 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14223 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14224 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14225 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14226 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14227 ; AVX2-NEXT:    vmovaps 336(%rax), %xmm1
14228 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14229 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14230 ; AVX2-NEXT:    vmovaps 352(%r8), %xmm0
14231 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14232 ; AVX2-NEXT:    vmovaps 352(%rax), %xmm2
14233 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14234 ; AVX2-NEXT:    vmovaps 352(%rdi), %xmm3
14235 ; AVX2-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14236 ; AVX2-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14237 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14238 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14239 ; AVX2-NEXT:    vmovaps 352(%rdx), %xmm7
14240 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14241 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
14242 ; AVX2-NEXT:    vbroadcastsd 360(%rcx), %ymm3
14243 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14244 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14245 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14246 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14247 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14248 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14249 ; AVX2-NEXT:    vmovaps 352(%rdi), %ymm1
14250 ; AVX2-NEXT:    vmovaps 352(%rsi), %ymm2
14251 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14252 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14253 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14254 ; AVX2-NEXT:    vmovaps 352(%rdx), %ymm0
14255 ; AVX2-NEXT:    vmovaps 352(%r8), %ymm5
14256 ; AVX2-NEXT:    vmovaps 352(%r9), %ymm3
14257 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14258 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
14259 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14260 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14261 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14262 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14263 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14264 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14265 ; AVX2-NEXT:    vmovaps 368(%rax), %xmm1
14266 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14267 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14268 ; AVX2-NEXT:    vmovaps 384(%rsi), %xmm0
14269 ; AVX2-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
14270 ; AVX2-NEXT:    vmovaps 384(%rdi), %xmm1
14271 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14272 ; AVX2-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
14273 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14274 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14275 ; AVX2-NEXT:    vmovaps 384(%rdx), %ymm0
14276 ; AVX2-NEXT:    vbroadcastsd 392(%rcx), %ymm1
14277 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14278 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14279 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14280 ; AVX2-NEXT:    vmovaps 384(%r8), %xmm2
14281 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14282 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14283 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14284 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14285 ; AVX2-NEXT:    vmovaps 384(%rax), %xmm2
14286 ; AVX2-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14287 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14288 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14289 ; AVX2-NEXT:    vmovaps 384(%rdi), %ymm2
14290 ; AVX2-NEXT:    vmovaps 384(%rsi), %ymm3
14291 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14292 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14293 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14294 ; AVX2-NEXT:    vmovaps 384(%r8), %ymm15
14295 ; AVX2-NEXT:    vmovaps 384(%r9), %ymm1
14296 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14297 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
14298 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14299 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14300 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14301 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14302 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14303 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14304 ; AVX2-NEXT:    vmovaps 400(%rax), %xmm1
14305 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14306 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14307 ; AVX2-NEXT:    vmovaps 416(%r8), %xmm0
14308 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14309 ; AVX2-NEXT:    vmovaps 416(%rax), %xmm2
14310 ; AVX2-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14311 ; AVX2-NEXT:    vmovaps 416(%rdi), %xmm13
14312 ; AVX2-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
14313 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14314 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14315 ; AVX2-NEXT:    vmovaps 416(%rdx), %xmm14
14316 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14317 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
14318 ; AVX2-NEXT:    vbroadcastsd 424(%rcx), %ymm3
14319 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14320 ; AVX2-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14321 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14322 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14323 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14324 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14325 ; AVX2-NEXT:    vmovaps 416(%rdi), %ymm1
14326 ; AVX2-NEXT:    vmovaps 416(%rsi), %ymm2
14327 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14328 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14329 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14330 ; AVX2-NEXT:    vmovaps 416(%r8), %ymm0
14331 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
14332 ; AVX2-NEXT:    vmovaps 416(%rdx), %ymm3
14333 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
14334 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
14335 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14336 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14337 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14338 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
14339 ; AVX2-NEXT:    vmovaps 432(%rax), %xmm1
14340 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14341 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14342 ; AVX2-NEXT:    vmovaps 448(%rsi), %xmm0
14343 ; AVX2-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
14344 ; AVX2-NEXT:    vmovaps 448(%rdi), %xmm1
14345 ; AVX2-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
14346 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14347 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14348 ; AVX2-NEXT:    vmovaps 448(%rdi), %ymm0
14349 ; AVX2-NEXT:    vmovaps 448(%r8), %ymm11
14350 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14351 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
14352 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
14353 ; AVX2-NEXT:    vbroadcastsd 448(%rax), %ymm2
14354 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
14355 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14356 ; AVX2-NEXT:    vmovaps 448(%rdx), %ymm2
14357 ; AVX2-NEXT:    vbroadcastsd 456(%rcx), %ymm1
14358 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
14359 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14360 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
14361 ; AVX2-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
14362 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14363 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14364 ; AVX2-NEXT:    vmovaps 448(%rsi), %ymm1
14365 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14366 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14367 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
14368 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14369 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14370 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14371 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
14372 ; AVX2-NEXT:    vmovaps 464(%rax), %xmm1
14373 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14374 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14375 ; AVX2-NEXT:    vmovaps 480(%rdi), %ymm0
14376 ; AVX2-NEXT:    vmovaps 480(%r8), %ymm12
14377 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14378 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
14379 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
14380 ; AVX2-NEXT:    vbroadcastsd 480(%rax), %ymm3
14381 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
14382 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14383 ; AVX2-NEXT:    vmovaps 480(%rdx), %xmm8
14384 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14385 ; AVX2-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
14386 ; AVX2-NEXT:    vbroadcastsd 488(%rcx), %ymm3
14387 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14388 ; AVX2-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
14389 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14390 ; AVX2-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14391 ; AVX2-NEXT:    vmovaps 480(%rsi), %ymm1
14392 ; AVX2-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14393 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14394 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
14395 ; AVX2-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14396 ; AVX2-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14397 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14398 ; AVX2-NEXT:    vmovaps 480(%rdx), %ymm6
14399 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
14400 ; AVX2-NEXT:    vmovaps 496(%rax), %xmm1
14401 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14402 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14403 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14404 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14405 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14406 ; AVX2-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
14407 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14408 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14409 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14410 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14411 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14412 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14413 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14414 ; AVX2-NEXT:    vbroadcastsd 24(%rcx), %ymm1
14415 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14416 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14417 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14418 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14419 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14420 ; AVX2-NEXT:    vbroadcastsd 32(%rcx), %ymm1
14421 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14422 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14423 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14424 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14425 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14426 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14427 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14428 ; AVX2-NEXT:    vbroadcastsd 56(%rcx), %ymm1
14429 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14430 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14431 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14432 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14433 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14434 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14435 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14436 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14437 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14438 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14439 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14440 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14441 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14442 ; AVX2-NEXT:    vbroadcastsd 88(%rcx), %ymm1
14443 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14444 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14445 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14446 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14447 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14448 ; AVX2-NEXT:    vbroadcastsd 96(%rcx), %ymm1
14449 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14450 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14451 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14452 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14453 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14454 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14455 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14456 ; AVX2-NEXT:    vbroadcastsd 120(%rcx), %ymm1
14457 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14458 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14459 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14460 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14461 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14462 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14463 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14464 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14465 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14466 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14467 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14468 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14469 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14470 ; AVX2-NEXT:    vbroadcastsd 152(%rcx), %ymm1
14471 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14472 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14473 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14474 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14475 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14476 ; AVX2-NEXT:    vbroadcastsd 160(%rcx), %ymm1
14477 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14478 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14479 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14480 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14481 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14482 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14483 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14484 ; AVX2-NEXT:    vbroadcastsd 184(%rcx), %ymm1
14485 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14486 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14487 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14488 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14489 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14490 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14491 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14492 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14493 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14494 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14495 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14496 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14497 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14498 ; AVX2-NEXT:    vbroadcastsd 216(%rcx), %ymm1
14499 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14500 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14501 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14502 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14503 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14504 ; AVX2-NEXT:    vbroadcastsd 224(%rcx), %ymm1
14505 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14506 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14507 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14508 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14509 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14510 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14511 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14512 ; AVX2-NEXT:    vbroadcastsd 248(%rcx), %ymm1
14513 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14514 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14515 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14516 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14517 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14518 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14519 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14520 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14521 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14522 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14523 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14524 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14525 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14526 ; AVX2-NEXT:    vbroadcastsd 280(%rcx), %ymm1
14527 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14528 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14529 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14530 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14531 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14532 ; AVX2-NEXT:    vbroadcastsd 288(%rcx), %ymm1
14533 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14534 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14535 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14536 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
14537 ; AVX2-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
14538 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14539 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14540 ; AVX2-NEXT:    vbroadcastsd 312(%rcx), %ymm1
14541 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14542 ; AVX2-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14543 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14544 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14545 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14546 ; AVX2-NEXT:    vbroadcastsd %xmm10, %ymm1
14547 ; AVX2-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14548 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
14549 ; AVX2-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
14550 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14551 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14552 ; AVX2-NEXT:    vbroadcastsd 344(%rcx), %ymm1
14553 ; AVX2-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14554 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14555 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14556 ; AVX2-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
14557 ; AVX2-NEXT:    vbroadcastsd 352(%rcx), %ymm1
14558 ; AVX2-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14559 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
14560 ; AVX2-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
14561 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14562 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14563 ; AVX2-NEXT:    vbroadcastsd 376(%rcx), %ymm1
14564 ; AVX2-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14565 ; AVX2-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
14566 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
14567 ; AVX2-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
14568 ; AVX2-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
14569 ; AVX2-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
14570 ; AVX2-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
14571 ; AVX2-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
14572 ; AVX2-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14573 ; AVX2-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
14574 ; AVX2-NEXT:    vbroadcastsd 408(%rcx), %ymm15
14575 ; AVX2-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
14576 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
14577 ; AVX2-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
14578 ; AVX2-NEXT:    vbroadcastsd 416(%rcx), %ymm15
14579 ; AVX2-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
14580 ; AVX2-NEXT:    vbroadcastsd 440(%rcx), %ymm15
14581 ; AVX2-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
14582 ; AVX2-NEXT:    vbroadcastsd 440(%r9), %ymm13
14583 ; AVX2-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
14584 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
14585 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
14586 ; AVX2-NEXT:    vbroadcastsd 464(%r9), %ymm11
14587 ; AVX2-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
14588 ; AVX2-NEXT:    vbroadcastsd 472(%rcx), %ymm11
14589 ; AVX2-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
14590 ; AVX2-NEXT:    vbroadcastsd 472(%r9), %ymm13
14591 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
14592 ; AVX2-NEXT:    vmovaps 448(%rax), %ymm0
14593 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
14594 ; AVX2-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
14595 ; AVX2-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
14596 ; AVX2-NEXT:    vmovaps 480(%rdi), %xmm13
14597 ; AVX2-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
14598 ; AVX2-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
14599 ; AVX2-NEXT:    vbroadcastsd 480(%rcx), %ymm13
14600 ; AVX2-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
14601 ; AVX2-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
14602 ; AVX2-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
14603 ; AVX2-NEXT:    vbroadcastsd 496(%r9), %ymm12
14604 ; AVX2-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
14605 ; AVX2-NEXT:    vbroadcastsd 504(%rcx), %ymm12
14606 ; AVX2-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
14607 ; AVX2-NEXT:    vbroadcastsd 504(%r9), %ymm13
14608 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
14609 ; AVX2-NEXT:    vmovaps 480(%rax), %ymm13
14610 ; AVX2-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
14611 ; AVX2-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
14612 ; AVX2-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
14613 ; AVX2-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
14614 ; AVX2-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
14615 ; AVX2-NEXT:    vmovaps %ymm12, 3552(%rcx)
14616 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
14617 ; AVX2-NEXT:    vmovaps %ymm12, 3520(%rcx)
14618 ; AVX2-NEXT:    vmovaps %ymm6, 3488(%rcx)
14619 ; AVX2-NEXT:    vmovaps %ymm0, 3456(%rcx)
14620 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14621 ; AVX2-NEXT:    vmovaps %ymm0, 3424(%rcx)
14622 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14623 ; AVX2-NEXT:    vmovaps %ymm0, 3392(%rcx)
14624 ; AVX2-NEXT:    vmovaps %ymm8, 3360(%rcx)
14625 ; AVX2-NEXT:    vmovaps %ymm1, 3328(%rcx)
14626 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14627 ; AVX2-NEXT:    vmovaps %ymm0, 3296(%rcx)
14628 ; AVX2-NEXT:    vmovaps %ymm2, 3264(%rcx)
14629 ; AVX2-NEXT:    vmovaps %ymm11, 3232(%rcx)
14630 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14631 ; AVX2-NEXT:    vmovaps %ymm0, 3200(%rcx)
14632 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14633 ; AVX2-NEXT:    vmovaps %ymm0, 3168(%rcx)
14634 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14635 ; AVX2-NEXT:    vmovaps %ymm0, 3136(%rcx)
14636 ; AVX2-NEXT:    vmovaps %ymm13, 3104(%rcx)
14637 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14638 ; AVX2-NEXT:    vmovaps %ymm0, 3072(%rcx)
14639 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14640 ; AVX2-NEXT:    vmovaps %ymm0, 3040(%rcx)
14641 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14642 ; AVX2-NEXT:    vmovaps %ymm0, 3008(%rcx)
14643 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14644 ; AVX2-NEXT:    vmovaps %ymm0, 2976(%rcx)
14645 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14646 ; AVX2-NEXT:    vmovaps %ymm0, 2944(%rcx)
14647 ; AVX2-NEXT:    vmovaps %ymm14, 2912(%rcx)
14648 ; AVX2-NEXT:    vmovaps %ymm3, 2880(%rcx)
14649 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14650 ; AVX2-NEXT:    vmovaps %ymm0, 2848(%rcx)
14651 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14652 ; AVX2-NEXT:    vmovaps %ymm0, 2816(%rcx)
14653 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14654 ; AVX2-NEXT:    vmovaps %ymm0, 2784(%rcx)
14655 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14656 ; AVX2-NEXT:    vmovaps %ymm0, 2752(%rcx)
14657 ; AVX2-NEXT:    vmovaps %ymm4, 2720(%rcx)
14658 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14659 ; AVX2-NEXT:    vmovaps %ymm0, 2688(%rcx)
14660 ; AVX2-NEXT:    vmovaps %ymm5, 2656(%rcx)
14661 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14662 ; AVX2-NEXT:    vmovaps %ymm0, 2624(%rcx)
14663 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14664 ; AVX2-NEXT:    vmovaps %ymm0, 2592(%rcx)
14665 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14666 ; AVX2-NEXT:    vmovaps %ymm0, 2560(%rcx)
14667 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14668 ; AVX2-NEXT:    vmovaps %ymm0, 2528(%rcx)
14669 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14670 ; AVX2-NEXT:    vmovaps %ymm0, 2496(%rcx)
14671 ; AVX2-NEXT:    vmovaps %ymm7, 2464(%rcx)
14672 ; AVX2-NEXT:    vmovaps %ymm9, 2432(%rcx)
14673 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14674 ; AVX2-NEXT:    vmovaps %ymm0, 2400(%rcx)
14675 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14676 ; AVX2-NEXT:    vmovaps %ymm0, 2368(%rcx)
14677 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14678 ; AVX2-NEXT:    vmovaps %ymm0, 2336(%rcx)
14679 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14680 ; AVX2-NEXT:    vmovaps %ymm0, 2304(%rcx)
14681 ; AVX2-NEXT:    vmovaps %ymm10, 2272(%rcx)
14682 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14683 ; AVX2-NEXT:    vmovaps %ymm0, 2240(%rcx)
14684 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14685 ; AVX2-NEXT:    vmovaps %ymm0, 2208(%rcx)
14686 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14687 ; AVX2-NEXT:    vmovaps %ymm0, 2176(%rcx)
14688 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14689 ; AVX2-NEXT:    vmovaps %ymm0, 2144(%rcx)
14690 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14691 ; AVX2-NEXT:    vmovaps %ymm0, 2112(%rcx)
14692 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14693 ; AVX2-NEXT:    vmovaps %ymm0, 2080(%rcx)
14694 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14695 ; AVX2-NEXT:    vmovaps %ymm0, 2048(%rcx)
14696 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14697 ; AVX2-NEXT:    vmovaps %ymm0, 2016(%rcx)
14698 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14699 ; AVX2-NEXT:    vmovaps %ymm0, 1984(%rcx)
14700 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14701 ; AVX2-NEXT:    vmovaps %ymm0, 1952(%rcx)
14702 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14703 ; AVX2-NEXT:    vmovaps %ymm0, 1920(%rcx)
14704 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14705 ; AVX2-NEXT:    vmovaps %ymm0, 1888(%rcx)
14706 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14707 ; AVX2-NEXT:    vmovaps %ymm0, 1856(%rcx)
14708 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14709 ; AVX2-NEXT:    vmovaps %ymm0, 1824(%rcx)
14710 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14711 ; AVX2-NEXT:    vmovaps %ymm0, 1792(%rcx)
14712 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14713 ; AVX2-NEXT:    vmovaps %ymm0, 1760(%rcx)
14714 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14715 ; AVX2-NEXT:    vmovaps %ymm0, 1728(%rcx)
14716 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14717 ; AVX2-NEXT:    vmovaps %ymm0, 1696(%rcx)
14718 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14719 ; AVX2-NEXT:    vmovaps %ymm0, 1664(%rcx)
14720 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14721 ; AVX2-NEXT:    vmovaps %ymm0, 1632(%rcx)
14722 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14723 ; AVX2-NEXT:    vmovaps %ymm0, 1600(%rcx)
14724 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14725 ; AVX2-NEXT:    vmovaps %ymm0, 1568(%rcx)
14726 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14727 ; AVX2-NEXT:    vmovaps %ymm0, 1536(%rcx)
14728 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14729 ; AVX2-NEXT:    vmovaps %ymm0, 1504(%rcx)
14730 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14731 ; AVX2-NEXT:    vmovaps %ymm0, 1472(%rcx)
14732 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14733 ; AVX2-NEXT:    vmovaps %ymm0, 1440(%rcx)
14734 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14735 ; AVX2-NEXT:    vmovaps %ymm0, 1408(%rcx)
14736 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14737 ; AVX2-NEXT:    vmovaps %ymm0, 1376(%rcx)
14738 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14739 ; AVX2-NEXT:    vmovaps %ymm0, 1344(%rcx)
14740 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14741 ; AVX2-NEXT:    vmovaps %ymm0, 1312(%rcx)
14742 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14743 ; AVX2-NEXT:    vmovaps %ymm0, 1280(%rcx)
14744 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14745 ; AVX2-NEXT:    vmovaps %ymm0, 1248(%rcx)
14746 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14747 ; AVX2-NEXT:    vmovaps %ymm0, 1216(%rcx)
14748 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14749 ; AVX2-NEXT:    vmovaps %ymm0, 1184(%rcx)
14750 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14751 ; AVX2-NEXT:    vmovaps %ymm0, 1152(%rcx)
14752 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14753 ; AVX2-NEXT:    vmovaps %ymm0, 1120(%rcx)
14754 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14755 ; AVX2-NEXT:    vmovaps %ymm0, 1088(%rcx)
14756 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14757 ; AVX2-NEXT:    vmovaps %ymm0, 1056(%rcx)
14758 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14759 ; AVX2-NEXT:    vmovaps %ymm0, 1024(%rcx)
14760 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14761 ; AVX2-NEXT:    vmovaps %ymm0, 992(%rcx)
14762 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14763 ; AVX2-NEXT:    vmovaps %ymm0, 960(%rcx)
14764 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14765 ; AVX2-NEXT:    vmovaps %ymm0, 928(%rcx)
14766 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14767 ; AVX2-NEXT:    vmovaps %ymm0, 896(%rcx)
14768 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14769 ; AVX2-NEXT:    vmovaps %ymm0, 864(%rcx)
14770 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14771 ; AVX2-NEXT:    vmovaps %ymm0, 832(%rcx)
14772 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14773 ; AVX2-NEXT:    vmovaps %ymm0, 800(%rcx)
14774 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14775 ; AVX2-NEXT:    vmovaps %ymm0, 768(%rcx)
14776 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14777 ; AVX2-NEXT:    vmovaps %ymm0, 736(%rcx)
14778 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14779 ; AVX2-NEXT:    vmovaps %ymm0, 704(%rcx)
14780 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14781 ; AVX2-NEXT:    vmovaps %ymm0, 672(%rcx)
14782 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14783 ; AVX2-NEXT:    vmovaps %ymm0, 640(%rcx)
14784 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14785 ; AVX2-NEXT:    vmovaps %ymm0, 608(%rcx)
14786 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14787 ; AVX2-NEXT:    vmovaps %ymm0, 576(%rcx)
14788 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14789 ; AVX2-NEXT:    vmovaps %ymm0, 544(%rcx)
14790 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14791 ; AVX2-NEXT:    vmovaps %ymm0, 512(%rcx)
14792 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14793 ; AVX2-NEXT:    vmovaps %ymm0, 480(%rcx)
14794 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14795 ; AVX2-NEXT:    vmovaps %ymm0, 448(%rcx)
14796 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14797 ; AVX2-NEXT:    vmovaps %ymm0, 416(%rcx)
14798 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14799 ; AVX2-NEXT:    vmovaps %ymm0, 384(%rcx)
14800 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14801 ; AVX2-NEXT:    vmovaps %ymm0, 352(%rcx)
14802 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14803 ; AVX2-NEXT:    vmovaps %ymm0, 320(%rcx)
14804 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14805 ; AVX2-NEXT:    vmovaps %ymm0, 288(%rcx)
14806 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14807 ; AVX2-NEXT:    vmovaps %ymm0, 256(%rcx)
14808 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14809 ; AVX2-NEXT:    vmovaps %ymm0, 224(%rcx)
14810 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14811 ; AVX2-NEXT:    vmovaps %ymm0, 192(%rcx)
14812 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14813 ; AVX2-NEXT:    vmovaps %ymm0, 160(%rcx)
14814 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14815 ; AVX2-NEXT:    vmovaps %ymm0, 128(%rcx)
14816 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14817 ; AVX2-NEXT:    vmovaps %ymm0, 96(%rcx)
14818 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14819 ; AVX2-NEXT:    vmovaps %ymm0, 64(%rcx)
14820 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14821 ; AVX2-NEXT:    vmovaps %ymm0, 32(%rcx)
14822 ; AVX2-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
14823 ; AVX2-NEXT:    vmovaps %ymm0, (%rcx)
14824 ; AVX2-NEXT:    addq $3880, %rsp # imm = 0xF28
14825 ; AVX2-NEXT:    vzeroupper
14826 ; AVX2-NEXT:    retq
14828 ; AVX2-FP-LABEL: store_i64_stride7_vf64:
14829 ; AVX2-FP:       # %bb.0:
14830 ; AVX2-FP-NEXT:    subq $3880, %rsp # imm = 0xF28
14831 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
14832 ; AVX2-FP-NEXT:    vmovaps (%rdi), %ymm0
14833 ; AVX2-FP-NEXT:    vmovaps (%rsi), %ymm1
14834 ; AVX2-FP-NEXT:    vmovaps (%rdx), %ymm2
14835 ; AVX2-FP-NEXT:    vmovaps (%r8), %ymm5
14836 ; AVX2-FP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14837 ; AVX2-FP-NEXT:    vmovaps (%r9), %ymm6
14838 ; AVX2-FP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14839 ; AVX2-FP-NEXT:    vmovaps (%rsi), %xmm3
14840 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
14841 ; AVX2-FP-NEXT:    vmovaps (%rdi), %xmm4
14842 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14843 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %xmm7
14844 ; AVX2-FP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14845 ; AVX2-FP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
14846 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14847 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14848 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
14849 ; AVX2-FP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
14850 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
14851 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
14852 ; AVX2-FP-NEXT:    vmovaps (%r8), %xmm4
14853 ; AVX2-FP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14854 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
14855 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
14856 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14857 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
14858 ; AVX2-FP-NEXT:    vmovaps (%rax), %xmm8
14859 ; AVX2-FP-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
14860 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
14861 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
14862 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
14863 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14864 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
14865 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],mem[0],ymm2[2],mem[2]
14866 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14867 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14868 ; AVX2-FP-NEXT:    vmovaps 16(%rax), %xmm3
14869 ; AVX2-FP-NEXT:    vmovaps 32(%rax), %xmm4
14870 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
14871 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
14872 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
14873 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
14874 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14875 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
14876 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %xmm1
14877 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
14878 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
14879 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
14880 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14881 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %xmm2
14882 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14883 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14884 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14885 ; AVX2-FP-NEXT:    vbroadcastsd 40(%rcx), %ymm2
14886 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
14887 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
14888 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
14889 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14890 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14891 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
14892 ; AVX2-FP-NEXT:    vmovaps 32(%rdi), %ymm1
14893 ; AVX2-FP-NEXT:    vmovaps 32(%rsi), %ymm2
14894 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14895 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14896 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14897 ; AVX2-FP-NEXT:    vmovaps 32(%rdx), %ymm0
14898 ; AVX2-FP-NEXT:    vmovaps 32(%r8), %ymm4
14899 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14900 ; AVX2-FP-NEXT:    vmovaps 32(%r9), %ymm3
14901 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14902 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14903 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14904 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14905 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14906 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14907 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14908 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14909 ; AVX2-FP-NEXT:    vmovaps 48(%rax), %xmm1
14910 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14911 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14912 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %xmm0
14913 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
14914 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %xmm1
14915 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14916 ; AVX2-FP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
14917 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14918 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14919 ; AVX2-FP-NEXT:    vmovaps 64(%rdx), %ymm0
14920 ; AVX2-FP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
14921 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
14922 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
14923 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
14924 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %xmm2
14925 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14926 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
14927 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
14928 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14929 ; AVX2-FP-NEXT:    vmovaps 64(%rax), %xmm2
14930 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14931 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14932 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
14933 ; AVX2-FP-NEXT:    vmovaps 64(%rdi), %ymm2
14934 ; AVX2-FP-NEXT:    vmovaps 64(%rsi), %ymm3
14935 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
14936 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
14937 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14938 ; AVX2-FP-NEXT:    vmovaps 64(%r8), %ymm4
14939 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14940 ; AVX2-FP-NEXT:    vmovaps 64(%r9), %ymm1
14941 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14942 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
14943 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14944 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
14945 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14946 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
14947 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14948 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14949 ; AVX2-FP-NEXT:    vmovaps 80(%rax), %xmm1
14950 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14951 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14952 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %xmm0
14953 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
14954 ; AVX2-FP-NEXT:    vmovaps 96(%rax), %xmm2
14955 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
14956 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %xmm3
14957 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14958 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
14959 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
14960 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14961 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %xmm3
14962 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
14963 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
14964 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
14965 ; AVX2-FP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
14966 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
14967 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
14968 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14969 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14970 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
14971 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
14972 ; AVX2-FP-NEXT:    vmovaps 96(%rdi), %ymm1
14973 ; AVX2-FP-NEXT:    vmovaps 96(%rsi), %ymm2
14974 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
14975 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
14976 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14977 ; AVX2-FP-NEXT:    vmovaps 96(%rdx), %ymm0
14978 ; AVX2-FP-NEXT:    vmovaps 96(%r8), %ymm4
14979 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14980 ; AVX2-FP-NEXT:    vmovaps 96(%r9), %ymm3
14981 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14982 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
14983 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
14984 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
14985 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14986 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
14987 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
14988 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
14989 ; AVX2-FP-NEXT:    vmovaps 112(%rax), %xmm1
14990 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
14991 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14992 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %xmm0
14993 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
14994 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %xmm1
14995 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14996 ; AVX2-FP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
14997 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
14998 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
14999 ; AVX2-FP-NEXT:    vmovaps 128(%rdx), %ymm0
15000 ; AVX2-FP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
15001 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15002 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15003 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15004 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %xmm2
15005 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15006 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15007 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15008 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15009 ; AVX2-FP-NEXT:    vmovaps 128(%rax), %xmm2
15010 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15011 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15012 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15013 ; AVX2-FP-NEXT:    vmovaps 128(%rdi), %ymm2
15014 ; AVX2-FP-NEXT:    vmovaps 128(%rsi), %ymm3
15015 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15016 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15017 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15018 ; AVX2-FP-NEXT:    vmovaps 128(%r8), %ymm4
15019 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15020 ; AVX2-FP-NEXT:    vmovaps 128(%r9), %ymm1
15021 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15022 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15023 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15024 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15025 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15026 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15027 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15028 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15029 ; AVX2-FP-NEXT:    vmovaps 144(%rax), %xmm1
15030 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15031 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15032 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %xmm0
15033 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15034 ; AVX2-FP-NEXT:    vmovaps 160(%rax), %xmm2
15035 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15036 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %xmm3
15037 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15038 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15039 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15040 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15041 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %xmm3
15042 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15043 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15044 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15045 ; AVX2-FP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
15046 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15047 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15048 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15049 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15050 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15051 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15052 ; AVX2-FP-NEXT:    vmovaps 160(%rdi), %ymm1
15053 ; AVX2-FP-NEXT:    vmovaps 160(%rsi), %ymm2
15054 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15055 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15056 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15057 ; AVX2-FP-NEXT:    vmovaps 160(%rdx), %ymm0
15058 ; AVX2-FP-NEXT:    vmovaps 160(%r8), %ymm4
15059 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15060 ; AVX2-FP-NEXT:    vmovaps 160(%r9), %ymm3
15061 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15062 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15063 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15064 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15065 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15066 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15067 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15068 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15069 ; AVX2-FP-NEXT:    vmovaps 176(%rax), %xmm1
15070 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15071 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15072 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %xmm0
15073 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
15074 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %xmm1
15075 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15076 ; AVX2-FP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
15077 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15078 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15079 ; AVX2-FP-NEXT:    vmovaps 192(%rdx), %ymm0
15080 ; AVX2-FP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
15081 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15082 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15083 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15084 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %xmm2
15085 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15086 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15087 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15088 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15089 ; AVX2-FP-NEXT:    vmovaps 192(%rax), %xmm2
15090 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15091 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15092 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15093 ; AVX2-FP-NEXT:    vmovaps 192(%rdi), %ymm2
15094 ; AVX2-FP-NEXT:    vmovaps 192(%rsi), %ymm3
15095 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15096 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15097 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15098 ; AVX2-FP-NEXT:    vmovaps 192(%r8), %ymm4
15099 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15100 ; AVX2-FP-NEXT:    vmovaps 192(%r9), %ymm1
15101 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15102 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15103 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15104 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15105 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15106 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15107 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15108 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15109 ; AVX2-FP-NEXT:    vmovaps 208(%rax), %xmm1
15110 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15111 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15112 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %xmm0
15113 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15114 ; AVX2-FP-NEXT:    vmovaps 224(%rax), %xmm2
15115 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15116 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %xmm3
15117 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15118 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15119 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15120 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15121 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %xmm3
15122 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15123 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15124 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15125 ; AVX2-FP-NEXT:    vbroadcastsd 232(%rcx), %ymm3
15126 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15127 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15128 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15129 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15130 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15131 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15132 ; AVX2-FP-NEXT:    vmovaps 224(%rdi), %ymm1
15133 ; AVX2-FP-NEXT:    vmovaps 224(%rsi), %ymm2
15134 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15135 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15136 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15137 ; AVX2-FP-NEXT:    vmovaps 224(%rdx), %ymm0
15138 ; AVX2-FP-NEXT:    vmovaps 224(%r8), %ymm4
15139 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15140 ; AVX2-FP-NEXT:    vmovaps 224(%r9), %ymm3
15141 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15142 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15143 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15144 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15145 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15146 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15147 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15148 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15149 ; AVX2-FP-NEXT:    vmovaps 240(%rax), %xmm1
15150 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15151 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15152 ; AVX2-FP-NEXT:    vmovaps 256(%rsi), %xmm0
15153 ; AVX2-FP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
15154 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %xmm1
15155 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15156 ; AVX2-FP-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
15157 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15158 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15159 ; AVX2-FP-NEXT:    vmovaps 256(%rdx), %ymm0
15160 ; AVX2-FP-NEXT:    vbroadcastsd 264(%rcx), %ymm1
15161 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15162 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15163 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15164 ; AVX2-FP-NEXT:    vmovaps 256(%r8), %xmm2
15165 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15166 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15167 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15168 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15169 ; AVX2-FP-NEXT:    vmovaps 256(%rax), %xmm2
15170 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15171 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15172 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15173 ; AVX2-FP-NEXT:    vmovaps 256(%rdi), %ymm2
15174 ; AVX2-FP-NEXT:    vmovaps 256(%rsi), %ymm3
15175 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15176 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15177 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15178 ; AVX2-FP-NEXT:    vmovaps 256(%r8), %ymm4
15179 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15180 ; AVX2-FP-NEXT:    vmovaps 256(%r9), %ymm1
15181 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15182 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15183 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15184 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15185 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15186 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15187 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15188 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15189 ; AVX2-FP-NEXT:    vmovaps 272(%rax), %xmm1
15190 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15191 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15192 ; AVX2-FP-NEXT:    vmovaps 288(%r8), %xmm0
15193 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15194 ; AVX2-FP-NEXT:    vmovaps 288(%rax), %xmm2
15195 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15196 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %xmm3
15197 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15198 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15199 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15200 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15201 ; AVX2-FP-NEXT:    vmovaps 288(%rdx), %xmm3
15202 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15203 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15204 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
15205 ; AVX2-FP-NEXT:    vbroadcastsd 296(%rcx), %ymm3
15206 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15207 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15208 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15209 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15210 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15211 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15212 ; AVX2-FP-NEXT:    vmovaps 288(%rdi), %ymm1
15213 ; AVX2-FP-NEXT:    vmovaps 288(%rsi), %ymm2
15214 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15215 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15216 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15217 ; AVX2-FP-NEXT:    vmovaps 288(%rdx), %ymm0
15218 ; AVX2-FP-NEXT:    vmovaps 288(%r8), %ymm4
15219 ; AVX2-FP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15220 ; AVX2-FP-NEXT:    vmovaps 288(%r9), %ymm3
15221 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15222 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15223 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15224 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15225 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15226 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15227 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15228 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15229 ; AVX2-FP-NEXT:    vmovaps 304(%rax), %xmm1
15230 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15231 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15232 ; AVX2-FP-NEXT:    vmovaps 320(%rsi), %xmm0
15233 ; AVX2-FP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
15234 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %xmm1
15235 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15236 ; AVX2-FP-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
15237 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15238 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15239 ; AVX2-FP-NEXT:    vmovaps 320(%rdx), %ymm0
15240 ; AVX2-FP-NEXT:    vbroadcastsd 328(%rcx), %ymm1
15241 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15242 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15243 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15244 ; AVX2-FP-NEXT:    vmovaps 320(%r8), %xmm2
15245 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15246 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15247 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15248 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15249 ; AVX2-FP-NEXT:    vmovaps 320(%rax), %xmm10
15250 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15251 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
15252 ; AVX2-FP-NEXT:    vmovaps 320(%rdi), %ymm2
15253 ; AVX2-FP-NEXT:    vmovaps 320(%rsi), %ymm3
15254 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15255 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15256 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15257 ; AVX2-FP-NEXT:    vmovaps 320(%r8), %ymm9
15258 ; AVX2-FP-NEXT:    vmovaps 320(%r9), %ymm1
15259 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15260 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
15261 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15262 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15263 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15264 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15265 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15266 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15267 ; AVX2-FP-NEXT:    vmovaps 336(%rax), %xmm1
15268 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15269 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15270 ; AVX2-FP-NEXT:    vmovaps 352(%r8), %xmm0
15271 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15272 ; AVX2-FP-NEXT:    vmovaps 352(%rax), %xmm2
15273 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15274 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %xmm3
15275 ; AVX2-FP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15276 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15277 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15278 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15279 ; AVX2-FP-NEXT:    vmovaps 352(%rdx), %xmm7
15280 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15281 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
15282 ; AVX2-FP-NEXT:    vbroadcastsd 360(%rcx), %ymm3
15283 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15284 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15285 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15286 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15287 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15288 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15289 ; AVX2-FP-NEXT:    vmovaps 352(%rdi), %ymm1
15290 ; AVX2-FP-NEXT:    vmovaps 352(%rsi), %ymm2
15291 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15292 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15293 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15294 ; AVX2-FP-NEXT:    vmovaps 352(%rdx), %ymm0
15295 ; AVX2-FP-NEXT:    vmovaps 352(%r8), %ymm5
15296 ; AVX2-FP-NEXT:    vmovaps 352(%r9), %ymm3
15297 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15298 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
15299 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15300 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15301 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15302 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15303 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15304 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15305 ; AVX2-FP-NEXT:    vmovaps 368(%rax), %xmm1
15306 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15307 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15308 ; AVX2-FP-NEXT:    vmovaps 384(%rsi), %xmm0
15309 ; AVX2-FP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
15310 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %xmm1
15311 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15312 ; AVX2-FP-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
15313 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15314 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15315 ; AVX2-FP-NEXT:    vmovaps 384(%rdx), %ymm0
15316 ; AVX2-FP-NEXT:    vbroadcastsd 392(%rcx), %ymm1
15317 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15318 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15319 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15320 ; AVX2-FP-NEXT:    vmovaps 384(%r8), %xmm2
15321 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15322 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15323 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15324 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15325 ; AVX2-FP-NEXT:    vmovaps 384(%rax), %xmm2
15326 ; AVX2-FP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15327 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15328 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15329 ; AVX2-FP-NEXT:    vmovaps 384(%rdi), %ymm2
15330 ; AVX2-FP-NEXT:    vmovaps 384(%rsi), %ymm3
15331 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15332 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15333 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15334 ; AVX2-FP-NEXT:    vmovaps 384(%r8), %ymm15
15335 ; AVX2-FP-NEXT:    vmovaps 384(%r9), %ymm1
15336 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15337 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
15338 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15339 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15340 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15341 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15342 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15343 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15344 ; AVX2-FP-NEXT:    vmovaps 400(%rax), %xmm1
15345 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15346 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15347 ; AVX2-FP-NEXT:    vmovaps 416(%r8), %xmm0
15348 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15349 ; AVX2-FP-NEXT:    vmovaps 416(%rax), %xmm2
15350 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15351 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %xmm13
15352 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
15353 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15354 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15355 ; AVX2-FP-NEXT:    vmovaps 416(%rdx), %xmm14
15356 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15357 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
15358 ; AVX2-FP-NEXT:    vbroadcastsd 424(%rcx), %ymm3
15359 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15360 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
15361 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15362 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15363 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15364 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15365 ; AVX2-FP-NEXT:    vmovaps 416(%rdi), %ymm1
15366 ; AVX2-FP-NEXT:    vmovaps 416(%rsi), %ymm2
15367 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15368 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15369 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15370 ; AVX2-FP-NEXT:    vmovaps 416(%r8), %ymm0
15371 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
15372 ; AVX2-FP-NEXT:    vmovaps 416(%rdx), %ymm3
15373 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
15374 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
15375 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15376 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15377 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15378 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
15379 ; AVX2-FP-NEXT:    vmovaps 432(%rax), %xmm1
15380 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15381 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15382 ; AVX2-FP-NEXT:    vmovaps 448(%rsi), %xmm0
15383 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
15384 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %xmm1
15385 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
15386 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15387 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15388 ; AVX2-FP-NEXT:    vmovaps 448(%rdi), %ymm0
15389 ; AVX2-FP-NEXT:    vmovaps 448(%r8), %ymm11
15390 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15391 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
15392 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
15393 ; AVX2-FP-NEXT:    vbroadcastsd 448(%rax), %ymm2
15394 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
15395 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15396 ; AVX2-FP-NEXT:    vmovaps 448(%rdx), %ymm2
15397 ; AVX2-FP-NEXT:    vbroadcastsd 456(%rcx), %ymm1
15398 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
15399 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15400 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
15401 ; AVX2-FP-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
15402 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15403 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15404 ; AVX2-FP-NEXT:    vmovaps 448(%rsi), %ymm1
15405 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15406 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15407 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
15408 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15409 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15410 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15411 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
15412 ; AVX2-FP-NEXT:    vmovaps 464(%rax), %xmm1
15413 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15414 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15415 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %ymm0
15416 ; AVX2-FP-NEXT:    vmovaps 480(%r8), %ymm12
15417 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15418 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
15419 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
15420 ; AVX2-FP-NEXT:    vbroadcastsd 480(%rax), %ymm3
15421 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
15422 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15423 ; AVX2-FP-NEXT:    vmovaps 480(%rdx), %xmm8
15424 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15425 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
15426 ; AVX2-FP-NEXT:    vbroadcastsd 488(%rcx), %ymm3
15427 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
15428 ; AVX2-FP-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
15429 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
15430 ; AVX2-FP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15431 ; AVX2-FP-NEXT:    vmovaps 480(%rsi), %ymm1
15432 ; AVX2-FP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15433 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15434 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
15435 ; AVX2-FP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15436 ; AVX2-FP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15437 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15438 ; AVX2-FP-NEXT:    vmovaps 480(%rdx), %ymm6
15439 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
15440 ; AVX2-FP-NEXT:    vmovaps 496(%rax), %xmm1
15441 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15442 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15443 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15444 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15445 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15446 ; AVX2-FP-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
15447 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15448 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15449 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15450 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15451 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15452 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15453 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15454 ; AVX2-FP-NEXT:    vbroadcastsd 24(%rcx), %ymm1
15455 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15456 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15457 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15458 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15459 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15460 ; AVX2-FP-NEXT:    vbroadcastsd 32(%rcx), %ymm1
15461 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15462 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15463 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15464 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15465 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15466 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15467 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15468 ; AVX2-FP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
15469 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15470 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15471 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15472 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15473 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15474 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15475 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15476 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15477 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15478 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15479 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15480 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15481 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15482 ; AVX2-FP-NEXT:    vbroadcastsd 88(%rcx), %ymm1
15483 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15484 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15485 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15486 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15487 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15488 ; AVX2-FP-NEXT:    vbroadcastsd 96(%rcx), %ymm1
15489 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15490 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15491 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15492 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15493 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15494 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15495 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15496 ; AVX2-FP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
15497 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15498 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15499 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15500 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15501 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15502 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15503 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15504 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15505 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15506 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15507 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15508 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15509 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15510 ; AVX2-FP-NEXT:    vbroadcastsd 152(%rcx), %ymm1
15511 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15512 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15513 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15514 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15515 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15516 ; AVX2-FP-NEXT:    vbroadcastsd 160(%rcx), %ymm1
15517 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15518 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15519 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15520 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15521 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15522 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15523 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15524 ; AVX2-FP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
15525 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15526 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15527 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15528 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15529 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15530 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15531 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15532 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15533 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15534 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15535 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15536 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15537 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15538 ; AVX2-FP-NEXT:    vbroadcastsd 216(%rcx), %ymm1
15539 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15540 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15541 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15542 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15543 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15544 ; AVX2-FP-NEXT:    vbroadcastsd 224(%rcx), %ymm1
15545 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15546 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15547 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15548 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15549 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15550 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15551 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15552 ; AVX2-FP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
15553 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15554 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15555 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15556 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15557 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15558 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15559 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15560 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15561 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15562 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15563 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
15564 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15565 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15566 ; AVX2-FP-NEXT:    vbroadcastsd 280(%rcx), %ymm1
15567 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15568 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15569 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15570 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15571 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15572 ; AVX2-FP-NEXT:    vbroadcastsd 288(%rcx), %ymm1
15573 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15574 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15575 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15576 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
15577 ; AVX2-FP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[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 312(%rcx), %ymm1
15581 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15582 ; AVX2-FP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15583 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15584 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15585 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15586 ; AVX2-FP-NEXT:    vbroadcastsd %xmm10, %ymm1
15587 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15588 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
15589 ; AVX2-FP-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
15590 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15591 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15592 ; AVX2-FP-NEXT:    vbroadcastsd 344(%rcx), %ymm1
15593 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15594 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15595 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15596 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
15597 ; AVX2-FP-NEXT:    vbroadcastsd 352(%rcx), %ymm1
15598 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15599 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
15600 ; AVX2-FP-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
15601 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15602 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15603 ; AVX2-FP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
15604 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15605 ; AVX2-FP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
15606 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
15607 ; AVX2-FP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
15608 ; AVX2-FP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
15609 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
15610 ; AVX2-FP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
15611 ; AVX2-FP-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
15612 ; AVX2-FP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15613 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
15614 ; AVX2-FP-NEXT:    vbroadcastsd 408(%rcx), %ymm15
15615 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
15616 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
15617 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
15618 ; AVX2-FP-NEXT:    vbroadcastsd 416(%rcx), %ymm15
15619 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
15620 ; AVX2-FP-NEXT:    vbroadcastsd 440(%rcx), %ymm15
15621 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
15622 ; AVX2-FP-NEXT:    vbroadcastsd 440(%r9), %ymm13
15623 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
15624 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
15625 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
15626 ; AVX2-FP-NEXT:    vbroadcastsd 464(%r9), %ymm11
15627 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
15628 ; AVX2-FP-NEXT:    vbroadcastsd 472(%rcx), %ymm11
15629 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
15630 ; AVX2-FP-NEXT:    vbroadcastsd 472(%r9), %ymm13
15631 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
15632 ; AVX2-FP-NEXT:    vmovaps 448(%rax), %ymm0
15633 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
15634 ; AVX2-FP-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
15635 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
15636 ; AVX2-FP-NEXT:    vmovaps 480(%rdi), %xmm13
15637 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
15638 ; AVX2-FP-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
15639 ; AVX2-FP-NEXT:    vbroadcastsd 480(%rcx), %ymm13
15640 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
15641 ; AVX2-FP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
15642 ; AVX2-FP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
15643 ; AVX2-FP-NEXT:    vbroadcastsd 496(%r9), %ymm12
15644 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
15645 ; AVX2-FP-NEXT:    vbroadcastsd 504(%rcx), %ymm12
15646 ; AVX2-FP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
15647 ; AVX2-FP-NEXT:    vbroadcastsd 504(%r9), %ymm13
15648 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
15649 ; AVX2-FP-NEXT:    vmovaps 480(%rax), %ymm13
15650 ; AVX2-FP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
15651 ; AVX2-FP-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
15652 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
15653 ; AVX2-FP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
15654 ; AVX2-FP-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
15655 ; AVX2-FP-NEXT:    vmovaps %ymm12, 3552(%rcx)
15656 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
15657 ; AVX2-FP-NEXT:    vmovaps %ymm12, 3520(%rcx)
15658 ; AVX2-FP-NEXT:    vmovaps %ymm6, 3488(%rcx)
15659 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3456(%rcx)
15660 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15661 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3424(%rcx)
15662 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15663 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3392(%rcx)
15664 ; AVX2-FP-NEXT:    vmovaps %ymm8, 3360(%rcx)
15665 ; AVX2-FP-NEXT:    vmovaps %ymm1, 3328(%rcx)
15666 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15667 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3296(%rcx)
15668 ; AVX2-FP-NEXT:    vmovaps %ymm2, 3264(%rcx)
15669 ; AVX2-FP-NEXT:    vmovaps %ymm11, 3232(%rcx)
15670 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15671 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3200(%rcx)
15672 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15673 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3168(%rcx)
15674 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15675 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3136(%rcx)
15676 ; AVX2-FP-NEXT:    vmovaps %ymm13, 3104(%rcx)
15677 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15678 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3072(%rcx)
15679 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15680 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3040(%rcx)
15681 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15682 ; AVX2-FP-NEXT:    vmovaps %ymm0, 3008(%rcx)
15683 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15684 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2976(%rcx)
15685 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15686 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2944(%rcx)
15687 ; AVX2-FP-NEXT:    vmovaps %ymm14, 2912(%rcx)
15688 ; AVX2-FP-NEXT:    vmovaps %ymm3, 2880(%rcx)
15689 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15690 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2848(%rcx)
15691 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15692 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2816(%rcx)
15693 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15694 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2784(%rcx)
15695 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15696 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2752(%rcx)
15697 ; AVX2-FP-NEXT:    vmovaps %ymm4, 2720(%rcx)
15698 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15699 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2688(%rcx)
15700 ; AVX2-FP-NEXT:    vmovaps %ymm5, 2656(%rcx)
15701 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15702 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2624(%rcx)
15703 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15704 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2592(%rcx)
15705 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15706 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2560(%rcx)
15707 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15708 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2528(%rcx)
15709 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15710 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2496(%rcx)
15711 ; AVX2-FP-NEXT:    vmovaps %ymm7, 2464(%rcx)
15712 ; AVX2-FP-NEXT:    vmovaps %ymm9, 2432(%rcx)
15713 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15714 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2400(%rcx)
15715 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15716 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2368(%rcx)
15717 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15718 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2336(%rcx)
15719 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15720 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2304(%rcx)
15721 ; AVX2-FP-NEXT:    vmovaps %ymm10, 2272(%rcx)
15722 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15723 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2240(%rcx)
15724 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15725 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2208(%rcx)
15726 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15727 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2176(%rcx)
15728 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15729 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2144(%rcx)
15730 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15731 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2112(%rcx)
15732 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15733 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2080(%rcx)
15734 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15735 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2048(%rcx)
15736 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15737 ; AVX2-FP-NEXT:    vmovaps %ymm0, 2016(%rcx)
15738 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15739 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1984(%rcx)
15740 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15741 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1952(%rcx)
15742 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15743 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1920(%rcx)
15744 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15745 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1888(%rcx)
15746 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15747 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1856(%rcx)
15748 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15749 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1824(%rcx)
15750 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15751 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1792(%rcx)
15752 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15753 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1760(%rcx)
15754 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15755 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1728(%rcx)
15756 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15757 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1696(%rcx)
15758 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15759 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1664(%rcx)
15760 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15761 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1632(%rcx)
15762 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15763 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1600(%rcx)
15764 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15765 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1568(%rcx)
15766 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15767 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1536(%rcx)
15768 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15769 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1504(%rcx)
15770 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15771 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1472(%rcx)
15772 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15773 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1440(%rcx)
15774 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15775 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1408(%rcx)
15776 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15777 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1376(%rcx)
15778 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15779 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1344(%rcx)
15780 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15781 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1312(%rcx)
15782 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15783 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1280(%rcx)
15784 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15785 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1248(%rcx)
15786 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15787 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1216(%rcx)
15788 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15789 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1184(%rcx)
15790 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15791 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1152(%rcx)
15792 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15793 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1120(%rcx)
15794 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15795 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1088(%rcx)
15796 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15797 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1056(%rcx)
15798 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15799 ; AVX2-FP-NEXT:    vmovaps %ymm0, 1024(%rcx)
15800 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15801 ; AVX2-FP-NEXT:    vmovaps %ymm0, 992(%rcx)
15802 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15803 ; AVX2-FP-NEXT:    vmovaps %ymm0, 960(%rcx)
15804 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15805 ; AVX2-FP-NEXT:    vmovaps %ymm0, 928(%rcx)
15806 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15807 ; AVX2-FP-NEXT:    vmovaps %ymm0, 896(%rcx)
15808 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15809 ; AVX2-FP-NEXT:    vmovaps %ymm0, 864(%rcx)
15810 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15811 ; AVX2-FP-NEXT:    vmovaps %ymm0, 832(%rcx)
15812 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15813 ; AVX2-FP-NEXT:    vmovaps %ymm0, 800(%rcx)
15814 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15815 ; AVX2-FP-NEXT:    vmovaps %ymm0, 768(%rcx)
15816 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15817 ; AVX2-FP-NEXT:    vmovaps %ymm0, 736(%rcx)
15818 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15819 ; AVX2-FP-NEXT:    vmovaps %ymm0, 704(%rcx)
15820 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15821 ; AVX2-FP-NEXT:    vmovaps %ymm0, 672(%rcx)
15822 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15823 ; AVX2-FP-NEXT:    vmovaps %ymm0, 640(%rcx)
15824 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15825 ; AVX2-FP-NEXT:    vmovaps %ymm0, 608(%rcx)
15826 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15827 ; AVX2-FP-NEXT:    vmovaps %ymm0, 576(%rcx)
15828 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15829 ; AVX2-FP-NEXT:    vmovaps %ymm0, 544(%rcx)
15830 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15831 ; AVX2-FP-NEXT:    vmovaps %ymm0, 512(%rcx)
15832 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15833 ; AVX2-FP-NEXT:    vmovaps %ymm0, 480(%rcx)
15834 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15835 ; AVX2-FP-NEXT:    vmovaps %ymm0, 448(%rcx)
15836 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15837 ; AVX2-FP-NEXT:    vmovaps %ymm0, 416(%rcx)
15838 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15839 ; AVX2-FP-NEXT:    vmovaps %ymm0, 384(%rcx)
15840 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15841 ; AVX2-FP-NEXT:    vmovaps %ymm0, 352(%rcx)
15842 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15843 ; AVX2-FP-NEXT:    vmovaps %ymm0, 320(%rcx)
15844 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15845 ; AVX2-FP-NEXT:    vmovaps %ymm0, 288(%rcx)
15846 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15847 ; AVX2-FP-NEXT:    vmovaps %ymm0, 256(%rcx)
15848 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15849 ; AVX2-FP-NEXT:    vmovaps %ymm0, 224(%rcx)
15850 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15851 ; AVX2-FP-NEXT:    vmovaps %ymm0, 192(%rcx)
15852 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15853 ; AVX2-FP-NEXT:    vmovaps %ymm0, 160(%rcx)
15854 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15855 ; AVX2-FP-NEXT:    vmovaps %ymm0, 128(%rcx)
15856 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15857 ; AVX2-FP-NEXT:    vmovaps %ymm0, 96(%rcx)
15858 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15859 ; AVX2-FP-NEXT:    vmovaps %ymm0, 64(%rcx)
15860 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15861 ; AVX2-FP-NEXT:    vmovaps %ymm0, 32(%rcx)
15862 ; AVX2-FP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
15863 ; AVX2-FP-NEXT:    vmovaps %ymm0, (%rcx)
15864 ; AVX2-FP-NEXT:    addq $3880, %rsp # imm = 0xF28
15865 ; AVX2-FP-NEXT:    vzeroupper
15866 ; AVX2-FP-NEXT:    retq
15868 ; AVX2-FCP-LABEL: store_i64_stride7_vf64:
15869 ; AVX2-FCP:       # %bb.0:
15870 ; AVX2-FCP-NEXT:    subq $3880, %rsp # imm = 0xF28
15871 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
15872 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %ymm0
15873 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %ymm1
15874 ; AVX2-FCP-NEXT:    vmovaps (%rdx), %ymm2
15875 ; AVX2-FCP-NEXT:    vmovaps (%r8), %ymm5
15876 ; AVX2-FCP-NEXT:    vmovups %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15877 ; AVX2-FCP-NEXT:    vmovaps (%r9), %ymm6
15878 ; AVX2-FCP-NEXT:    vmovups %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15879 ; AVX2-FCP-NEXT:    vmovaps (%rsi), %xmm3
15880 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rcx), %ymm3, %ymm3
15881 ; AVX2-FCP-NEXT:    vmovaps (%rdi), %xmm4
15882 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15883 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %xmm7
15884 ; AVX2-FCP-NEXT:    vmovaps %xmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15885 ; AVX2-FCP-NEXT:    vinsertf128 $1, (%rdx), %ymm4, %ymm4
15886 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15887 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15888 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
15889 ; AVX2-FCP-NEXT:    vbroadcastsd 8(%rcx), %ymm4
15890 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm2[0,1,2,3],ymm4[4,5,6,7]
15891 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1],ymm4[2,3,4,5,6,7]
15892 ; AVX2-FCP-NEXT:    vmovaps (%r8), %xmm4
15893 ; AVX2-FCP-NEXT:    vmovaps %xmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15894 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm0, %ymm4
15895 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],ymm4[6,7]
15896 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15897 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
15898 ; AVX2-FCP-NEXT:    vmovaps (%rax), %xmm8
15899 ; AVX2-FCP-NEXT:    vmovaps %xmm8, (%rsp) # 16-byte Spill
15900 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm4 = mem[0,0]
15901 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm4 = xmm4[1],xmm8[1]
15902 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm4[0,1,2,3],ymm3[4,5,6,7]
15903 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15904 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm6[0],ymm5[2],ymm6[2]
15905 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],mem[0],ymm2[2],mem[2]
15906 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15907 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15908 ; AVX2-FCP-NEXT:    vmovaps 16(%rax), %xmm3
15909 ; AVX2-FCP-NEXT:    vmovaps 32(%rax), %xmm4
15910 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
15911 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
15912 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
15913 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm3[0,1],ymm0[2,3,4,5,6,7]
15914 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15915 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
15916 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %xmm1
15917 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm2 = xmm1[0],mem[0]
15918 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm4, %ymm2, %ymm2
15919 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm2[0,1,2,3,4,5],ymm0[6,7]
15920 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15921 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %xmm2
15922 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15923 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15924 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
15925 ; AVX2-FCP-NEXT:    vbroadcastsd 40(%rcx), %ymm2
15926 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm2[4,5,6,7]
15927 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm1, %ymm0, %ymm1
15928 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
15929 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15930 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
15931 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm4[1]
15932 ; AVX2-FCP-NEXT:    vmovaps 32(%rdi), %ymm1
15933 ; AVX2-FCP-NEXT:    vmovaps 32(%rsi), %ymm2
15934 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
15935 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
15936 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15937 ; AVX2-FCP-NEXT:    vmovaps 32(%rdx), %ymm0
15938 ; AVX2-FCP-NEXT:    vmovaps 32(%r8), %ymm4
15939 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15940 ; AVX2-FCP-NEXT:    vmovaps 32(%r9), %ymm3
15941 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15942 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
15943 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15944 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
15945 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15946 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
15947 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15948 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15949 ; AVX2-FCP-NEXT:    vmovaps 48(%rax), %xmm1
15950 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15951 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15952 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %xmm0
15953 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rcx), %ymm0, %ymm0
15954 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %xmm1
15955 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15956 ; AVX2-FCP-NEXT:    vinsertf128 $1, 64(%rdx), %ymm1, %ymm1
15957 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
15958 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15959 ; AVX2-FCP-NEXT:    vmovaps 64(%rdx), %ymm0
15960 ; AVX2-FCP-NEXT:    vbroadcastsd 72(%rcx), %ymm1
15961 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
15962 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
15963 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
15964 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %xmm2
15965 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15966 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
15967 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
15968 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15969 ; AVX2-FCP-NEXT:    vmovaps 64(%rax), %xmm2
15970 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15971 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
15972 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
15973 ; AVX2-FCP-NEXT:    vmovaps 64(%rdi), %ymm2
15974 ; AVX2-FCP-NEXT:    vmovaps 64(%rsi), %ymm3
15975 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
15976 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
15977 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15978 ; AVX2-FCP-NEXT:    vmovaps 64(%r8), %ymm4
15979 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15980 ; AVX2-FCP-NEXT:    vmovaps 64(%r9), %ymm1
15981 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15982 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
15983 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
15984 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
15985 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15986 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
15987 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
15988 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
15989 ; AVX2-FCP-NEXT:    vmovaps 80(%rax), %xmm1
15990 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
15991 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
15992 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %xmm0
15993 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
15994 ; AVX2-FCP-NEXT:    vmovaps 96(%rax), %xmm2
15995 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
15996 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %xmm3
15997 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
15998 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
15999 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16000 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16001 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %xmm3
16002 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16003 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16004 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16005 ; AVX2-FCP-NEXT:    vbroadcastsd 104(%rcx), %ymm3
16006 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16007 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16008 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16009 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16010 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16011 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16012 ; AVX2-FCP-NEXT:    vmovaps 96(%rdi), %ymm1
16013 ; AVX2-FCP-NEXT:    vmovaps 96(%rsi), %ymm2
16014 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16015 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16016 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16017 ; AVX2-FCP-NEXT:    vmovaps 96(%rdx), %ymm0
16018 ; AVX2-FCP-NEXT:    vmovaps 96(%r8), %ymm4
16019 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16020 ; AVX2-FCP-NEXT:    vmovaps 96(%r9), %ymm3
16021 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16022 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16023 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16024 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16025 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16026 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16027 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16028 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16029 ; AVX2-FCP-NEXT:    vmovaps 112(%rax), %xmm1
16030 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16031 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16032 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %xmm0
16033 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rcx), %ymm0, %ymm0
16034 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %xmm1
16035 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16036 ; AVX2-FCP-NEXT:    vinsertf128 $1, 128(%rdx), %ymm1, %ymm1
16037 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16038 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16039 ; AVX2-FCP-NEXT:    vmovaps 128(%rdx), %ymm0
16040 ; AVX2-FCP-NEXT:    vbroadcastsd 136(%rcx), %ymm1
16041 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16042 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16043 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16044 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %xmm2
16045 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16046 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16047 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16048 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16049 ; AVX2-FCP-NEXT:    vmovaps 128(%rax), %xmm2
16050 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16051 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16052 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16053 ; AVX2-FCP-NEXT:    vmovaps 128(%rdi), %ymm2
16054 ; AVX2-FCP-NEXT:    vmovaps 128(%rsi), %ymm3
16055 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16056 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16057 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16058 ; AVX2-FCP-NEXT:    vmovaps 128(%r8), %ymm4
16059 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16060 ; AVX2-FCP-NEXT:    vmovaps 128(%r9), %ymm1
16061 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16062 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
16063 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16064 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16065 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16066 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16067 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16068 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16069 ; AVX2-FCP-NEXT:    vmovaps 144(%rax), %xmm1
16070 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16071 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16072 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %xmm0
16073 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16074 ; AVX2-FCP-NEXT:    vmovaps 160(%rax), %xmm2
16075 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16076 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %xmm3
16077 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16078 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16079 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16080 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16081 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %xmm3
16082 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16083 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16084 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16085 ; AVX2-FCP-NEXT:    vbroadcastsd 168(%rcx), %ymm3
16086 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16087 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16088 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16089 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16090 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16091 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16092 ; AVX2-FCP-NEXT:    vmovaps 160(%rdi), %ymm1
16093 ; AVX2-FCP-NEXT:    vmovaps 160(%rsi), %ymm2
16094 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16095 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16096 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16097 ; AVX2-FCP-NEXT:    vmovaps 160(%rdx), %ymm0
16098 ; AVX2-FCP-NEXT:    vmovaps 160(%r8), %ymm4
16099 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16100 ; AVX2-FCP-NEXT:    vmovaps 160(%r9), %ymm3
16101 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16102 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16103 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16104 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16105 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16106 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16107 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16108 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16109 ; AVX2-FCP-NEXT:    vmovaps 176(%rax), %xmm1
16110 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16111 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16112 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %xmm0
16113 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rcx), %ymm0, %ymm0
16114 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %xmm1
16115 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16116 ; AVX2-FCP-NEXT:    vinsertf128 $1, 192(%rdx), %ymm1, %ymm1
16117 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16118 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16119 ; AVX2-FCP-NEXT:    vmovaps 192(%rdx), %ymm0
16120 ; AVX2-FCP-NEXT:    vbroadcastsd 200(%rcx), %ymm1
16121 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16122 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16123 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16124 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %xmm2
16125 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16126 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16127 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16128 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16129 ; AVX2-FCP-NEXT:    vmovaps 192(%rax), %xmm2
16130 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16131 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16132 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16133 ; AVX2-FCP-NEXT:    vmovaps 192(%rdi), %ymm2
16134 ; AVX2-FCP-NEXT:    vmovaps 192(%rsi), %ymm3
16135 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16136 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16137 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16138 ; AVX2-FCP-NEXT:    vmovaps 192(%r8), %ymm4
16139 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16140 ; AVX2-FCP-NEXT:    vmovaps 192(%r9), %ymm1
16141 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16142 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
16143 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16144 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16145 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16146 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16147 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16148 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16149 ; AVX2-FCP-NEXT:    vmovaps 208(%rax), %xmm1
16150 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16151 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16152 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %xmm0
16153 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16154 ; AVX2-FCP-NEXT:    vmovaps 224(%rax), %xmm2
16155 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16156 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %xmm3
16157 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16158 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16159 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16160 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16161 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %xmm3
16162 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16163 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16164 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16165 ; AVX2-FCP-NEXT:    vbroadcastsd 232(%rcx), %ymm3
16166 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16167 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16168 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16169 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16170 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16171 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16172 ; AVX2-FCP-NEXT:    vmovaps 224(%rdi), %ymm1
16173 ; AVX2-FCP-NEXT:    vmovaps 224(%rsi), %ymm2
16174 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16175 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16176 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16177 ; AVX2-FCP-NEXT:    vmovaps 224(%rdx), %ymm0
16178 ; AVX2-FCP-NEXT:    vmovaps 224(%r8), %ymm4
16179 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16180 ; AVX2-FCP-NEXT:    vmovaps 224(%r9), %ymm3
16181 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16182 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16183 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16184 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16185 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16186 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16187 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16188 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16189 ; AVX2-FCP-NEXT:    vmovaps 240(%rax), %xmm1
16190 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16191 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16192 ; AVX2-FCP-NEXT:    vmovaps 256(%rsi), %xmm0
16193 ; AVX2-FCP-NEXT:    vinsertf128 $1, 256(%rcx), %ymm0, %ymm0
16194 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %xmm1
16195 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16196 ; AVX2-FCP-NEXT:    vinsertf128 $1, 256(%rdx), %ymm1, %ymm1
16197 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16198 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16199 ; AVX2-FCP-NEXT:    vmovaps 256(%rdx), %ymm0
16200 ; AVX2-FCP-NEXT:    vbroadcastsd 264(%rcx), %ymm1
16201 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16202 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16203 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16204 ; AVX2-FCP-NEXT:    vmovaps 256(%r8), %xmm2
16205 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16206 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16207 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16208 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16209 ; AVX2-FCP-NEXT:    vmovaps 256(%rax), %xmm2
16210 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16211 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16212 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16213 ; AVX2-FCP-NEXT:    vmovaps 256(%rdi), %ymm2
16214 ; AVX2-FCP-NEXT:    vmovaps 256(%rsi), %ymm3
16215 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16216 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16217 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16218 ; AVX2-FCP-NEXT:    vmovaps 256(%r8), %ymm4
16219 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16220 ; AVX2-FCP-NEXT:    vmovaps 256(%r9), %ymm1
16221 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16222 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm4[0],ymm1[0],ymm4[2],ymm1[2]
16223 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16224 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16225 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16226 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16227 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16228 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16229 ; AVX2-FCP-NEXT:    vmovaps 272(%rax), %xmm1
16230 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16231 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16232 ; AVX2-FCP-NEXT:    vmovaps 288(%r8), %xmm0
16233 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16234 ; AVX2-FCP-NEXT:    vmovaps 288(%rax), %xmm2
16235 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16236 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %xmm3
16237 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16238 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16239 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16240 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16241 ; AVX2-FCP-NEXT:    vmovaps 288(%rdx), %xmm3
16242 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16243 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16244 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm3[1]
16245 ; AVX2-FCP-NEXT:    vbroadcastsd 296(%rcx), %ymm3
16246 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16247 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16248 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16249 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16250 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16251 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16252 ; AVX2-FCP-NEXT:    vmovaps 288(%rdi), %ymm1
16253 ; AVX2-FCP-NEXT:    vmovaps 288(%rsi), %ymm2
16254 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16255 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16256 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16257 ; AVX2-FCP-NEXT:    vmovaps 288(%rdx), %ymm0
16258 ; AVX2-FCP-NEXT:    vmovaps 288(%r8), %ymm4
16259 ; AVX2-FCP-NEXT:    vmovups %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16260 ; AVX2-FCP-NEXT:    vmovaps 288(%r9), %ymm3
16261 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16262 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
16263 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16264 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16265 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16266 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16267 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16268 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16269 ; AVX2-FCP-NEXT:    vmovaps 304(%rax), %xmm1
16270 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16271 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16272 ; AVX2-FCP-NEXT:    vmovaps 320(%rsi), %xmm0
16273 ; AVX2-FCP-NEXT:    vinsertf128 $1, 320(%rcx), %ymm0, %ymm0
16274 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %xmm1
16275 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16276 ; AVX2-FCP-NEXT:    vinsertf128 $1, 320(%rdx), %ymm1, %ymm1
16277 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16278 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16279 ; AVX2-FCP-NEXT:    vmovaps 320(%rdx), %ymm0
16280 ; AVX2-FCP-NEXT:    vbroadcastsd 328(%rcx), %ymm1
16281 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16282 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16283 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16284 ; AVX2-FCP-NEXT:    vmovaps 320(%r8), %xmm2
16285 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16286 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16287 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16288 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16289 ; AVX2-FCP-NEXT:    vmovaps 320(%rax), %xmm10
16290 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16291 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm10[1]
16292 ; AVX2-FCP-NEXT:    vmovaps 320(%rdi), %ymm2
16293 ; AVX2-FCP-NEXT:    vmovaps 320(%rsi), %ymm3
16294 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[2]
16295 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm4[4,5,6,7]
16296 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16297 ; AVX2-FCP-NEXT:    vmovaps 320(%r8), %ymm9
16298 ; AVX2-FCP-NEXT:    vmovaps 320(%r9), %ymm1
16299 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16300 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm9[0],ymm1[0],ymm9[2],ymm1[2]
16301 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16302 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16303 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16304 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16305 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16306 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16307 ; AVX2-FCP-NEXT:    vmovaps 336(%rax), %xmm1
16308 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16309 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16310 ; AVX2-FCP-NEXT:    vmovaps 352(%r8), %xmm0
16311 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16312 ; AVX2-FCP-NEXT:    vmovaps 352(%rax), %xmm2
16313 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16314 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %xmm3
16315 ; AVX2-FCP-NEXT:    vmovaps %xmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16316 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm3, %ymm0, %ymm3
16317 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16318 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16319 ; AVX2-FCP-NEXT:    vmovaps 352(%rdx), %xmm7
16320 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16321 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm7[1]
16322 ; AVX2-FCP-NEXT:    vbroadcastsd 360(%rcx), %ymm3
16323 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16324 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16325 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16326 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16327 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16328 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16329 ; AVX2-FCP-NEXT:    vmovaps 352(%rdi), %ymm1
16330 ; AVX2-FCP-NEXT:    vmovaps 352(%rsi), %ymm2
16331 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16332 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16333 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16334 ; AVX2-FCP-NEXT:    vmovaps 352(%rdx), %ymm0
16335 ; AVX2-FCP-NEXT:    vmovaps 352(%r8), %ymm5
16336 ; AVX2-FCP-NEXT:    vmovaps 352(%r9), %ymm3
16337 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16338 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm5[0],ymm3[0],ymm5[2],ymm3[2]
16339 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16340 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm4[2,3],ymm3[2,3]
16341 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16342 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16343 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16344 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16345 ; AVX2-FCP-NEXT:    vmovaps 368(%rax), %xmm1
16346 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16347 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16348 ; AVX2-FCP-NEXT:    vmovaps 384(%rsi), %xmm0
16349 ; AVX2-FCP-NEXT:    vinsertf128 $1, 384(%rcx), %ymm0, %ymm0
16350 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %xmm1
16351 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16352 ; AVX2-FCP-NEXT:    vinsertf128 $1, 384(%rdx), %ymm1, %ymm1
16353 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16354 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16355 ; AVX2-FCP-NEXT:    vmovaps 384(%rdx), %ymm0
16356 ; AVX2-FCP-NEXT:    vbroadcastsd 392(%rcx), %ymm1
16357 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm0[0,1,2,3],ymm1[4,5,6,7]
16358 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm2 = mem[0,0]
16359 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3,4,5,6,7]
16360 ; AVX2-FCP-NEXT:    vmovaps 384(%r8), %xmm2
16361 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16362 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm0, %ymm2
16363 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm2[6,7]
16364 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16365 ; AVX2-FCP-NEXT:    vmovaps 384(%rax), %xmm2
16366 ; AVX2-FCP-NEXT:    vmovaps %xmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill
16367 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16368 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm2[1]
16369 ; AVX2-FCP-NEXT:    vmovaps 384(%rdi), %ymm2
16370 ; AVX2-FCP-NEXT:    vmovaps 384(%rsi), %ymm3
16371 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm2[0],ymm3[0],ymm2[2],ymm3[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:    vmovaps 384(%r8), %ymm15
16375 ; AVX2-FCP-NEXT:    vmovaps 384(%r9), %ymm1
16376 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16377 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm1 = ymm15[0],ymm1[0],ymm15[2],ymm1[2]
16378 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],mem[0],ymm0[2],mem[2]
16379 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm1 = ymm4[2,3],ymm1[2,3]
16380 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16381 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm1 = ymm2[1],ymm3[1],ymm2[3],ymm3[3]
16382 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm1 = ymm1[0,2,3,3]
16383 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16384 ; AVX2-FCP-NEXT:    vmovaps 400(%rax), %xmm1
16385 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16386 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16387 ; AVX2-FCP-NEXT:    vmovaps 416(%r8), %xmm0
16388 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm1 = xmm0[0],mem[0]
16389 ; AVX2-FCP-NEXT:    vmovaps 416(%rax), %xmm2
16390 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm2, %ymm1, %ymm1
16391 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %xmm13
16392 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm13, %ymm0, %ymm3
16393 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16394 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16395 ; AVX2-FCP-NEXT:    vmovaps 416(%rdx), %xmm14
16396 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16397 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm14[1]
16398 ; AVX2-FCP-NEXT:    vbroadcastsd 424(%rcx), %ymm3
16399 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16400 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm0, %ymm0, %ymm0
16401 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1,2,3,4,5],ymm0[6,7]
16402 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16403 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm0 = mem[0,0]
16404 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm0 = xmm0[1],xmm2[1]
16405 ; AVX2-FCP-NEXT:    vmovaps 416(%rdi), %ymm1
16406 ; AVX2-FCP-NEXT:    vmovaps 416(%rsi), %ymm2
16407 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm3 = ymm1[0],ymm2[0],ymm1[2],ymm2[2]
16408 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm3[4,5,6,7]
16409 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16410 ; AVX2-FCP-NEXT:    vmovaps 416(%r8), %ymm0
16411 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
16412 ; AVX2-FCP-NEXT:    vmovaps 416(%rdx), %ymm3
16413 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm3[0],mem[0],ymm3[2],mem[2]
16414 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm0 = ymm4[2,3],ymm0[2,3]
16415 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16416 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm1[1],ymm2[1],ymm1[3],ymm2[3]
16417 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16418 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm3[6,7]
16419 ; AVX2-FCP-NEXT:    vmovaps 432(%rax), %xmm1
16420 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16421 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16422 ; AVX2-FCP-NEXT:    vmovaps 448(%rsi), %xmm0
16423 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%rcx), %ymm0, %ymm0
16424 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %xmm1
16425 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%rdx), %ymm1, %ymm1
16426 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm0 = ymm1[0],ymm0[0],ymm1[2],ymm0[2]
16427 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16428 ; AVX2-FCP-NEXT:    vmovaps 448(%rdi), %ymm0
16429 ; AVX2-FCP-NEXT:    vmovaps 448(%r8), %ymm11
16430 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16431 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm11[0,1],ymm0[0,1]
16432 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1],ymm1[2,3],ymm2[4,5,6,7]
16433 ; AVX2-FCP-NEXT:    vbroadcastsd 448(%rax), %ymm2
16434 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm2[4,5],ymm1[6,7]
16435 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16436 ; AVX2-FCP-NEXT:    vmovaps 448(%rdx), %ymm2
16437 ; AVX2-FCP-NEXT:    vbroadcastsd 456(%rcx), %ymm1
16438 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm2[0,1,2,3],ymm1[4,5,6,7]
16439 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16440 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3,4,5,6,7]
16441 ; AVX2-FCP-NEXT:    vinsertf128 $1, 448(%r8), %ymm0, %ymm3
16442 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16443 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16444 ; AVX2-FCP-NEXT:    vmovaps 448(%rsi), %ymm1
16445 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16446 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
16447 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
16448 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16449 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
16450 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16451 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm2[6,7]
16452 ; AVX2-FCP-NEXT:    vmovaps 464(%rax), %xmm1
16453 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16454 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16455 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %ymm0
16456 ; AVX2-FCP-NEXT:    vmovaps 480(%r8), %ymm12
16457 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16458 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm3 = ymm12[0,1],ymm0[0,1]
16459 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm3[0,1],ymm1[2,3],ymm3[4,5,6,7]
16460 ; AVX2-FCP-NEXT:    vbroadcastsd 480(%rax), %ymm3
16461 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5],ymm1[6,7]
16462 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16463 ; AVX2-FCP-NEXT:    vmovaps 480(%rdx), %xmm8
16464 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm1 = mem[0,0]
16465 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} xmm1 = xmm1[1],xmm8[1]
16466 ; AVX2-FCP-NEXT:    vbroadcastsd 488(%rcx), %ymm3
16467 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3],ymm3[4,5,6,7]
16468 ; AVX2-FCP-NEXT:    vinsertf128 $1, 480(%r8), %ymm0, %ymm3
16469 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm1[0,1,2,3,4,5],ymm3[6,7]
16470 ; AVX2-FCP-NEXT:    vmovups %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16471 ; AVX2-FCP-NEXT:    vmovaps 480(%rsi), %ymm1
16472 ; AVX2-FCP-NEXT:    vmovddup {{.*#+}} xmm3 = mem[0,0]
16473 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm4 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
16474 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm3[0,1,2,3],ymm4[4,5,6,7]
16475 ; AVX2-FCP-NEXT:    vmovups %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16476 ; AVX2-FCP-NEXT:    vunpckhpd {{.*#+}} ymm0 = ymm0[1],ymm1[1],ymm0[3],ymm1[3]
16477 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16478 ; AVX2-FCP-NEXT:    vmovaps 480(%rdx), %ymm6
16479 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm6[6,7]
16480 ; AVX2-FCP-NEXT:    vmovaps 496(%rax), %xmm1
16481 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16482 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16483 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16484 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16485 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16486 ; AVX2-FCP-NEXT:    vbroadcastsd (%rsp), %ymm1 # 16-byte Folded Reload
16487 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16488 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16489 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16490 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16491 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16492 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16493 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16494 ; AVX2-FCP-NEXT:    vbroadcastsd 24(%rcx), %ymm1
16495 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16496 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16497 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16498 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16499 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16500 ; AVX2-FCP-NEXT:    vbroadcastsd 32(%rcx), %ymm1
16501 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16502 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16503 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16504 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16505 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16506 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16507 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16508 ; AVX2-FCP-NEXT:    vbroadcastsd 56(%rcx), %ymm1
16509 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16510 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16511 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16512 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16513 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16514 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16515 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16516 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16517 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16518 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16519 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16520 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16521 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16522 ; AVX2-FCP-NEXT:    vbroadcastsd 88(%rcx), %ymm1
16523 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16524 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16525 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16526 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16527 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16528 ; AVX2-FCP-NEXT:    vbroadcastsd 96(%rcx), %ymm1
16529 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16530 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16531 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16532 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16533 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16534 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16535 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16536 ; AVX2-FCP-NEXT:    vbroadcastsd 120(%rcx), %ymm1
16537 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16538 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16539 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16540 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16541 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16542 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16543 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16544 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16545 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16546 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16547 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16548 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16549 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16550 ; AVX2-FCP-NEXT:    vbroadcastsd 152(%rcx), %ymm1
16551 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16552 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16553 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16554 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16555 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16556 ; AVX2-FCP-NEXT:    vbroadcastsd 160(%rcx), %ymm1
16557 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16558 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16559 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16560 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16561 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16562 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16563 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16564 ; AVX2-FCP-NEXT:    vbroadcastsd 184(%rcx), %ymm1
16565 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16566 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16567 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16568 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16569 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16570 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16571 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16572 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16573 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16574 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16575 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16576 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16577 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16578 ; AVX2-FCP-NEXT:    vbroadcastsd 216(%rcx), %ymm1
16579 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16580 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16581 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16582 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16583 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16584 ; AVX2-FCP-NEXT:    vbroadcastsd 224(%rcx), %ymm1
16585 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16586 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16587 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16588 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16589 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16590 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16591 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16592 ; AVX2-FCP-NEXT:    vbroadcastsd 248(%rcx), %ymm1
16593 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16594 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16595 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16596 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16597 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16598 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16599 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16600 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16601 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16602 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16603 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16604 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16605 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16606 ; AVX2-FCP-NEXT:    vbroadcastsd 280(%rcx), %ymm1
16607 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16608 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16609 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16610 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16611 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16612 ; AVX2-FCP-NEXT:    vbroadcastsd 288(%rcx), %ymm1
16613 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16614 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16615 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16616 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 32-byte Folded Reload
16617 ; AVX2-FCP-NEXT:    # ymm0 = ymm0[1],mem[1],ymm0[3],mem[3]
16618 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16619 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16620 ; AVX2-FCP-NEXT:    vbroadcastsd 312(%rcx), %ymm1
16621 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16622 ; AVX2-FCP-NEXT:    vmovups %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16623 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16624 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16625 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16626 ; AVX2-FCP-NEXT:    vbroadcastsd %xmm10, %ymm1
16627 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm10 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16628 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm9, %ymm0 # 32-byte Folded Reload
16629 ; AVX2-FCP-NEXT:    # ymm0 = ymm9[1],mem[1],ymm9[3],mem[3]
16630 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16631 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16632 ; AVX2-FCP-NEXT:    vbroadcastsd 344(%rcx), %ymm1
16633 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm9 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16634 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16635 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16636 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm7, %ymm0, %ymm0
16637 ; AVX2-FCP-NEXT:    vbroadcastsd 352(%rcx), %ymm1
16638 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm7 = ymm0[0,1,2,3,4,5],ymm1[6,7]
16639 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm5, %ymm0 # 32-byte Folded Reload
16640 ; AVX2-FCP-NEXT:    # ymm0 = ymm5[1],mem[1],ymm5[3],mem[3]
16641 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16642 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16643 ; AVX2-FCP-NEXT:    vbroadcastsd 376(%rcx), %ymm1
16644 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm5 = ymm1[0,1],ymm0[2,3,4,5,6,7]
16645 ; AVX2-FCP-NEXT:    vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload
16646 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
16647 ; AVX2-FCP-NEXT:    vinsertf128 $1, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm0 # 16-byte Folded Reload
16648 ; AVX2-FCP-NEXT:    vbroadcastsd {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 16-byte Folded Reload
16649 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm4 = ymm0[0,1,2,3],ymm1[4,5],ymm0[6,7]
16650 ; AVX2-FCP-NEXT:    vunpckhpd {{[-0-9]+}}(%r{{[sb]}}p), %ymm15, %ymm0 # 32-byte Folded Reload
16651 ; AVX2-FCP-NEXT:    # ymm0 = ymm15[1],mem[1],ymm15[3],mem[3]
16652 ; AVX2-FCP-NEXT:    vpermpd {{.*#+}} ymm0 = ymm0[0,2,3,3]
16653 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm0 = ymm0[0,1,2,3,4,5],mem[6,7]
16654 ; AVX2-FCP-NEXT:    vbroadcastsd 408(%rcx), %ymm15
16655 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm3 = ymm15[0,1],ymm0[2,3,4,5,6,7]
16656 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm15 = xmm13[0],mem[0]
16657 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm14, %ymm15, %ymm14
16658 ; AVX2-FCP-NEXT:    vbroadcastsd 416(%rcx), %ymm15
16659 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm14 = ymm14[0,1,2,3,4,5],ymm15[6,7]
16660 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%rcx), %ymm15
16661 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm15 = xmm15[0,1],mem[2,3]
16662 ; AVX2-FCP-NEXT:    vbroadcastsd 440(%r9), %ymm13
16663 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm15 = ymm15[0,1,2,3],ymm13[4,5,6,7]
16664 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm2 = ymm2[0],mem[0],ymm2[2],mem[2]
16665 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm2 = ymm2[2,3],ymm11[2,3]
16666 ; AVX2-FCP-NEXT:    vbroadcastsd 464(%r9), %ymm11
16667 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm2 = ymm2[0,1,2,3,4,5],ymm11[6,7]
16668 ; AVX2-FCP-NEXT:    vbroadcastsd 472(%rcx), %ymm11
16669 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm11 = xmm11[0,1],mem[2,3]
16670 ; AVX2-FCP-NEXT:    vbroadcastsd 472(%r9), %ymm13
16671 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm11[0,1,2,3],ymm13[4,5,6,7]
16672 ; AVX2-FCP-NEXT:    vmovaps 448(%rax), %ymm0
16673 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm11 # 32-byte Folded Reload
16674 ; AVX2-FCP-NEXT:    # ymm11 = mem[0,1],ymm0[2,3],mem[4,5,6,7]
16675 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm1 = ymm13[0,1,2,3,4,5],ymm0[6,7]
16676 ; AVX2-FCP-NEXT:    vmovaps 480(%rdi), %xmm13
16677 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} xmm13 = xmm13[0],mem[0]
16678 ; AVX2-FCP-NEXT:    vinsertf128 $1, %xmm8, %ymm13, %ymm8
16679 ; AVX2-FCP-NEXT:    vbroadcastsd 480(%rcx), %ymm13
16680 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],ymm13[6,7]
16681 ; AVX2-FCP-NEXT:    vunpcklpd {{.*#+}} ymm6 = ymm6[0],mem[0],ymm6[2],mem[2]
16682 ; AVX2-FCP-NEXT:    vperm2f128 {{.*#+}} ymm6 = ymm6[2,3],ymm12[2,3]
16683 ; AVX2-FCP-NEXT:    vbroadcastsd 496(%r9), %ymm12
16684 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm6 = ymm6[0,1,2,3,4,5],ymm12[6,7]
16685 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%rcx), %ymm12
16686 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} xmm12 = xmm12[0,1],mem[2,3]
16687 ; AVX2-FCP-NEXT:    vbroadcastsd 504(%r9), %ymm13
16688 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3],ymm13[4,5,6,7]
16689 ; AVX2-FCP-NEXT:    vmovaps 480(%rax), %ymm13
16690 ; AVX2-FCP-NEXT:    vblendps $243, {{[-0-9]+}}(%r{{[sb]}}p), %ymm13, %ymm0 # 32-byte Folded Reload
16691 ; AVX2-FCP-NEXT:    # ymm0 = mem[0,1],ymm13[2,3],mem[4,5,6,7]
16692 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm12 = ymm12[0,1,2,3,4,5],ymm13[6,7]
16693 ; AVX2-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rcx
16694 ; AVX2-FCP-NEXT:    vblendps {{.*#+}} ymm13 = ymm15[0,1,2,3,4,5],mem[6,7]
16695 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 3552(%rcx)
16696 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm12 # 32-byte Reload
16697 ; AVX2-FCP-NEXT:    vmovaps %ymm12, 3520(%rcx)
16698 ; AVX2-FCP-NEXT:    vmovaps %ymm6, 3488(%rcx)
16699 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3456(%rcx)
16700 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16701 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3424(%rcx)
16702 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16703 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3392(%rcx)
16704 ; AVX2-FCP-NEXT:    vmovaps %ymm8, 3360(%rcx)
16705 ; AVX2-FCP-NEXT:    vmovaps %ymm1, 3328(%rcx)
16706 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16707 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3296(%rcx)
16708 ; AVX2-FCP-NEXT:    vmovaps %ymm2, 3264(%rcx)
16709 ; AVX2-FCP-NEXT:    vmovaps %ymm11, 3232(%rcx)
16710 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16711 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3200(%rcx)
16712 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16713 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3168(%rcx)
16714 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16715 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3136(%rcx)
16716 ; AVX2-FCP-NEXT:    vmovaps %ymm13, 3104(%rcx)
16717 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16718 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3072(%rcx)
16719 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16720 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3040(%rcx)
16721 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16722 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 3008(%rcx)
16723 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16724 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2976(%rcx)
16725 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16726 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2944(%rcx)
16727 ; AVX2-FCP-NEXT:    vmovaps %ymm14, 2912(%rcx)
16728 ; AVX2-FCP-NEXT:    vmovaps %ymm3, 2880(%rcx)
16729 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16730 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2848(%rcx)
16731 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16732 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2816(%rcx)
16733 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16734 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2784(%rcx)
16735 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16736 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2752(%rcx)
16737 ; AVX2-FCP-NEXT:    vmovaps %ymm4, 2720(%rcx)
16738 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16739 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2688(%rcx)
16740 ; AVX2-FCP-NEXT:    vmovaps %ymm5, 2656(%rcx)
16741 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16742 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2624(%rcx)
16743 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16744 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2592(%rcx)
16745 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16746 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2560(%rcx)
16747 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16748 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2528(%rcx)
16749 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16750 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2496(%rcx)
16751 ; AVX2-FCP-NEXT:    vmovaps %ymm7, 2464(%rcx)
16752 ; AVX2-FCP-NEXT:    vmovaps %ymm9, 2432(%rcx)
16753 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16754 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2400(%rcx)
16755 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16756 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2368(%rcx)
16757 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16758 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2336(%rcx)
16759 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16760 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2304(%rcx)
16761 ; AVX2-FCP-NEXT:    vmovaps %ymm10, 2272(%rcx)
16762 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16763 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2240(%rcx)
16764 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16765 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2208(%rcx)
16766 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16767 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2176(%rcx)
16768 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16769 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2144(%rcx)
16770 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16771 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2112(%rcx)
16772 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16773 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2080(%rcx)
16774 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16775 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2048(%rcx)
16776 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16777 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 2016(%rcx)
16778 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16779 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1984(%rcx)
16780 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16781 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1952(%rcx)
16782 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16783 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1920(%rcx)
16784 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16785 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1888(%rcx)
16786 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16787 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1856(%rcx)
16788 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16789 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1824(%rcx)
16790 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16791 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1792(%rcx)
16792 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16793 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1760(%rcx)
16794 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16795 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1728(%rcx)
16796 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16797 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1696(%rcx)
16798 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16799 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1664(%rcx)
16800 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16801 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1632(%rcx)
16802 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16803 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1600(%rcx)
16804 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16805 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1568(%rcx)
16806 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16807 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1536(%rcx)
16808 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16809 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1504(%rcx)
16810 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16811 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1472(%rcx)
16812 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16813 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1440(%rcx)
16814 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16815 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1408(%rcx)
16816 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16817 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1376(%rcx)
16818 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16819 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1344(%rcx)
16820 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16821 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1312(%rcx)
16822 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16823 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1280(%rcx)
16824 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16825 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1248(%rcx)
16826 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16827 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1216(%rcx)
16828 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16829 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1184(%rcx)
16830 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16831 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1152(%rcx)
16832 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16833 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1120(%rcx)
16834 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16835 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1088(%rcx)
16836 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16837 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1056(%rcx)
16838 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16839 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 1024(%rcx)
16840 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16841 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 992(%rcx)
16842 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16843 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 960(%rcx)
16844 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16845 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 928(%rcx)
16846 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16847 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 896(%rcx)
16848 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16849 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 864(%rcx)
16850 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16851 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 832(%rcx)
16852 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16853 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 800(%rcx)
16854 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16855 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 768(%rcx)
16856 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16857 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 736(%rcx)
16858 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16859 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 704(%rcx)
16860 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16861 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 672(%rcx)
16862 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16863 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 640(%rcx)
16864 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16865 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 608(%rcx)
16866 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16867 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 576(%rcx)
16868 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16869 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 544(%rcx)
16870 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16871 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 512(%rcx)
16872 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16873 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 480(%rcx)
16874 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16875 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 448(%rcx)
16876 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16877 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 416(%rcx)
16878 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16879 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 384(%rcx)
16880 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16881 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 352(%rcx)
16882 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16883 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 320(%rcx)
16884 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16885 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 288(%rcx)
16886 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16887 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 256(%rcx)
16888 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16889 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 224(%rcx)
16890 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16891 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 192(%rcx)
16892 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16893 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 160(%rcx)
16894 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16895 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 128(%rcx)
16896 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16897 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 96(%rcx)
16898 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16899 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 64(%rcx)
16900 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16901 ; AVX2-FCP-NEXT:    vmovaps %ymm0, 32(%rcx)
16902 ; AVX2-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
16903 ; AVX2-FCP-NEXT:    vmovaps %ymm0, (%rcx)
16904 ; AVX2-FCP-NEXT:    addq $3880, %rsp # imm = 0xF28
16905 ; AVX2-FCP-NEXT:    vzeroupper
16906 ; AVX2-FCP-NEXT:    retq
16908 ; AVX512-LABEL: store_i64_stride7_vf64:
16909 ; AVX512:       # %bb.0:
16910 ; AVX512-NEXT:    subq $6248, %rsp # imm = 0x1868
16911 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
16912 ; AVX512-NEXT:    vmovdqa64 (%rdi), %zmm7
16913 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16914 ; AVX512-NEXT:    vmovdqa64 64(%rdi), %zmm19
16915 ; AVX512-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16916 ; AVX512-NEXT:    vmovdqa64 (%rsi), %zmm9
16917 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16918 ; AVX512-NEXT:    vmovdqa64 64(%rsi), %zmm16
16919 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16920 ; AVX512-NEXT:    vmovdqa64 64(%rdx), %zmm17
16921 ; AVX512-NEXT:    vmovdqu64 %zmm17, (%rsp) # 64-byte Spill
16922 ; AVX512-NEXT:    vmovdqa64 (%rdx), %zmm3
16923 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16924 ; AVX512-NEXT:    vmovdqa64 (%rcx), %zmm4
16925 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16926 ; AVX512-NEXT:    vmovdqa64 64(%rcx), %zmm18
16927 ; AVX512-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16928 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [11,3,11,3,11,3,11,3]
16929 ; AVX512-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16930 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
16931 ; AVX512-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
16932 ; AVX512-NEXT:    movb $96, %r10b
16933 ; AVX512-NEXT:    kmovw %r10d, %k1
16934 ; AVX512-NEXT:    vmovdqa64 (%r8), %zmm1
16935 ; AVX512-NEXT:    vmovdqa64 (%r9), %zmm15
16936 ; AVX512-NEXT:    vmovdqa64 (%rax), %zmm5
16937 ; AVX512-NEXT:    vmovdqa64 64(%rax), %zmm6
16938 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
16939 ; AVX512-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16940 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16941 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
16942 ; AVX512-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
16943 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
16944 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm0, %zmm2
16945 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm8
16946 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [4,9,0,3,4,9,0,3]
16947 ; AVX512-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
16948 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm24, %zmm2
16949 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16950 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm0
16951 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm11, %zmm0
16952 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2
16953 ; AVX512-NEXT:    vpermt2q %zmm4, %zmm31, %zmm2
16954 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
16955 ; AVX512-NEXT:    vmovdqa (%r9), %ymm7
16956 ; AVX512-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16957 ; AVX512-NEXT:    vmovdqa 64(%r9), %ymm3
16958 ; AVX512-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16959 ; AVX512-NEXT:    vmovdqa (%r8), %ymm0
16960 ; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16961 ; AVX512-NEXT:    vmovdqa 64(%r8), %ymm4
16962 ; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
16963 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
16964 ; AVX512-NEXT:    movb $28, %r10b
16965 ; AVX512-NEXT:    kmovw %r10d, %k2
16966 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
16967 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16968 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
16969 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
16970 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm0
16971 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm2, %zmm0
16972 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm7
16973 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
16974 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
16975 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm0
16976 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm14
16977 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16978 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
16979 ; AVX512-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
16980 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm0
16981 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm9
16982 ; AVX512-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16983 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm0
16984 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
16985 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
16986 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm0
16987 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm15
16988 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16989 ; AVX512-NEXT:    vpermt2q %zmm9, %zmm25, %zmm1
16990 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [6,13,14,7,6,13,14,7]
16991 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
16992 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
16993 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
16994 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm1
16995 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
16996 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm2
16997 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
16998 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
16999 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
17000 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
17001 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17002 ; AVX512-NEXT:    vmovdqa64 64(%r8), %zmm1
17003 ; AVX512-NEXT:    vmovdqa64 64(%r9), %zmm16
17004 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17005 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm8, %zmm3
17006 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm24, %zmm3
17007 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17008 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17009 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm7, %zmm3
17010 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm14, %zmm3
17011 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17012 ; AVX512-NEXT:    vmovdqa64 %zmm16, %zmm3
17013 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
17014 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm15, %zmm3
17015 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17016 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm29
17017 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm25, %zmm1
17018 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm6
17019 ; AVX512-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17020 ; AVX512-NEXT:    vmovdqa64 128(%rdi), %zmm27
17021 ; AVX512-NEXT:    vmovdqa64 128(%rsi), %zmm0
17022 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17023 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm1
17024 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
17025 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm17
17026 ; AVX512-NEXT:    vmovdqa64 128(%rdx), %zmm21
17027 ; AVX512-NEXT:    vmovdqa64 128(%rcx), %zmm0
17028 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17029 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm3
17030 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
17031 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
17032 ; AVX512-NEXT:    vmovdqa64 128(%rax), %zmm5
17033 ; AVX512-NEXT:    vmovdqa 128(%r9), %ymm4
17034 ; AVX512-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17035 ; AVX512-NEXT:    vmovdqa 128(%r8), %ymm1
17036 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17037 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
17038 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
17039 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17040 ; AVX512-NEXT:    vmovdqa64 128(%r8), %zmm1
17041 ; AVX512-NEXT:    vmovdqa64 128(%r9), %zmm6
17042 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17043 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm8, %zmm3
17044 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm11
17045 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm24, %zmm3
17046 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17047 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17048 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm7, %zmm3
17049 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm14, %zmm3
17050 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17051 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm3
17052 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
17053 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm15, %zmm3
17054 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17055 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm20
17056 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm25, %zmm1
17057 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
17058 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17059 ; AVX512-NEXT:    vmovdqa64 192(%rdi), %zmm26
17060 ; AVX512-NEXT:    vmovdqa64 192(%rsi), %zmm0
17061 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17062 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm1
17063 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm17, %zmm1
17064 ; AVX512-NEXT:    vmovdqa64 192(%rdx), %zmm18
17065 ; AVX512-NEXT:    vmovdqa64 192(%rcx), %zmm0
17066 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17067 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm3
17068 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
17069 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
17070 ; AVX512-NEXT:    vmovdqa64 192(%rax), %zmm2
17071 ; AVX512-NEXT:    vmovdqa 192(%r9), %ymm5
17072 ; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17073 ; AVX512-NEXT:    vmovdqa 192(%r8), %ymm1
17074 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17075 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
17076 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
17077 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17078 ; AVX512-NEXT:    vmovdqa64 192(%r8), %zmm1
17079 ; AVX512-NEXT:    vmovdqa64 192(%r9), %zmm8
17080 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17081 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm11, %zmm3
17082 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm24, %zmm3
17083 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17084 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm3
17085 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm7, %zmm3
17086 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm28
17087 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
17088 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17089 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm30
17090 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm5
17091 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm13, %zmm5
17092 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm3
17093 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm15, %zmm5
17094 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm0
17095 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17096 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm9
17097 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
17098 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm0
17099 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17100 ; AVX512-NEXT:    vmovdqa64 256(%rdi), %zmm15
17101 ; AVX512-NEXT:    vmovdqa64 256(%rsi), %zmm22
17102 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17103 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm14
17104 ; AVX512-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17105 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm17, %zmm1
17106 ; AVX512-NEXT:    vmovdqa64 256(%rdx), %zmm12
17107 ; AVX512-NEXT:    vmovdqa64 256(%rcx), %zmm23
17108 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm5
17109 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm31, %zmm5
17110 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
17111 ; AVX512-NEXT:    vmovdqa64 256(%rax), %zmm0
17112 ; AVX512-NEXT:    vmovdqa 256(%r9), %ymm7
17113 ; AVX512-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17114 ; AVX512-NEXT:    vmovdqa 256(%r8), %ymm1
17115 ; AVX512-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17116 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[2],ymm7[2]
17117 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
17118 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17119 ; AVX512-NEXT:    vmovdqa64 256(%r8), %zmm5
17120 ; AVX512-NEXT:    vmovdqa64 256(%r9), %zmm2
17121 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm17
17122 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm7
17123 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm11, %zmm17
17124 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm24, %zmm17
17125 ; AVX512-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17126 ; AVX512-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17127 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm11
17128 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm28, %zmm11
17129 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm30, %zmm11
17130 ; AVX512-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17131 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17132 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm11
17133 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm13, %zmm11
17134 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
17135 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17136 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17137 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm4
17138 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm25, %zmm5
17139 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm10, %zmm0
17140 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17141 ; AVX512-NEXT:    vmovdqa64 320(%rdi), %zmm19
17142 ; AVX512-NEXT:    vmovdqa64 320(%rsi), %zmm0
17143 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17144 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm5
17145 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm14, %zmm5
17146 ; AVX512-NEXT:    vmovdqa64 320(%rdx), %zmm11
17147 ; AVX512-NEXT:    vmovdqa64 320(%rcx), %zmm17
17148 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm14
17149 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm31, %zmm14
17150 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k1}
17151 ; AVX512-NEXT:    vmovdqa64 320(%rax), %zmm1
17152 ; AVX512-NEXT:    vmovdqa 320(%r9), %ymm5
17153 ; AVX512-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17154 ; AVX512-NEXT:    vmovdqa 320(%r8), %ymm0
17155 ; AVX512-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17156 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]
17157 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm5[2,3,2,3],zmm1[2,3,2,3]
17158 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17159 ; AVX512-NEXT:    vmovdqa64 320(%r8), %zmm5
17160 ; AVX512-NEXT:    vmovdqa64 320(%r9), %zmm14
17161 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17162 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm7, %zmm0
17163 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
17164 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17165 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17166 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
17167 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm30, %zmm0
17168 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17169 ; AVX512-NEXT:    vmovdqa64 %zmm14, %zmm0
17170 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
17171 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
17172 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17173 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm3
17174 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm25, %zmm5
17175 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm10, %zmm1
17176 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17177 ; AVX512-NEXT:    vmovdqa64 384(%rdx), %zmm5
17178 ; AVX512-NEXT:    vmovdqa64 384(%rcx), %zmm24
17179 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm0
17180 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm25, %zmm0
17181 ; AVX512-NEXT:    vmovdqa64 384(%rdi), %zmm10
17182 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17183 ; AVX512-NEXT:    vmovdqa64 384(%rsi), %zmm1
17184 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17185 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm10
17186 ; AVX512-NEXT:    movb $24, %r10b
17187 ; AVX512-NEXT:    kmovw %r10d, %k3
17188 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
17189 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
17190 ; AVX512-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17191 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17192 ; AVX512-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
17193 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17194 ; AVX512-NEXT:    vpermt2q %zmm16, %zmm1, %zmm29
17195 ; AVX512-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17196 ; AVX512-NEXT:    vpermt2q %zmm6, %zmm1, %zmm20
17197 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17198 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm1, %zmm9
17199 ; AVX512-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17200 ; AVX512-NEXT:    vpermt2q %zmm2, %zmm1, %zmm4
17201 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17202 ; AVX512-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
17203 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17204 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17205 ; AVX512-NEXT:    vmovdqa64 384(%r8), %zmm0
17206 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
17207 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
17208 ; AVX512-NEXT:    vmovdqa64 384(%r9), %zmm1
17209 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,15,0]
17210 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm3, %zmm10
17211 ; AVX512-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17212 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
17213 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17214 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm7
17215 ; AVX512-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17216 ; AVX512-NEXT:    vpermi2q %zmm1, %zmm0, %zmm28
17217 ; AVX512-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17218 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm13, %zmm1
17219 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17220 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,5,13,5,13,5,13,5]
17221 ; AVX512-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17222 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17223 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17224 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17225 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
17226 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17227 ; AVX512-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,6,14,6,14,6,14]
17228 ; AVX512-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17229 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17230 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
17231 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17232 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17233 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm2
17234 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17235 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
17236 ; AVX512-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
17237 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
17238 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17239 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
17240 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17241 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
17242 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm7, %zmm1
17243 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17244 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17245 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
17246 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17247 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17248 ; AVX512-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
17249 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17250 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm2, %zmm13
17251 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm14
17252 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17253 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
17254 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm7, %zmm0
17255 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17256 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17257 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm10, %zmm0
17258 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17259 ; AVX512-NEXT:    vmovdqa64 %zmm21, %zmm0
17260 ; AVX512-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
17261 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17262 ; AVX512-NEXT:    vpermt2q %zmm21, %zmm2, %zmm29
17263 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17264 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
17265 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm7, %zmm0
17266 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17267 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17268 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm10, %zmm0
17269 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17270 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm0
17271 ; AVX512-NEXT:    vpermt2q %zmm20, %zmm25, %zmm0
17272 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17273 ; AVX512-NEXT:    vpermt2q %zmm18, %zmm2, %zmm20
17274 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17275 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm7, %zmm0
17276 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17277 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17278 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm10, %zmm0
17279 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17280 ; AVX512-NEXT:    vmovdqa64 %zmm12, %zmm0
17281 ; AVX512-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
17282 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17283 ; AVX512-NEXT:    vpermt2q %zmm12, %zmm2, %zmm23
17284 ; AVX512-NEXT:    vmovdqa64 %zmm23, %zmm21
17285 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17286 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm7, %zmm0
17287 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17288 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17289 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm10, %zmm0
17290 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17291 ; AVX512-NEXT:    vmovdqa64 %zmm11, %zmm0
17292 ; AVX512-NEXT:    vpermt2q %zmm17, %zmm25, %zmm0
17293 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17294 ; AVX512-NEXT:    vpermt2q %zmm11, %zmm2, %zmm17
17295 ; AVX512-NEXT:    vmovdqa64 %zmm17, %zmm28
17296 ; AVX512-NEXT:    vmovdqa64 448(%rdx), %zmm8
17297 ; AVX512-NEXT:    vmovdqa64 448(%rcx), %zmm0
17298 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm6
17299 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm31, %zmm6
17300 ; AVX512-NEXT:    vmovdqa64 %zmm24, %zmm11
17301 ; AVX512-NEXT:    vpermi2q %zmm24, %zmm5, %zmm31
17302 ; AVX512-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
17303 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
17304 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm7, %zmm1
17305 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17306 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm1
17307 ; AVX512-NEXT:    vpermt2q %zmm24, %zmm10, %zmm1
17308 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17309 ; AVX512-NEXT:    vpermt2q %zmm5, %zmm2, %zmm11
17310 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm9
17311 ; AVX512-NEXT:    vpermt2q %zmm8, %zmm2, %zmm9
17312 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm12
17313 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm12
17314 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm13
17315 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm13
17316 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm8
17317 ; AVX512-NEXT:    movb $48, %r10b
17318 ; AVX512-NEXT:    kmovw %r10d, %k4
17319 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
17320 ; AVX512-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
17321 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17322 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17323 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17324 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
17325 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17326 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
17327 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17328 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2
17329 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17330 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16
17331 ; AVX512-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
17332 ; AVX512-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
17333 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
17334 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17335 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm2
17336 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17337 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
17338 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17339 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm16
17340 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17341 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm2
17342 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17343 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
17344 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17345 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm14 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
17346 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17347 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3
17348 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2
17349 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14
17350 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
17351 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17352 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm3
17353 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17354 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
17355 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17356 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm14
17357 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17358 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17359 ; AVX512-NEXT:    vpermt2q %zmm27, %zmm5, %zmm1
17360 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17361 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k4} = zmm27[0],zmm0[0],zmm27[2],zmm0[2],zmm27[4],zmm0[4],zmm27[6],zmm0[6]
17362 ; AVX512-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17363 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm2
17364 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm1
17365 ; AVX512-NEXT:    vmovdqa64 %zmm27, %zmm23
17366 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm4, %zmm27
17367 ; AVX512-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17368 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
17369 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
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, %zmm23
17373 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17374 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm1
17375 ; AVX512-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
17376 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17377 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
17378 ; AVX512-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17379 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm29
17380 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm1
17381 ; AVX512-NEXT:    vmovdqa64 %zmm26, %zmm31
17382 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
17383 ; AVX512-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17384 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm29
17385 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
17386 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17387 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
17388 ; AVX512-NEXT:    vmovdqa64 %zmm22, %zmm30
17389 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
17390 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm21 {%k4} = zmm15[0],zmm22[0],zmm15[2],zmm22[2],zmm15[4],zmm22[4],zmm15[6],zmm22[6]
17391 ; AVX512-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17392 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17393 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm0
17394 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm26
17395 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm27
17396 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm4, %zmm27
17397 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm7, %zmm1
17398 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17399 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm10, %zmm0
17400 ; AVX512-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17401 ; AVX512-NEXT:    vpermt2q %zmm22, %zmm25, %zmm26
17402 ; AVX512-NEXT:    vmovdqa64 448(%rdi), %zmm15
17403 ; AVX512-NEXT:    vmovdqa64 448(%rsi), %zmm0
17404 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm17
17405 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm17
17406 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm22
17407 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17408 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm25, %zmm22
17409 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm24
17410 ; AVX512-NEXT:    vpermt2q %zmm19, %zmm5, %zmm24
17411 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm19[0],zmm1[0],zmm19[2],zmm1[2],zmm19[4],zmm1[4],zmm19[6],zmm1[6]
17412 ; AVX512-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17413 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm18
17414 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm2
17415 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm21
17416 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm4, %zmm21
17417 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm7, %zmm18
17418 ; AVX512-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
17419 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17420 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
17421 ; AVX512-NEXT:    vmovdqa64 %zmm19, %zmm20
17422 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
17423 ; AVX512-NEXT:    vpermt2q %zmm28, %zmm5, %zmm20
17424 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm3
17425 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
17426 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
17427 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm25
17428 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm1
17429 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm7, %zmm1
17430 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm7
17431 ; AVX512-NEXT:    vmovdqa64 %zmm15, %zmm2
17432 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
17433 ; AVX512-NEXT:    vpermi2q %zmm19, %zmm28, %zmm10
17434 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm28[0],zmm19[0],zmm28[2],zmm19[2],zmm28[4],zmm19[4],zmm28[6],zmm19[6]
17435 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17436 ; AVX512-NEXT:    vpermt2q %zmm19, %zmm4, %zmm28
17437 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} zmm9 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
17438 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
17439 ; AVX512-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
17440 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
17441 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k1}
17442 ; AVX512-NEXT:    vmovdqa64 448(%r8), %zmm3
17443 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
17444 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm9, %zmm5
17445 ; AVX512-NEXT:    vmovdqa64 %zmm13, %zmm1 {%k1}
17446 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [12,0,0,3,4,5,6,13]
17447 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm1, %zmm9
17448 ; AVX512-NEXT:    vmovdqa64 %zmm8, %zmm17 {%k3}
17449 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
17450 ; AVX512-NEXT:    vpermt2q %zmm3, %zmm1, %zmm17
17451 ; AVX512-NEXT:    movb $6, %sil
17452 ; AVX512-NEXT:    kmovw %esi, %k4
17453 ; AVX512-NEXT:    vpbroadcastq 456(%rcx), %ymm1
17454 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
17455 ; AVX512-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
17456 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,9,0,0,6,7]
17457 ; AVX512-NEXT:    vpermi2q %zmm3, %zmm0, %zmm8
17458 ; AVX512-NEXT:    movb $64, %sil
17459 ; AVX512-NEXT:    kmovw %esi, %k5
17460 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
17461 ; AVX512-NEXT:    movb $4, %sil
17462 ; AVX512-NEXT:    kmovw %esi, %k5
17463 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k5}
17464 ; AVX512-NEXT:    vmovdqa64 448(%r9), %zmm0
17465 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
17466 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
17467 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm11
17468 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
17469 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
17470 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
17471 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm9, %zmm5
17472 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [13,0,2,3,4,5,6,14]
17473 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
17474 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
17475 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm17
17476 ; AVX512-NEXT:    movb $12, %sil
17477 ; AVX512-NEXT:    kmovw %esi, %k5
17478 ; AVX512-NEXT:    vmovdqa 448(%rdx), %xmm2
17479 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
17480 ; AVX512-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
17481 ; AVX512-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
17482 ; AVX512-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
17483 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
17484 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
17485 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
17486 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm8, %zmm2
17487 ; AVX512-NEXT:    vmovdqa64 384(%rax), %zmm0
17488 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17489 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17490 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
17491 ; AVX512-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
17492 ; AVX512-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
17493 ; AVX512-NEXT:    vmovdqa 384(%r9), %ymm12
17494 ; AVX512-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17495 ; AVX512-NEXT:    vmovdqa 384(%r8), %ymm8
17496 ; AVX512-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17497 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
17498 ; AVX512-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
17499 ; AVX512-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
17500 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17501 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17502 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
17503 ; AVX512-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17504 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17505 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
17506 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
17507 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
17508 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17509 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
17510 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17511 ; AVX512-NEXT:    vmovdqa64 448(%rax), %zmm0
17512 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [0,1,2,3,10,5,6,7]
17513 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm3, %zmm12
17514 ; AVX512-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17515 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,12,3,4,5,6,7]
17516 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm5, %zmm3
17517 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17518 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,13,2,3,4,5,6,7]
17519 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
17520 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17521 ; AVX512-NEXT:    vpermt2q %zmm0, %zmm8, %zmm17
17522 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,8,7]
17523 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm4, %zmm3
17524 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17525 ; AVX512-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,9,6,7]
17526 ; AVX512-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
17527 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17528 ; AVX512-NEXT:    movb $8, %sil
17529 ; AVX512-NEXT:    kmovw %esi, %k2
17530 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
17531 ; AVX512-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17532 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17533 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k3}
17534 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17535 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
17536 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17537 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
17538 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17539 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
17540 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17541 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
17542 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17543 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k3}
17544 ; AVX512-NEXT:    movb $-31, %sil
17545 ; AVX512-NEXT:    kmovw %esi, %k2
17546 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17547 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
17548 ; AVX512-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17549 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17550 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
17551 ; AVX512-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17552 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17553 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
17554 ; AVX512-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17555 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17556 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
17557 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17558 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
17559 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17560 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
17561 ; AVX512-NEXT:    vmovdqa (%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), %zmm4 # 64-byte Reload
17565 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
17566 ; AVX512-NEXT:    vmovdqa 64(%rdx), %xmm0
17567 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17568 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17569 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17570 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k5}
17571 ; AVX512-NEXT:    vmovdqa 128(%rdx), %xmm0
17572 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17573 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17574 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17575 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
17576 ; AVX512-NEXT:    vmovdqa 192(%rdx), %xmm0
17577 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17578 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17579 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17580 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
17581 ; AVX512-NEXT:    vmovdqa 256(%rdx), %xmm0
17582 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17583 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17584 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
17585 ; AVX512-NEXT:    vmovdqa 320(%rdx), %xmm0
17586 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17587 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17588 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
17589 ; AVX512-NEXT:    vmovdqa 384(%rdx), %xmm0
17590 ; AVX512-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
17591 ; AVX512-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
17592 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
17593 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17594 ; AVX512-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm0
17595 ; AVX512-NEXT:    movb $112, %sil
17596 ; AVX512-NEXT:    kmovw %esi, %k2
17597 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
17598 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17599 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17600 ; AVX512-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm0
17601 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
17602 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17603 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17604 ; AVX512-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm0
17605 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
17606 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17607 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17608 ; AVX512-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
17609 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
17610 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17611 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17612 ; AVX512-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm0
17613 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
17614 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17615 ; AVX512-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm0
17616 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
17617 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17618 ; AVX512-NEXT:    vinserti32x4 $3, 384(%rax), %zmm0, %zmm0
17619 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
17620 ; AVX512-NEXT:    vpbroadcastq 8(%rcx), %ymm0
17621 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17622 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17623 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k4}
17624 ; AVX512-NEXT:    vpbroadcastq 72(%rcx), %ymm0
17625 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17626 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17627 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
17628 ; AVX512-NEXT:    vpbroadcastq 136(%rcx), %ymm0
17629 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17630 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17631 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
17632 ; AVX512-NEXT:    vpbroadcastq 200(%rcx), %ymm0
17633 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17634 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17635 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
17636 ; AVX512-NEXT:    vpbroadcastq 264(%rcx), %ymm0
17637 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17638 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
17639 ; AVX512-NEXT:    vpbroadcastq 328(%rcx), %ymm0
17640 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17641 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
17642 ; AVX512-NEXT:    vpbroadcastq 392(%rcx), %ymm0
17643 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
17644 ; AVX512-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
17645 ; AVX512-NEXT:    movb $56, %cl
17646 ; AVX512-NEXT:    kmovw %ecx, %k2
17647 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17648 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
17649 ; AVX512-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17650 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17651 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
17652 ; AVX512-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17653 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17654 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
17655 ; AVX512-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17656 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17657 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
17658 ; AVX512-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17659 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17660 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
17661 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17662 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
17663 ; AVX512-NEXT:    vmovdqa64 %zmm9, %zmm20 {%k2}
17664 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17665 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17666 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
17667 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17668 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17669 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
17670 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17671 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17672 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
17673 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17674 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
17675 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17676 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17677 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
17678 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17679 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k1}
17680 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17681 ; AVX512-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
17682 ; AVX512-NEXT:    movb $120, %cl
17683 ; AVX512-NEXT:    kmovw %ecx, %k1
17684 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
17685 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm19 {%k1}
17686 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17687 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
17688 ; AVX512-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
17689 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
17690 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
17691 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
17692 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm15 {%k1}
17693 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
17694 ; AVX512-NEXT:    vmovdqa64 %zmm29, %zmm25 {%k1}
17695 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
17696 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm29 {%k1}
17697 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
17698 ; AVX512-NEXT:    vmovdqa64 %zmm18, %zmm23 {%k1}
17699 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
17700 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm12 {%k1}
17701 ; AVX512-NEXT:    movb $-61, %cl
17702 ; AVX512-NEXT:    kmovw %ecx, %k1
17703 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17704 ; AVX512-NEXT:    vmovdqa64 %zmm2, %zmm16 {%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, %zmm13 # 64-byte Folded Reload
17707 ; AVX512-NEXT:    # zmm13 = zmm0[0,1,2,3],mem[4,5,6,7]
17708 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17709 ; AVX512-NEXT:    vmovdqa64 %zmm3, %zmm13 {%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, %zmm11 # 64-byte Folded Reload
17712 ; AVX512-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
17713 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17714 ; AVX512-NEXT:    vmovdqa64 %zmm4, %zmm11 {%k1}
17715 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17716 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
17717 ; AVX512-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
17718 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17719 ; AVX512-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
17720 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17721 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
17722 ; AVX512-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
17723 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17724 ; AVX512-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
17725 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17726 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
17727 ; AVX512-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
17728 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
17729 ; AVX512-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
17730 ; AVX512-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 64-byte Folded Reload
17731 ; AVX512-NEXT:    # zmm7 = zmm10[0,1,2,3],mem[4,5,6,7]
17732 ; AVX512-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k1}
17733 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17734 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17735 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17736 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17737 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17738 ; AVX512-NEXT:    movb $14, %cl
17739 ; AVX512-NEXT:    kmovw %ecx, %k1
17740 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
17741 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm10 {%k1}
17742 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17743 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17744 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17745 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17746 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17747 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
17748 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
17749 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17750 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17751 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17752 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17753 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17754 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
17755 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
17756 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17757 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17758 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17759 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17760 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17761 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17762 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
17763 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17764 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17765 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17766 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17767 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17768 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17769 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
17770 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
17771 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
17772 ; AVX512-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
17773 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17774 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17775 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
17776 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
17777 ; AVX512-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
17778 ; AVX512-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
17779 ; AVX512-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
17780 ; AVX512-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
17781 ; AVX512-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
17782 ; AVX512-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17783 ; AVX512-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
17784 ; AVX512-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17785 ; AVX512-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
17786 ; AVX512-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
17787 ; AVX512-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
17788 ; AVX512-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
17789 ; AVX512-NEXT:    vmovaps %zmm0, 2816(%rax)
17790 ; AVX512-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
17791 ; AVX512-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
17792 ; AVX512-NEXT:    vmovdqa64 %zmm22, 2624(%rax)
17793 ; AVX512-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
17794 ; AVX512-NEXT:    vmovdqa64 %zmm23, 2496(%rax)
17795 ; AVX512-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
17796 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
17797 ; AVX512-NEXT:    vmovaps %zmm6, 2368(%rax)
17798 ; AVX512-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
17799 ; AVX512-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
17800 ; AVX512-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
17801 ; AVX512-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
17802 ; AVX512-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
17803 ; AVX512-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
17804 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
17805 ; AVX512-NEXT:    vmovaps %zmm5, 1920(%rax)
17806 ; AVX512-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
17807 ; AVX512-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
17808 ; AVX512-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
17809 ; AVX512-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
17810 ; AVX512-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
17811 ; AVX512-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
17812 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
17813 ; AVX512-NEXT:    vmovaps %zmm4, 1472(%rax)
17814 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17815 ; AVX512-NEXT:    vmovaps %zmm0, 1408(%rax)
17816 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17817 ; AVX512-NEXT:    vmovaps %zmm0, 1344(%rax)
17818 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17819 ; AVX512-NEXT:    vmovaps %zmm0, 1280(%rax)
17820 ; AVX512-NEXT:    vmovdqa64 %zmm11, 1216(%rax)
17821 ; AVX512-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
17822 ; AVX512-NEXT:    vmovdqa64 %zmm9, 1088(%rax)
17823 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
17824 ; AVX512-NEXT:    vmovaps %zmm3, 1024(%rax)
17825 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17826 ; AVX512-NEXT:    vmovaps %zmm0, 960(%rax)
17827 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17828 ; AVX512-NEXT:    vmovaps %zmm0, 896(%rax)
17829 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17830 ; AVX512-NEXT:    vmovaps %zmm0, 832(%rax)
17831 ; AVX512-NEXT:    vmovdqa64 %zmm13, 768(%rax)
17832 ; AVX512-NEXT:    vmovdqa64 %zmm14, 704(%rax)
17833 ; AVX512-NEXT:    vmovdqa64 %zmm18, 640(%rax)
17834 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
17835 ; AVX512-NEXT:    vmovaps %zmm2, 576(%rax)
17836 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17837 ; AVX512-NEXT:    vmovaps %zmm0, 512(%rax)
17838 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17839 ; AVX512-NEXT:    vmovaps %zmm0, 448(%rax)
17840 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17841 ; AVX512-NEXT:    vmovaps %zmm0, 384(%rax)
17842 ; AVX512-NEXT:    vmovdqa64 %zmm16, 320(%rax)
17843 ; AVX512-NEXT:    vmovdqa64 %zmm19, 256(%rax)
17844 ; AVX512-NEXT:    vmovdqa64 %zmm10, 192(%rax)
17845 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17846 ; AVX512-NEXT:    vmovaps %zmm0, 128(%rax)
17847 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17848 ; AVX512-NEXT:    vmovaps %zmm0, 64(%rax)
17849 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17850 ; AVX512-NEXT:    vmovaps %zmm0, (%rax)
17851 ; AVX512-NEXT:    vmovdqa64 %zmm17, 3520(%rax)
17852 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17853 ; AVX512-NEXT:    vmovaps %zmm0, 3456(%rax)
17854 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17855 ; AVX512-NEXT:    vmovaps %zmm0, 3392(%rax)
17856 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17857 ; AVX512-NEXT:    vmovaps %zmm0, 3328(%rax)
17858 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17859 ; AVX512-NEXT:    vmovaps %zmm0, 3264(%rax)
17860 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17861 ; AVX512-NEXT:    vmovaps %zmm0, 3200(%rax)
17862 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17863 ; AVX512-NEXT:    vmovaps %zmm0, 3072(%rax)
17864 ; AVX512-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
17865 ; AVX512-NEXT:    vmovaps %zmm0, 3136(%rax)
17866 ; AVX512-NEXT:    addq $6248, %rsp # imm = 0x1868
17867 ; AVX512-NEXT:    vzeroupper
17868 ; AVX512-NEXT:    retq
17870 ; AVX512-FCP-LABEL: store_i64_stride7_vf64:
17871 ; AVX512-FCP:       # %bb.0:
17872 ; AVX512-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
17873 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
17874 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
17875 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17876 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13
17877 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17878 ; AVX512-FCP-NEXT:    vmovdqa64 (%rsi), %zmm8
17879 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17880 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm20
17881 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, (%rsp) # 64-byte Spill
17882 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
17883 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17884 ; AVX512-FCP-NEXT:    vmovdqa64 (%rdx), %zmm10
17885 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17886 ; AVX512-FCP-NEXT:    vmovdqa64 (%rcx), %zmm11
17887 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17888 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm19
17889 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17890 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [11,3,11,3,11,3,11,3]
17891 ; AVX512-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17892 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [2,10,0,3,2,10,0,3]
17893 ; AVX512-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
17894 ; AVX512-FCP-NEXT:    movb $96, %r10b
17895 ; AVX512-FCP-NEXT:    kmovw %r10d, %k1
17896 ; AVX512-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
17897 ; AVX512-FCP-NEXT:    vmovdqa64 (%r9), %zmm18
17898 ; AVX512-FCP-NEXT:    vmovdqa64 (%rax), %zmm4
17899 ; AVX512-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
17900 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
17901 ; AVX512-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17902 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17903 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
17904 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
17905 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
17906 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm0, %zmm2
17907 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
17908 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
17909 ; AVX512-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
17910 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm2
17911 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
17912 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17913 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
17914 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm9, %zmm0
17915 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
17916 ; AVX512-FCP-NEXT:    vpermt2q %zmm11, %zmm3, %zmm2
17917 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
17918 ; AVX512-FCP-NEXT:    vmovdqa (%r9), %ymm0
17919 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17920 ; AVX512-FCP-NEXT:    vmovdqa 64(%r9), %ymm10
17921 ; AVX512-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17922 ; AVX512-FCP-NEXT:    vmovdqa (%r8), %ymm8
17923 ; AVX512-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17924 ; AVX512-FCP-NEXT:    vmovdqa 64(%r8), %ymm7
17925 ; AVX512-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17926 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm8[0],ymm0[0],ymm8[2],ymm0[2]
17927 ; AVX512-FCP-NEXT:    movb $28, %r10b
17928 ; AVX512-FCP-NEXT:    kmovw %r10d, %k2
17929 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
17930 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17931 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
17932 ; AVX512-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
17933 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
17934 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm2, %zmm0
17935 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,1,12,7,0,1,12,7]
17936 ; AVX512-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
17937 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
17938 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17939 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [5,0,14,6,5,0,14,6]
17940 ; AVX512-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
17941 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17942 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
17943 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm0
17944 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,13,6,7,0,13,6,7]
17945 ; AVX512-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
17946 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm15, %zmm0
17947 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17948 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm1
17949 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
17950 ; AVX512-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
17951 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm4
17952 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17953 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
17954 ; AVX512-FCP-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
17955 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm4
17956 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm3, %zmm4
17957 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17958 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
17959 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
17960 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17961 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
17962 ; AVX512-FCP-NEXT:    vmovdqa64 64(%r9), %zmm30
17963 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
17964 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm4
17965 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
17966 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17967 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
17968 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
17969 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
17970 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm2, %zmm4
17971 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
17972 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17973 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
17974 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm2
17975 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm15, %zmm2
17976 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17977 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17978 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm23, %zmm1
17979 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm7
17980 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17981 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
17982 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17983 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
17984 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm9, %zmm1
17985 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm29
17986 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm4
17987 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17988 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
17989 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
17990 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm4
17991 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
17992 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
17993 ; AVX512-FCP-NEXT:    vmovdqa64 128(%rax), %zmm7
17994 ; AVX512-FCP-NEXT:    vmovdqa 128(%r9), %ymm1
17995 ; AVX512-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17996 ; AVX512-FCP-NEXT:    vmovdqa 128(%r8), %ymm0
17997 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
17998 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
17999 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm7[2,3,2,3]
18000 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18001 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r8), %zmm4
18002 ; AVX512-FCP-NEXT:    vmovdqa64 128(%r9), %zmm19
18003 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
18004 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm6, %zmm3
18005 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
18006 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm3
18007 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18008 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
18009 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm3
18010 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
18011 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm3
18012 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18013 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3
18014 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm22, %zmm3
18015 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
18016 ; AVX512-FCP-NEXT:    vpermt2q %zmm7, %zmm15, %zmm3
18017 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18018 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18019 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm4
18020 ; AVX512-FCP-NEXT:    vpermt2q %zmm4, %zmm18, %zmm7
18021 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18022 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
18023 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18024 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
18025 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm29, %zmm4
18026 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm3
18027 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18028 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
18029 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18030 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm3
18031 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
18032 ; AVX512-FCP-NEXT:    vmovdqa64 192(%rax), %zmm14
18033 ; AVX512-FCP-NEXT:    vmovdqa 192(%r9), %ymm0
18034 ; AVX512-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18035 ; AVX512-FCP-NEXT:    vmovdqa 192(%r8), %ymm5
18036 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
18037 ; AVX512-FCP-NEXT:    vmovdqa64 %ymm5, %ymm24
18038 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm4[2,3,2,3],zmm14[2,3,2,3]
18039 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18040 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
18041 ; AVX512-FCP-NEXT:    vmovdqa64 192(%r9), %zmm17
18042 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
18043 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm6, %zmm3
18044 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
18045 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm3
18046 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18047 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
18048 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm13, %zmm3
18049 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm3
18050 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18051 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
18052 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
18053 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm22, %zmm3
18054 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm15, %zmm3
18055 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18056 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21
18057 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm5
18058 ; AVX512-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm14
18059 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18060 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
18061 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18062 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm15
18063 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
18064 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18065 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm29, %zmm5
18066 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm3
18067 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18068 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
18069 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8
18070 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm9, %zmm3
18071 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
18072 ; AVX512-FCP-NEXT:    vmovdqa64 256(%rax), %zmm16
18073 ; AVX512-FCP-NEXT:    vmovdqa 256(%r9), %ymm10
18074 ; AVX512-FCP-NEXT:    vmovdqa 256(%r8), %ymm5
18075 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm5[0],ymm10[0],ymm5[2],ymm10[2]
18076 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm6[2,3,2,3],zmm16[2,3,2,3]
18077 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18078 ; AVX512-FCP-NEXT:    vmovdqa64 256(%r8), %zmm6
18079 ; AVX512-FCP-NEXT:    vmovdqa64 256(%r9), %zmm9
18080 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
18081 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm3
18082 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18083 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm12, %zmm3
18084 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
18085 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18086 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
18087 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
18088 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm13, %zmm3
18089 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18090 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
18091 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18092 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
18093 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm22, %zmm3
18094 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm3
18095 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18096 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18097 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
18098 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm6
18099 ; AVX512-FCP-NEXT:    vpermt2q %zmm6, %zmm18, %zmm0
18100 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18101 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm27
18102 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm25
18103 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm6
18104 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm6
18105 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm0
18106 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18107 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm12
18108 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm0
18109 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm13
18110 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18111 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k1}
18112 ; AVX512-FCP-NEXT:    vmovdqa64 320(%rax), %zmm1
18113 ; AVX512-FCP-NEXT:    vmovdqa 320(%r9), %ymm6
18114 ; AVX512-FCP-NEXT:    vmovdqa 320(%r8), %ymm14
18115 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm14[0],ymm6[0],ymm14[2],ymm6[2]
18116 ; AVX512-FCP-NEXT:    vmovdqa64 %ymm14, %ymm31
18117 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm8[2,3,2,3],zmm1[2,3,2,3]
18118 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18119 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r8), %zmm8
18120 ; AVX512-FCP-NEXT:    vmovdqa64 320(%r9), %zmm14
18121 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
18122 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm0
18123 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
18124 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
18125 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
18126 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18127 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
18128 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm0
18129 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm7, %zmm0
18130 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18131 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm0
18132 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm22, %zmm0
18133 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm0
18134 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18135 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
18136 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm8
18137 ; AVX512-FCP-NEXT:    vpermt2q %zmm8, %zmm18, %zmm2
18138 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18139 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
18140 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
18141 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
18142 ; AVX512-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18143 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
18144 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
18145 ; AVX512-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18146 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
18147 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
18148 ; AVX512-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18149 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm24 # 32-byte Folded Reload
18150 ; AVX512-FCP-NEXT:    vmovdqu64 %ymm24, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18151 ; AVX512-FCP-NEXT:    vpermt2q %ymm10, %ymm0, %ymm5
18152 ; AVX512-FCP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18153 ; AVX512-FCP-NEXT:    vpermt2q %ymm6, %ymm0, %ymm31
18154 ; AVX512-FCP-NEXT:    vmovdqu64 %ymm31, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18155 ; AVX512-FCP-NEXT:    vmovdqa 384(%r9), %ymm2
18156 ; AVX512-FCP-NEXT:    vmovdqa 384(%r8), %ymm4
18157 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
18158 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18159 ; AVX512-FCP-NEXT:    vpermt2q %ymm2, %ymm0, %ymm4
18160 ; AVX512-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18161 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm31
18162 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm10
18163 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0
18164 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm23, %zmm0
18165 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm24
18166 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18167 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm18
18168 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm24
18169 ; AVX512-FCP-NEXT:    movb $24, %r10b
18170 ; AVX512-FCP-NEXT:    kmovw %r10d, %k3
18171 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k3}
18172 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [0,8,0,8,0,8,0,8]
18173 ; AVX512-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18174 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18175 ; AVX512-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm0 # 64-byte Folded Reload
18176 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18177 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18178 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm20, %zmm0
18179 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18180 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18181 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm20, %zmm0
18182 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18183 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm20, %zmm21
18184 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18185 ; AVX512-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm11
18186 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18187 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm1
18188 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18189 ; AVX512-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
18190 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
18191 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
18192 ; AVX512-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
18193 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
18194 ; AVX512-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm24
18195 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm20
18196 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
18197 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18198 ; AVX512-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm16
18199 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18200 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
18201 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
18202 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm30
18203 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
18204 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
18205 ; AVX512-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18206 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
18207 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
18208 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18209 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm8
18210 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
18211 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,0,12,4,3,0,12,4]
18212 ; AVX512-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
18213 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
18214 ; AVX512-FCP-NEXT:    vpermt2q %zmm30, %zmm7, %zmm11
18215 ; AVX512-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
18216 ; AVX512-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18217 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
18218 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18219 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18220 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm30
18221 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
18222 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
18223 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18224 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
18225 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18226 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm5, %zmm2
18227 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18228 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18229 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm1, %zmm2
18230 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18231 ; AVX512-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm3
18232 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18233 ; AVX512-FCP-NEXT:    movb $48, %r10b
18234 ; AVX512-FCP-NEXT:    kmovw %r10d, %k4
18235 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
18236 ; AVX512-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
18237 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18238 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
18239 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
18240 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
18241 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18242 ; AVX512-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
18243 ; AVX512-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
18244 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
18245 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm2
18246 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18247 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k4} = zmm3[0],zmm19[0],zmm3[2],zmm19[2],zmm3[4],zmm19[4],zmm3[6],zmm19[6]
18248 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18249 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18250 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm0
18251 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18252 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18253 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm1, %zmm0
18254 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18255 ; AVX512-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm3
18256 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18257 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18258 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18259 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18260 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
18261 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18262 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
18263 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18264 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18265 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
18266 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18267 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18268 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18269 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18270 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18271 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
18272 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm3
18273 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18274 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
18275 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm6, %zmm3
18276 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18277 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm13[0],zmm0[0],zmm13[2],zmm0[2],zmm13[4],zmm0[4],zmm13[6],zmm0[6]
18278 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18279 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
18280 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18281 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18282 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
18283 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
18284 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18285 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18286 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18287 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18288 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
18289 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18290 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
18291 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
18292 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm5, %zmm14
18293 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18294 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
18295 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm1, %zmm14
18296 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18297 ; AVX512-FCP-NEXT:    vpermt2q %zmm2, %zmm23, %zmm0
18298 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18299 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18300 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18301 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm2
18302 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18303 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
18304 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
18305 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
18306 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm26[0],zmm0[2],zmm26[2],zmm0[4],zmm26[4],zmm0[6],zmm26[6]
18307 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18308 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18309 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm2
18310 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18311 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18312 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm2
18313 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18314 ; AVX512-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm0
18315 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18316 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18317 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18318 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18319 ; AVX512-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
18320 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18321 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
18322 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18323 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
18324 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
18325 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18326 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
18327 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18328 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18329 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18330 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm0
18331 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18332 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, %zmm22
18333 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm22
18334 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm3[0],zmm28[0],zmm3[2],zmm28[2],zmm3[4],zmm28[4],zmm3[6],zmm28[6]
18335 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18336 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18337 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm0
18338 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18339 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
18340 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm0
18341 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18342 ; AVX512-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm3
18343 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18344 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
18345 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18346 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm28
18347 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18348 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm2
18349 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18350 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18351 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm2
18352 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18353 ; AVX512-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
18354 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18355 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18356 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
18357 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm29
18358 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
18359 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm21
18360 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm15[0],zmm0[2],zmm15[2],zmm0[4],zmm15[4],zmm0[6],zmm15[6]
18361 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18362 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
18363 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18364 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
18365 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm2
18366 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18367 ; AVX512-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
18368 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18369 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
18370 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
18371 ; AVX512-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm19
18372 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
18373 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm0
18374 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18375 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
18376 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm0
18377 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18378 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm16
18379 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
18380 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
18381 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
18382 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm15
18383 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, %zmm17
18384 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm13
18385 ; AVX512-FCP-NEXT:    vpermt2q %zmm27, %zmm6, %zmm17
18386 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm19 {%k4} = zmm27[0],zmm25[0],zmm27[2],zmm25[2],zmm27[4],zmm25[4],zmm27[6],zmm25[6]
18387 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
18388 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
18389 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm23, %zmm13
18390 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm4, %zmm27
18391 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm5, %zmm3
18392 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18393 ; AVX512-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm2
18394 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18395 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
18396 ; AVX512-FCP-NEXT:    vpermi2q %zmm10, %zmm31, %zmm26
18397 ; AVX512-FCP-NEXT:    vpermi2q %zmm31, %zmm10, %zmm7
18398 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
18399 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm5, %zmm2
18400 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18401 ; AVX512-FCP-NEXT:    vpermt2q %zmm10, %zmm1, %zmm31
18402 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18403 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
18404 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
18405 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
18406 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
18407 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm3
18408 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
18409 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
18410 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
18411 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18412 ; AVX512-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm25
18413 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm23
18414 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18415 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm7 {%k4} = zmm14[0],zmm18[0],zmm14[2],zmm18[2],zmm14[4],zmm18[4],zmm14[6],zmm18[6]
18416 ; AVX512-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm5
18417 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
18418 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm1, %zmm14
18419 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18420 ; AVX512-FCP-NEXT:    vpermt2q %zmm18, %zmm4, %zmm23
18421 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
18422 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
18423 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
18424 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm1 # 64-byte Folded Reload
18425 ; AVX512-FCP-NEXT:    # zmm1 = zmm10[0,1,2,3],mem[4,5,6,7]
18426 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k1}
18427 ; AVX512-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
18428 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
18429 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm11, %zmm10
18430 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18431 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
18432 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [12,0,0,3,4,5,6,13]
18433 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm11
18434 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm15 {%k3}
18435 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
18436 ; AVX512-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm15
18437 ; AVX512-FCP-NEXT:    movb $6, %sil
18438 ; AVX512-FCP-NEXT:    kmovw %esi, %k5
18439 ; AVX512-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
18440 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
18441 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
18442 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
18443 ; AVX512-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
18444 ; AVX512-FCP-NEXT:    movb $64, %sil
18445 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18446 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
18447 ; AVX512-FCP-NEXT:    movb $4, %sil
18448 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18449 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k4}
18450 ; AVX512-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
18451 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,11,0,4,5,6,7]
18452 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm31
18453 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
18454 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm3
18455 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,12,0,3,4,5,6,7]
18456 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm11, %zmm8
18457 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [13,0,2,3,4,5,6,14]
18458 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm10
18459 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
18460 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm15
18461 ; AVX512-FCP-NEXT:    movb $12, %sil
18462 ; AVX512-FCP-NEXT:    kmovw %esi, %k4
18463 ; AVX512-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
18464 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
18465 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
18466 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
18467 ; AVX512-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
18468 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
18469 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
18470 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,9,0,6,7]
18471 ; AVX512-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm11
18472 ; AVX512-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
18473 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18474 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18475 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
18476 ; AVX512-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
18477 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18478 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18479 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
18480 ; AVX512-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
18481 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18482 ; AVX512-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
18483 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
18484 ; AVX512-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
18485 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18486 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm22 {%k5}
18487 ; AVX512-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
18488 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18489 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
18490 ; AVX512-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
18491 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18492 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm17 {%k5}
18493 ; AVX512-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
18494 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
18495 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
18496 ; AVX512-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
18497 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
18498 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18499 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
18500 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18501 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k1}
18502 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18503 ; AVX512-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
18504 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18505 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
18506 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18507 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
18508 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18509 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
18510 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18511 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
18512 ; AVX512-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
18513 ; AVX512-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
18514 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
18515 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
18516 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18517 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
18518 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm8, %zmm0
18519 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18520 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
18521 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
18522 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18523 ; AVX512-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm15
18524 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
18525 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
18526 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18527 ; AVX512-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
18528 ; AVX512-FCP-NEXT:    vpermi2q %zmm12, %zmm11, %zmm0
18529 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18530 ; AVX512-FCP-NEXT:    movb $8, %sil
18531 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
18532 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm31 {%k2}
18533 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18534 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18535 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
18536 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18537 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18538 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k3}
18539 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18540 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18541 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
18542 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18543 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18544 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k3}
18545 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18546 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18547 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k3}
18548 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, %zmm13 {%k3}
18549 ; AVX512-FCP-NEXT:    movb $-31, %sil
18550 ; AVX512-FCP-NEXT:    kmovw %esi, %k2
18551 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18552 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0 {%k2}
18553 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18554 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18555 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
18556 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18557 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18558 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
18559 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18560 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18561 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k2}
18562 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18563 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18564 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
18565 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18566 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18567 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
18568 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18569 ; AVX512-FCP-NEXT:    vmovdqa (%rdx), %xmm3
18570 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18571 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18572 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18573 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k4}
18574 ; AVX512-FCP-NEXT:    vmovdqa 64(%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:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18578 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
18579 ; AVX512-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
18580 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18581 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18582 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18583 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm8 {%k4}
18584 ; AVX512-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
18585 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18586 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18587 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
18588 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm9 {%k4}
18589 ; AVX512-FCP-NEXT:    vmovdqa 256(%rdx), %xmm3
18590 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18591 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18592 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm29 {%k4}
18593 ; AVX512-FCP-NEXT:    vmovdqa 320(%rdx), %xmm3
18594 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18595 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18596 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm27 {%k4}
18597 ; AVX512-FCP-NEXT:    vmovdqa 384(%rdx), %xmm3
18598 ; AVX512-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
18599 ; AVX512-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
18600 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm23 {%k4}
18601 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18602 ; AVX512-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm3
18603 ; AVX512-FCP-NEXT:    movb $112, %cl
18604 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18605 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k2}
18606 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18607 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18608 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm3
18609 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k2}
18610 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18611 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18612 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm3
18613 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k2}
18614 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18615 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18616 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm3
18617 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k2}
18618 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18619 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18620 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm3
18621 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm29 {%k2}
18622 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18623 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm3
18624 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k2}
18625 ; AVX512-FCP-NEXT:    vinserti32x4 $3, 384(%rax), %zmm20, %zmm3
18626 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23 {%k2}
18627 ; AVX512-FCP-NEXT:    movb $56, %cl
18628 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18629 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18630 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k2}
18631 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18632 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18633 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k2}
18634 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18635 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18636 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
18637 ; AVX512-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
18638 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18639 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
18640 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18641 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
18642 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18643 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
18644 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, %zmm25 {%k2}
18645 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18646 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18647 ; AVX512-FCP-NEXT:    movb $14, %cl
18648 ; AVX512-FCP-NEXT:    kmovw %ecx, %k2
18649 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
18650 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k2}
18651 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
18652 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
18653 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
18654 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k2}
18655 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18656 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18657 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
18658 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm13 {%k2}
18659 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18660 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18661 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
18662 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm6 {%k2}
18663 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18664 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18665 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm28 {%k2}
18666 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18667 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18668 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k2}
18669 ; AVX512-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
18670 ; AVX512-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
18671 ; AVX512-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm7 {%k2}
18672 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18673 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18674 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
18675 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18676 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18677 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
18678 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18679 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18680 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
18681 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18682 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18683 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
18684 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18685 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18686 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
18687 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18688 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18689 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k1}
18690 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18691 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
18692 ; AVX512-FCP-NEXT:    movb $120, %al
18693 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
18694 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
18695 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, %zmm16 {%k1}
18696 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18697 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
18698 ; AVX512-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
18699 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
18700 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
18701 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18702 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
18703 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
18704 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2 {%k1}
18705 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
18706 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1 {%k1}
18707 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18708 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
18709 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm26 {%k1}
18710 ; AVX512-FCP-NEXT:    movb $-61, %al
18711 ; AVX512-FCP-NEXT:    kmovw %eax, %k1
18712 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18713 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
18714 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18715 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
18716 ; AVX512-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
18717 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18718 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
18719 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18720 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
18721 ; AVX512-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
18722 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18723 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
18724 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
18725 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload
18726 ; AVX512-FCP-NEXT:    # zmm8 = zmm8[0,1,2,3],mem[4,5,6,7]
18727 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18728 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
18729 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
18730 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
18731 ; AVX512-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
18732 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18733 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k1}
18734 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
18735 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload
18736 ; AVX512-FCP-NEXT:    # zmm11 = zmm11[0,1,2,3],mem[4,5,6,7]
18737 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18738 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k1}
18739 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
18740 ; AVX512-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
18741 ; AVX512-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
18742 ; AVX512-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
18743 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm18, %zmm12 {%k1}
18744 ; AVX512-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18745 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm12, 3008(%rax)
18746 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm26, 2944(%rax)
18747 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm7, 2880(%rax)
18748 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18749 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2816(%rax)
18750 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm25, 2752(%rax)
18751 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
18752 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18753 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2624(%rax)
18754 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm11, 2560(%rax)
18755 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
18756 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm19, 2432(%rax)
18757 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18758 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 2368(%rax)
18759 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm17, 2304(%rax)
18760 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm27, 2240(%rax)
18761 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18762 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
18763 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm10, 2112(%rax)
18764 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
18765 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
18766 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18767 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 1920(%rax)
18768 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm21, 1856(%rax)
18769 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
18770 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18771 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
18772 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm8, 1664(%rax)
18773 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
18774 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm6, 1536(%rax)
18775 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
18776 ; AVX512-FCP-NEXT:    vmovaps %zmm7, 1472(%rax)
18777 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm22, 1408(%rax)
18778 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18779 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
18780 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18781 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
18782 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
18783 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
18784 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
18785 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
18786 ; AVX512-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
18787 ; AVX512-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
18788 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
18789 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18790 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
18791 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18792 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
18793 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
18794 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm30, 704(%rax)
18795 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm14, 640(%rax)
18796 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
18797 ; AVX512-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
18798 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18799 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
18800 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18801 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
18802 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18803 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
18804 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
18805 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm16, 256(%rax)
18806 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
18807 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
18808 ; AVX512-FCP-NEXT:    vmovaps %zmm3, 128(%rax)
18809 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18810 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
18811 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18812 ; AVX512-FCP-NEXT:    vmovaps %zmm0, (%rax)
18813 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm15, 3520(%rax)
18814 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18815 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
18816 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18817 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
18818 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm31, 3328(%rax)
18819 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18820 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
18821 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18822 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
18823 ; AVX512-FCP-NEXT:    vmovdqa64 %zmm24, 3072(%rax)
18824 ; AVX512-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
18825 ; AVX512-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
18826 ; AVX512-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
18827 ; AVX512-FCP-NEXT:    vzeroupper
18828 ; AVX512-FCP-NEXT:    retq
18830 ; AVX512DQ-LABEL: store_i64_stride7_vf64:
18831 ; AVX512DQ:       # %bb.0:
18832 ; AVX512DQ-NEXT:    subq $6280, %rsp # imm = 0x1888
18833 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
18834 ; AVX512DQ-NEXT:    vmovdqa64 (%rdi), %zmm7
18835 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18836 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdi), %zmm16
18837 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18838 ; AVX512DQ-NEXT:    vmovdqa64 (%rsi), %zmm9
18839 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18840 ; AVX512DQ-NEXT:    vmovdqa64 64(%rsi), %zmm13
18841 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18842 ; AVX512DQ-NEXT:    vmovdqa64 64(%rdx), %zmm18
18843 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, (%rsp) # 64-byte Spill
18844 ; AVX512DQ-NEXT:    vmovdqa64 (%rdx), %zmm5
18845 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18846 ; AVX512DQ-NEXT:    vmovdqa64 (%rcx), %zmm6
18847 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18848 ; AVX512DQ-NEXT:    vmovdqa64 64(%rcx), %zmm15
18849 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18850 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [11,3,11,3,11,3,11,3]
18851 ; AVX512DQ-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18852 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
18853 ; AVX512DQ-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
18854 ; AVX512DQ-NEXT:    movb $96, %r10b
18855 ; AVX512DQ-NEXT:    kmovw %r10d, %k1
18856 ; AVX512DQ-NEXT:    vmovdqa64 (%r8), %zmm1
18857 ; AVX512DQ-NEXT:    vmovdqa64 (%r9), %zmm14
18858 ; AVX512DQ-NEXT:    vmovdqa64 (%rax), %zmm3
18859 ; AVX512DQ-NEXT:    vmovdqa64 64(%rax), %zmm4
18860 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
18861 ; AVX512DQ-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18862 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18863 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
18864 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
18865 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
18866 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
18867 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8
18868 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
18869 ; AVX512DQ-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
18870 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm0, %zmm2
18871 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm11
18872 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18873 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm0
18874 ; AVX512DQ-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
18875 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm2
18876 ; AVX512DQ-NEXT:    vpermt2q %zmm6, %zmm31, %zmm2
18877 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
18878 ; AVX512DQ-NEXT:    vmovdqa (%r9), %ymm7
18879 ; AVX512DQ-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18880 ; AVX512DQ-NEXT:    vmovdqa 64(%r9), %ymm5
18881 ; AVX512DQ-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18882 ; AVX512DQ-NEXT:    vmovdqa (%r8), %ymm0
18883 ; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18884 ; AVX512DQ-NEXT:    vmovdqa 64(%r8), %ymm6
18885 ; AVX512DQ-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18886 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
18887 ; AVX512DQ-NEXT:    movb $28, %r10b
18888 ; AVX512DQ-NEXT:    kmovw %r10d, %k2
18889 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
18890 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18891 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
18892 ; AVX512DQ-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
18893 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm0
18894 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
18895 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
18896 ; AVX512DQ-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
18897 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm2, %zmm0
18898 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm12
18899 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18900 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
18901 ; AVX512DQ-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
18902 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
18903 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18904 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm0
18905 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,13,6,7,0,13,6,7]
18906 ; AVX512DQ-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
18907 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm24, %zmm0
18908 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18909 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm25, %zmm1
18910 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [6,13,14,7,6,13,14,7]
18911 ; AVX512DQ-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
18912 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm3
18913 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18914 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
18915 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
18916 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm2
18917 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm31, %zmm2
18918 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
18919 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
18920 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm4[2,3,2,3]
18921 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18922 ; AVX512DQ-NEXT:    vmovdqa64 64(%r8), %zmm1
18923 ; AVX512DQ-NEXT:    vmovdqa64 64(%r9), %zmm20
18924 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
18925 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm6
18926 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm8, %zmm3
18927 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm11, %zmm3
18928 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18929 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3
18930 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm28, %zmm3
18931 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm12, %zmm3
18932 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18933 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, %zmm3
18934 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm3
18935 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm24, %zmm3
18936 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18937 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm30
18938 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
18939 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm4
18940 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18941 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdi), %zmm1
18942 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18943 ; AVX512DQ-NEXT:    vmovdqa64 128(%rsi), %zmm0
18944 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18945 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
18946 ; AVX512DQ-NEXT:    vmovdqa64 128(%rdx), %zmm23
18947 ; AVX512DQ-NEXT:    vmovdqa64 128(%rcx), %zmm0
18948 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18949 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm3
18950 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
18951 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
18952 ; AVX512DQ-NEXT:    vmovdqa64 128(%rax), %zmm5
18953 ; AVX512DQ-NEXT:    vmovdqa 128(%r9), %ymm4
18954 ; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18955 ; AVX512DQ-NEXT:    vmovdqa 128(%r8), %ymm1
18956 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18957 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
18958 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
18959 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18960 ; AVX512DQ-NEXT:    vmovdqa64 128(%r8), %zmm1
18961 ; AVX512DQ-NEXT:    vmovdqa64 128(%r9), %zmm13
18962 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
18963 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm8, %zmm4
18964 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm11, %zmm4
18965 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18966 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm4
18967 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm28, %zmm4
18968 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm18
18969 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
18970 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm8
18971 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18972 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, %zmm5
18973 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm5
18974 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm24, %zmm5
18975 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18976 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm22
18977 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
18978 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm8
18979 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18980 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdi), %zmm26
18981 ; AVX512DQ-NEXT:    vmovdqa64 192(%rsi), %zmm0
18982 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18983 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm1
18984 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
18985 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm9
18986 ; AVX512DQ-NEXT:    vmovdqa64 192(%rdx), %zmm21
18987 ; AVX512DQ-NEXT:    vmovdqa64 192(%rcx), %zmm0
18988 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
18989 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm5
18990 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm5
18991 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
18992 ; AVX512DQ-NEXT:    vmovdqa64 192(%rax), %zmm2
18993 ; AVX512DQ-NEXT:    vmovdqa 192(%r9), %ymm8
18994 ; AVX512DQ-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18995 ; AVX512DQ-NEXT:    vmovdqa 192(%r8), %ymm1
18996 ; AVX512DQ-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
18997 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
18998 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
18999 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19000 ; AVX512DQ-NEXT:    vmovdqa64 192(%r8), %zmm1
19001 ; AVX512DQ-NEXT:    vmovdqa64 192(%r9), %zmm8
19002 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm16
19003 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm6, %zmm16
19004 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm11, %zmm16
19005 ; AVX512DQ-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19006 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm15
19007 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm28, %zmm15
19008 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm12, %zmm15
19009 ; AVX512DQ-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19010 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm12
19011 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm17, %zmm12
19012 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm0
19013 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm24, %zmm12
19014 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19015 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm10
19016 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
19017 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm27, %zmm0
19018 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19019 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdi), %zmm15
19020 ; AVX512DQ-NEXT:    vmovdqa64 256(%rsi), %zmm19
19021 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm4
19022 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
19023 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, %zmm29
19024 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19025 ; AVX512DQ-NEXT:    vmovdqa64 256(%rdx), %zmm14
19026 ; AVX512DQ-NEXT:    vmovdqa64 256(%rcx), %zmm0
19027 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19028 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm1
19029 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm1
19030 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
19031 ; AVX512DQ-NEXT:    vmovdqa64 256(%rax), %zmm0
19032 ; AVX512DQ-NEXT:    vmovdqa 256(%r9), %ymm12
19033 ; AVX512DQ-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19034 ; AVX512DQ-NEXT:    vmovdqa 256(%r8), %ymm4
19035 ; AVX512DQ-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19036 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm4[0],ymm12[0],ymm4[2],ymm12[2]
19037 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm4[2,3,2,3],zmm0[2,3,2,3]
19038 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19039 ; AVX512DQ-NEXT:    vmovdqa64 256(%r8), %zmm4
19040 ; AVX512DQ-NEXT:    vmovdqa64 256(%r9), %zmm12
19041 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
19042 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm6, %zmm1
19043 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
19044 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19045 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm2
19046 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19047 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm1
19048 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm28, %zmm1
19049 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm18, %zmm1
19050 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19051 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19052 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, %zmm1
19053 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm17, %zmm1
19054 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm24, %zmm1
19055 ; AVX512DQ-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19056 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19057 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm9
19058 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm25, %zmm4
19059 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm27, %zmm0
19060 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19061 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdi), %zmm16
19062 ; AVX512DQ-NEXT:    vmovdqa64 320(%rsi), %zmm3
19063 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm7
19064 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm29, %zmm7
19065 ; AVX512DQ-NEXT:    vmovdqa64 320(%rdx), %zmm4
19066 ; AVX512DQ-NEXT:    vmovdqa64 320(%rcx), %zmm29
19067 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm5
19068 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm31, %zmm5
19069 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm5 {%k1}
19070 ; AVX512DQ-NEXT:    vmovdqa64 320(%rax), %zmm1
19071 ; AVX512DQ-NEXT:    vmovdqa 320(%r9), %ymm7
19072 ; AVX512DQ-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19073 ; AVX512DQ-NEXT:    vmovdqa 320(%r8), %ymm0
19074 ; AVX512DQ-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19075 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
19076 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm7[2,3,2,3],zmm1[2,3,2,3]
19077 ; AVX512DQ-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19078 ; AVX512DQ-NEXT:    vmovdqa64 320(%r8), %zmm7
19079 ; AVX512DQ-NEXT:    vmovdqa64 320(%r9), %zmm11
19080 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm0
19081 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm6, %zmm0
19082 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
19083 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19084 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm0
19085 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm28, %zmm0
19086 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm18, %zmm0
19087 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19088 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm0
19089 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
19090 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
19091 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19092 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm2
19093 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm25, %zmm7
19094 ; AVX512DQ-NEXT:    vpermt2q %zmm7, %zmm27, %zmm1
19095 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19096 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdx), %zmm5
19097 ; AVX512DQ-NEXT:    vmovdqa64 384(%rcx), %zmm27
19098 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm0
19099 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm25, %zmm0
19100 ; AVX512DQ-NEXT:    vmovdqa64 384(%rdi), %zmm7
19101 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19102 ; AVX512DQ-NEXT:    vmovdqa64 384(%rsi), %zmm1
19103 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19104 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm25, %zmm7
19105 ; AVX512DQ-NEXT:    movb $24, %r10b
19106 ; AVX512DQ-NEXT:    kmovw %r10d, %k3
19107 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
19108 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
19109 ; AVX512DQ-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19110 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19111 ; AVX512DQ-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
19112 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19113 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm1, %zmm30
19114 ; AVX512DQ-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19115 ; AVX512DQ-NEXT:    vpermt2q %zmm13, %zmm1, %zmm22
19116 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19117 ; AVX512DQ-NEXT:    vpermt2q %zmm8, %zmm1, %zmm10
19118 ; AVX512DQ-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19119 ; AVX512DQ-NEXT:    vpermt2q %zmm12, %zmm1, %zmm9
19120 ; AVX512DQ-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19121 ; AVX512DQ-NEXT:    vpermt2q %zmm11, %zmm1, %zmm2
19122 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19123 ; AVX512DQ-NEXT:    vmovdqa64 384(%r8), %zmm0
19124 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
19125 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
19126 ; AVX512DQ-NEXT:    vmovdqa64 384(%r9), %zmm2
19127 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,3,4,5,15,0]
19128 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm8, %zmm7
19129 ; AVX512DQ-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19130 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
19131 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19132 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm6
19133 ; AVX512DQ-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19134 ; AVX512DQ-NEXT:    vpermi2q %zmm2, %zmm0, %zmm28
19135 ; AVX512DQ-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19136 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
19137 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19138 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [13,5,13,5,13,5,13,5]
19139 ; AVX512DQ-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19140 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19141 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19142 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
19143 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm6, %zmm1
19144 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19145 ; AVX512DQ-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
19146 ; AVX512DQ-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19147 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19148 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm9, %zmm1
19149 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19150 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19151 ; AVX512DQ-NEXT:    vpermt2q %zmm17, %zmm25, %zmm1
19152 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19153 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
19154 ; AVX512DQ-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
19155 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
19156 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
19157 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19158 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
19159 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm6, %zmm1
19160 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19161 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19162 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
19163 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19164 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19165 ; AVX512DQ-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
19166 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19167 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm2, %zmm20
19168 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19169 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
19170 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm6, %zmm0
19171 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19172 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19173 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm9, %zmm0
19174 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19175 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, %zmm0
19176 ; AVX512DQ-NEXT:    vpermt2q %zmm30, %zmm25, %zmm0
19177 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19178 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm2, %zmm30
19179 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19180 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
19181 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm6, %zmm0
19182 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19183 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19184 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm9, %zmm0
19185 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19186 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, %zmm0
19187 ; AVX512DQ-NEXT:    vpermt2q %zmm22, %zmm25, %zmm0
19188 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19189 ; AVX512DQ-NEXT:    vpermt2q %zmm21, %zmm2, %zmm22
19190 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19191 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
19192 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm6, %zmm0
19193 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19194 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19195 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm9, %zmm0
19196 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19197 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, %zmm0
19198 ; AVX512DQ-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
19199 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19200 ; AVX512DQ-NEXT:    vpermt2q %zmm14, %zmm2, %zmm23
19201 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19202 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm6, %zmm0
19203 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19204 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19205 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm9, %zmm0
19206 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19207 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm0
19208 ; AVX512DQ-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
19209 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19210 ; AVX512DQ-NEXT:    vpermt2q %zmm4, %zmm2, %zmm29
19211 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, %zmm18
19212 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdx), %zmm10
19213 ; AVX512DQ-NEXT:    vmovdqa64 448(%rcx), %zmm0
19214 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm7
19215 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm31, %zmm7
19216 ; AVX512DQ-NEXT:    vpermi2q %zmm27, %zmm5, %zmm31
19217 ; AVX512DQ-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
19218 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
19219 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm6, %zmm1
19220 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19221 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm1
19222 ; AVX512DQ-NEXT:    vpermt2q %zmm27, %zmm9, %zmm1
19223 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19224 ; AVX512DQ-NEXT:    vpermt2q %zmm5, %zmm2, %zmm27
19225 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, %zmm28
19226 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm8
19227 ; AVX512DQ-NEXT:    vpermt2q %zmm10, %zmm2, %zmm8
19228 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm12
19229 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm12
19230 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm11
19231 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm11
19232 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm10
19233 ; AVX512DQ-NEXT:    movb $48, %r10b
19234 ; AVX512DQ-NEXT:    kmovw %r10d, %k4
19235 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
19236 ; AVX512DQ-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
19237 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19238 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm1
19239 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19240 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
19241 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19242 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
19243 ; AVX512DQ-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19244 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19245 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm13
19246 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14
19247 ; AVX512DQ-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
19248 ; AVX512DQ-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
19249 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
19250 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19251 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm6, %zmm1
19252 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19253 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm9, %zmm13
19254 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19255 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm25, %zmm14
19256 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19257 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm1
19258 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19259 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
19260 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19261 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
19262 ; AVX512DQ-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19263 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm13
19264 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19265 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm17
19266 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
19267 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19268 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm6, %zmm13
19269 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19270 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm9, %zmm1
19271 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19272 ; AVX512DQ-NEXT:    vpermt2q %zmm2, %zmm25, %zmm17
19273 ; AVX512DQ-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19274 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19275 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2
19276 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19277 ; AVX512DQ-NEXT:    vpermt2q %zmm1, %zmm5, %zmm2
19278 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19279 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm30 {%k4} = zmm1[0],zmm0[0],zmm1[2],zmm0[2],zmm1[4],zmm0[4],zmm1[6],zmm0[6]
19280 ; AVX512DQ-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19281 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm13
19282 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm2
19283 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm29
19284 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm4, %zmm1
19285 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19286 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
19287 ; AVX512DQ-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19288 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
19289 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19290 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm29
19291 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19292 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1
19293 ; AVX512DQ-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
19294 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19295 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
19296 ; AVX512DQ-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19297 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm2
19298 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm1
19299 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, %zmm31
19300 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
19301 ; AVX512DQ-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19302 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
19303 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19304 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm1
19305 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19306 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
19307 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, %zmm30
19308 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
19309 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm23 {%k4} = zmm15[0],zmm19[0],zmm15[2],zmm19[2],zmm15[4],zmm19[4],zmm15[6],zmm19[6]
19310 ; AVX512DQ-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19311 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm22
19312 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm0
19313 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm26
19314 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm27
19315 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm4, %zmm27
19316 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm6, %zmm22
19317 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm9, %zmm0
19318 ; AVX512DQ-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19319 ; AVX512DQ-NEXT:    vpermt2q %zmm19, %zmm25, %zmm26
19320 ; AVX512DQ-NEXT:    vmovdqa64 448(%rdi), %zmm15
19321 ; AVX512DQ-NEXT:    vmovdqa64 448(%rsi), %zmm0
19322 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm13
19323 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm13
19324 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm23
19325 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm25, %zmm23
19326 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm24
19327 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm5, %zmm24
19328 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm18 {%k4} = zmm16[0],zmm3[0],zmm16[2],zmm3[2],zmm16[4],zmm3[4],zmm16[6],zmm3[6]
19329 ; AVX512DQ-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19330 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm17
19331 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm1
19332 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm21
19333 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm4, %zmm21
19334 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm6, %zmm17
19335 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
19336 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19337 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
19338 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, %zmm20
19339 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
19340 ; AVX512DQ-NEXT:    vpermt2q %zmm16, %zmm5, %zmm20
19341 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm3
19342 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
19343 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
19344 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm25
19345 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm1
19346 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm6, %zmm1
19347 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm6
19348 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, %zmm2
19349 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
19350 ; AVX512DQ-NEXT:    vpermi2q %zmm18, %zmm16, %zmm9
19351 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm16[0],zmm18[0],zmm16[2],zmm18[2],zmm16[4],zmm18[4],zmm16[6],zmm18[6]
19352 ; AVX512DQ-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19353 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, %zmm28
19354 ; AVX512DQ-NEXT:    vpermt2q %zmm18, %zmm4, %zmm28
19355 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
19356 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
19357 ; AVX512DQ-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
19358 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
19359 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k1}
19360 ; AVX512DQ-NEXT:    vmovdqa64 448(%r8), %zmm3
19361 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
19362 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm8, %zmm5
19363 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, %zmm1 {%k1}
19364 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
19365 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm1, %zmm8
19366 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k3}
19367 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
19368 ; AVX512DQ-NEXT:    vpermt2q %zmm3, %zmm1, %zmm13
19369 ; AVX512DQ-NEXT:    movb $6, %sil
19370 ; AVX512DQ-NEXT:    kmovw %esi, %k4
19371 ; AVX512DQ-NEXT:    vpbroadcastq 456(%rcx), %ymm1
19372 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
19373 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
19374 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,9,0,0,6,7]
19375 ; AVX512DQ-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
19376 ; AVX512DQ-NEXT:    movb $64, %sil
19377 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19378 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
19379 ; AVX512DQ-NEXT:    movb $4, %sil
19380 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19381 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k5}
19382 ; AVX512DQ-NEXT:    vmovdqa64 448(%r9), %zmm0
19383 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
19384 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
19385 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm11
19386 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
19387 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm7, %zmm3
19388 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
19389 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm8, %zmm5
19390 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
19391 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm7
19392 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
19393 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
19394 ; AVX512DQ-NEXT:    movb $12, %sil
19395 ; AVX512DQ-NEXT:    kmovw %esi, %k5
19396 ; AVX512DQ-NEXT:    vmovdqa 448(%rdx), %xmm2
19397 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
19398 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
19399 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
19400 ; AVX512DQ-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
19401 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
19402 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
19403 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
19404 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm10, %zmm2
19405 ; AVX512DQ-NEXT:    vmovdqa64 384(%rax), %zmm0
19406 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
19407 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19408 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm10
19409 ; AVX512DQ-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
19410 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
19411 ; AVX512DQ-NEXT:    vmovdqa 384(%r9), %ymm12
19412 ; AVX512DQ-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19413 ; AVX512DQ-NEXT:    vmovdqa 384(%r8), %ymm8
19414 ; AVX512DQ-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19415 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
19416 ; AVX512DQ-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
19417 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
19418 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19419 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19420 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
19421 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19422 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19423 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19424 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
19425 ; AVX512DQ-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19426 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
19427 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19428 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
19429 ; AVX512DQ-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19430 ; AVX512DQ-NEXT:    vmovdqa64 448(%rax), %zmm0
19431 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,10,5,6,7]
19432 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm3, %zmm1
19433 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19434 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
19435 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
19436 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19437 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
19438 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm7, %zmm1
19439 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19440 ; AVX512DQ-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
19441 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,8,7]
19442 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm4, %zmm1
19443 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19444 ; AVX512DQ-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,9,6,7]
19445 ; AVX512DQ-NEXT:    vpermi2q %zmm0, %zmm2, %zmm1
19446 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19447 ; AVX512DQ-NEXT:    movb $8, %sil
19448 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19449 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
19450 ; AVX512DQ-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19451 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19452 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
19453 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19454 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19455 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
19456 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19457 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k3}
19458 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19459 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
19460 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19461 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
19462 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19463 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
19464 ; AVX512DQ-NEXT:    movb $-31, %sil
19465 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19466 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19467 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
19468 ; AVX512DQ-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19469 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19470 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
19471 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19472 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19473 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
19474 ; AVX512DQ-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19475 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19476 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
19477 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19478 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
19479 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19480 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
19481 ; AVX512DQ-NEXT:    vmovdqa (%rdx), %xmm0
19482 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19483 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19484 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19485 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k5}
19486 ; AVX512DQ-NEXT:    vmovdqa 64(%rdx), %xmm0
19487 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19488 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19489 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19490 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
19491 ; AVX512DQ-NEXT:    vmovdqa 128(%rdx), %xmm0
19492 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19493 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19494 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19495 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
19496 ; AVX512DQ-NEXT:    vmovdqa 192(%rdx), %xmm0
19497 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19498 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19499 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19500 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
19501 ; AVX512DQ-NEXT:    vmovdqa 256(%rdx), %xmm0
19502 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19503 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19504 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
19505 ; AVX512DQ-NEXT:    vmovdqa 320(%rdx), %xmm0
19506 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19507 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19508 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
19509 ; AVX512DQ-NEXT:    vmovdqa 384(%rdx), %xmm0
19510 ; AVX512DQ-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
19511 ; AVX512DQ-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
19512 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
19513 ; AVX512DQ-NEXT:    movb $112, %sil
19514 ; AVX512DQ-NEXT:    kmovw %esi, %k2
19515 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19516 ; AVX512DQ-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
19517 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19518 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19519 ; AVX512DQ-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm2 {%k2}
19520 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19521 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19522 ; AVX512DQ-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm3 {%k2}
19523 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19524 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19525 ; AVX512DQ-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm4 {%k2}
19526 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19527 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19528 ; AVX512DQ-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm27 {%k2}
19529 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19530 ; AVX512DQ-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm21 {%k2}
19531 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19532 ; AVX512DQ-NEXT:    vinserti64x2 $3, 384(%rax), %zmm0, %zmm28 {%k2}
19533 ; AVX512DQ-NEXT:    vpbroadcastq 8(%rcx), %ymm0
19534 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19535 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19536 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k4}
19537 ; AVX512DQ-NEXT:    vpbroadcastq 72(%rcx), %ymm0
19538 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19539 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19540 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
19541 ; AVX512DQ-NEXT:    vpbroadcastq 136(%rcx), %ymm0
19542 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19543 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19544 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
19545 ; AVX512DQ-NEXT:    vpbroadcastq 200(%rcx), %ymm0
19546 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19547 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19548 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
19549 ; AVX512DQ-NEXT:    vpbroadcastq 264(%rcx), %ymm0
19550 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19551 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
19552 ; AVX512DQ-NEXT:    vpbroadcastq 328(%rcx), %ymm0
19553 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19554 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
19555 ; AVX512DQ-NEXT:    vpbroadcastq 392(%rcx), %ymm0
19556 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
19557 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
19558 ; AVX512DQ-NEXT:    movb $56, %cl
19559 ; AVX512DQ-NEXT:    kmovw %ecx, %k2
19560 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19561 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
19562 ; AVX512DQ-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19563 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19564 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
19565 ; AVX512DQ-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19566 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19567 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
19568 ; AVX512DQ-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19569 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19570 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
19571 ; AVX512DQ-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19572 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19573 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
19574 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19575 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
19576 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, %zmm20 {%k2}
19577 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19578 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19579 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
19580 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19581 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19582 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
19583 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19584 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19585 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
19586 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19587 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19588 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
19589 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19590 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
19591 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19592 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k1}
19593 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19594 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
19595 ; AVX512DQ-NEXT:    movb $120, %cl
19596 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19597 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
19598 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, %zmm19 {%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, %zmm16 # 64-byte Folded Reload
19601 ; AVX512DQ-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
19602 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
19603 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm14 {%k1}
19604 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
19605 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k1}
19606 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
19607 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm25 {%k1}
19608 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
19609 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, %zmm29 {%k1}
19610 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
19611 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, %zmm22 {%k1}
19612 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
19613 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k1}
19614 ; AVX512DQ-NEXT:    movb $-61, %cl
19615 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19616 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19617 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
19618 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19619 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
19620 ; AVX512DQ-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
19621 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19622 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, %zmm11 {%k1}
19623 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19624 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 64-byte Folded Reload
19625 ; AVX512DQ-NEXT:    # zmm10 = zmm0[0,1,2,3],mem[4,5,6,7]
19626 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19627 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
19628 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19629 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
19630 ; AVX512DQ-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
19631 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19632 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
19633 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19634 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
19635 ; AVX512DQ-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
19636 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19637 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
19638 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19639 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
19640 ; AVX512DQ-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
19641 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
19642 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
19643 ; AVX512DQ-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm7 # 64-byte Folded Reload
19644 ; AVX512DQ-NEXT:    # zmm7 = zmm9[0,1,2,3],mem[4,5,6,7]
19645 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
19646 ; AVX512DQ-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
19647 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19648 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19649 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19650 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19651 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19652 ; AVX512DQ-NEXT:    movb $14, %cl
19653 ; AVX512DQ-NEXT:    kmovw %ecx, %k1
19654 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
19655 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
19656 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19657 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19658 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19659 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19660 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19661 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
19662 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm17 {%k1}
19663 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19664 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19665 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19666 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19667 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19668 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
19669 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
19670 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19671 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19672 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19673 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19674 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19675 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19676 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
19677 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19678 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19679 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19680 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19681 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19682 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19683 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
19684 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
19685 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
19686 ; AVX512DQ-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
19687 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19688 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19689 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
19690 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
19691 ; AVX512DQ-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
19692 ; AVX512DQ-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
19693 ; AVX512DQ-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
19694 ; AVX512DQ-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
19695 ; AVX512DQ-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
19696 ; AVX512DQ-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19697 ; AVX512DQ-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
19698 ; AVX512DQ-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19699 ; AVX512DQ-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
19700 ; AVX512DQ-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
19701 ; AVX512DQ-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
19702 ; AVX512DQ-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
19703 ; AVX512DQ-NEXT:    vmovaps %zmm0, 2816(%rax)
19704 ; AVX512DQ-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
19705 ; AVX512DQ-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
19706 ; AVX512DQ-NEXT:    vmovdqa64 %zmm23, 2624(%rax)
19707 ; AVX512DQ-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
19708 ; AVX512DQ-NEXT:    vmovdqa64 %zmm22, 2496(%rax)
19709 ; AVX512DQ-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
19710 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
19711 ; AVX512DQ-NEXT:    vmovaps %zmm6, 2368(%rax)
19712 ; AVX512DQ-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
19713 ; AVX512DQ-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
19714 ; AVX512DQ-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
19715 ; AVX512DQ-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
19716 ; AVX512DQ-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
19717 ; AVX512DQ-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
19718 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
19719 ; AVX512DQ-NEXT:    vmovaps %zmm5, 1920(%rax)
19720 ; AVX512DQ-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
19721 ; AVX512DQ-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
19722 ; AVX512DQ-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
19723 ; AVX512DQ-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
19724 ; AVX512DQ-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
19725 ; AVX512DQ-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
19726 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
19727 ; AVX512DQ-NEXT:    vmovaps %zmm4, 1472(%rax)
19728 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19729 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1408(%rax)
19730 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19731 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1344(%rax)
19732 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19733 ; AVX512DQ-NEXT:    vmovaps %zmm0, 1280(%rax)
19734 ; AVX512DQ-NEXT:    vmovdqa64 %zmm10, 1216(%rax)
19735 ; AVX512DQ-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
19736 ; AVX512DQ-NEXT:    vmovdqa64 %zmm18, 1088(%rax)
19737 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
19738 ; AVX512DQ-NEXT:    vmovaps %zmm3, 1024(%rax)
19739 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19740 ; AVX512DQ-NEXT:    vmovaps %zmm0, 960(%rax)
19741 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19742 ; AVX512DQ-NEXT:    vmovaps %zmm0, 896(%rax)
19743 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19744 ; AVX512DQ-NEXT:    vmovaps %zmm0, 832(%rax)
19745 ; AVX512DQ-NEXT:    vmovdqa64 %zmm11, 768(%rax)
19746 ; AVX512DQ-NEXT:    vmovdqa64 %zmm14, 704(%rax)
19747 ; AVX512DQ-NEXT:    vmovdqa64 %zmm17, 640(%rax)
19748 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
19749 ; AVX512DQ-NEXT:    vmovaps %zmm2, 576(%rax)
19750 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19751 ; AVX512DQ-NEXT:    vmovaps %zmm0, 512(%rax)
19752 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19753 ; AVX512DQ-NEXT:    vmovaps %zmm0, 448(%rax)
19754 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19755 ; AVX512DQ-NEXT:    vmovaps %zmm0, 384(%rax)
19756 ; AVX512DQ-NEXT:    vmovdqa64 %zmm16, 320(%rax)
19757 ; AVX512DQ-NEXT:    vmovdqa64 %zmm19, 256(%rax)
19758 ; AVX512DQ-NEXT:    vmovdqa64 %zmm9, 192(%rax)
19759 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19760 ; AVX512DQ-NEXT:    vmovaps %zmm0, 128(%rax)
19761 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19762 ; AVX512DQ-NEXT:    vmovaps %zmm0, 64(%rax)
19763 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19764 ; AVX512DQ-NEXT:    vmovaps %zmm0, (%rax)
19765 ; AVX512DQ-NEXT:    vmovdqa64 %zmm13, 3520(%rax)
19766 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19767 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3456(%rax)
19768 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19769 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3392(%rax)
19770 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19771 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3328(%rax)
19772 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19773 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3264(%rax)
19774 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19775 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3200(%rax)
19776 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19777 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3072(%rax)
19778 ; AVX512DQ-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
19779 ; AVX512DQ-NEXT:    vmovaps %zmm0, 3136(%rax)
19780 ; AVX512DQ-NEXT:    addq $6280, %rsp # imm = 0x1888
19781 ; AVX512DQ-NEXT:    vzeroupper
19782 ; AVX512DQ-NEXT:    retq
19784 ; AVX512DQ-FCP-LABEL: store_i64_stride7_vf64:
19785 ; AVX512DQ-FCP:       # %bb.0:
19786 ; AVX512DQ-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
19787 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
19788 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdi), %zmm6
19789 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19790 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
19791 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19792 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rsi), %zmm14
19793 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19794 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm16
19795 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19796 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm11
19797 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19798 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rdx), %zmm7
19799 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19800 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rcx), %zmm13
19801 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19802 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
19803 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19804 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
19805 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19806 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
19807 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
19808 ; AVX512DQ-FCP-NEXT:    movb $96, %r10b
19809 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k1
19810 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
19811 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%r9), %zmm22
19812 ; AVX512DQ-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
19813 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
19814 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
19815 ; AVX512DQ-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19816 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19817 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
19818 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
19819 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19820 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm0, %zmm2
19821 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9
19822 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
19823 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
19824 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm2
19825 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10
19826 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19827 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0
19828 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm0
19829 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
19830 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm2
19831 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
19832 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r9), %ymm7
19833 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19834 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r9), %ymm13
19835 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19836 ; AVX512DQ-FCP-NEXT:    vmovdqa (%r8), %ymm0
19837 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19838 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%r8), %ymm6
19839 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19840 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
19841 ; AVX512DQ-FCP-NEXT:    movb $28, %r10b
19842 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k2
19843 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
19844 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19845 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,12,0,5,4,12,0,5]
19846 ; AVX512DQ-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
19847 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19848 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm0, %zmm2
19849 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7
19850 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,1,12,7,0,1,12,7]
19851 ; AVX512DQ-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
19852 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm15, %zmm2
19853 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19854 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
19855 ; AVX512DQ-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
19856 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19857 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, %zmm2
19858 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
19859 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,13,6,7,0,13,6,7]
19860 ; AVX512DQ-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
19861 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
19862 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19863 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
19864 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm23, %zmm1
19865 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
19866 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
19867 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm2
19868 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19869 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
19870 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm8, %zmm1
19871 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
19872 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm2
19873 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
19874 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
19875 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
19876 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19877 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
19878 ; AVX512DQ-FCP-NEXT:    vmovdqa64 64(%r9), %zmm27
19879 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19880 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm9, %zmm2
19881 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm2
19882 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19883 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
19884 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm0, %zmm2
19885 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm2
19886 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19887 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
19888 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
19889 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm2
19890 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19891 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19892 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm23, %zmm1
19893 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm5
19894 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19895 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
19896 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19897 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
19898 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm8, %zmm1
19899 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm2
19900 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19901 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
19902 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19903 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm2
19904 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
19905 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%rax), %zmm6
19906 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r9), %ymm0
19907 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
19908 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%r8), %ymm5
19909 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
19910 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm5, %ymm30
19911 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
19912 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19913 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
19914 ; AVX512DQ-FCP-NEXT:    vmovdqa64 128(%r9), %zmm16
19915 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
19916 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm9, %zmm5
19917 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
19918 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm5
19919 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19920 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
19921 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm5
19922 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
19923 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19924 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm5
19925 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm5
19926 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm6, %zmm19, %zmm5
19927 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19928 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19929 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm2
19930 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm18, %zmm6
19931 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19932 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
19933 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19934 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
19935 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm8, %zmm2
19936 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm5
19937 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19938 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
19939 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19940 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm5
19941 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k1}
19942 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%rax), %zmm22
19943 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %ymm24
19944 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%r8), %ymm9
19945 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm9[0],ymm24[0],ymm9[2],ymm24[2]
19946 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %ymm9, %ymm25
19947 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm22[2,3,2,3]
19948 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19949 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
19950 ; AVX512DQ-FCP-NEXT:    vmovdqa64 192(%r9), %zmm13
19951 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
19952 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm1, %zmm9
19953 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm9
19954 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19955 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0
19956 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
19957 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm6
19958 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm12
19959 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
19960 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm12
19961 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19962 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm7
19963 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm20, %zmm7
19964 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm7
19965 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19966 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm17
19967 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
19968 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm22
19969 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19970 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
19971 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19972 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm3
19973 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19974 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
19975 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
19976 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19977 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm7
19978 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19979 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
19980 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm7
19981 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
19982 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19983 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
19984 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%rax), %zmm22
19985 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%r9), %ymm15
19986 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%r8), %ymm11
19987 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
19988 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm5[2,3,2,3],zmm22[2,3,2,3]
19989 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19990 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%r8), %zmm7
19991 ; AVX512DQ-FCP-NEXT:    vmovdqa64 256(%r9), %zmm5
19992 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19993 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm12
19994 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
19995 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm12
19996 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19997 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
19998 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
19999 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm12
20000 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm12
20001 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20002 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
20003 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20004 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
20005 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm9
20006 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm9
20007 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20008 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20009 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
20010 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm23, %zmm7
20011 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm22
20012 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20013 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
20014 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm21
20015 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
20016 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm2, %zmm7
20017 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm1
20018 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20019 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm14
20020 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm3, %zmm1
20021 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1 {%k1}
20022 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%rax), %zmm2
20023 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%r9), %ymm9
20024 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%r8), %ymm3
20025 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm3[0],ymm9[0],ymm3[2],ymm9[2]
20026 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm7[2,3,2,3],zmm2[2,3,2,3]
20027 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20028 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%r8), %zmm10
20029 ; AVX512DQ-FCP-NEXT:    vmovdqa64 320(%r9), %zmm7
20030 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
20031 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm1
20032 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, %zmm22
20033 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
20034 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20035 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
20036 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm1
20037 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
20038 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20039 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
20040 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm0
20041 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm0
20042 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20043 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
20044 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm23, %zmm10
20045 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm10, %zmm18, %zmm2
20046 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20047 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
20048 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
20049 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload
20050 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20051 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
20052 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
20053 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20054 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm30 # 32-byte Folded Reload
20055 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm30, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20056 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm24, %ymm0, %ymm25
20057 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %ymm25, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20058 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm15, %ymm0, %ymm11
20059 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20060 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm9, %ymm0, %ymm3
20061 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20062 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%r9), %ymm4
20063 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%r8), %ymm1
20064 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
20065 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20066 ; AVX512DQ-FCP-NEXT:    vpermt2q %ymm4, %ymm0, %ymm1
20067 ; AVX512DQ-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20068 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm19
20069 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm15
20070 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0
20071 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
20072 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm30
20073 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20074 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm9
20075 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm30
20076 ; AVX512DQ-FCP-NEXT:    movb $24, %r10b
20077 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k3
20078 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k3}
20079 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [0,8,0,8,0,8,0,8]
20080 ; AVX512DQ-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20081 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20082 ; AVX512DQ-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm0 # 64-byte Folded Reload
20083 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20084 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20085 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm27, %zmm18, %zmm0
20086 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20087 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20088 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm18, %zmm0
20089 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20090 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm17
20091 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20092 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm12
20093 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20094 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm8
20095 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20096 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
20097 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
20098 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
20099 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
20100 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
20101 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm30
20102 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm18
20103 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm22
20104 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20105 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
20106 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20107 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
20108 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20109 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm7
20110 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
20111 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
20112 ; AVX512DQ-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20113 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
20114 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
20115 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20116 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
20117 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20118 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm10
20119 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
20120 ; AVX512DQ-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
20121 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
20122 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm13
20123 ; AVX512DQ-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
20124 ; AVX512DQ-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20125 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm17
20126 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm17
20127 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm7
20128 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20129 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20130 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20131 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
20132 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20133 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
20134 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm5, %zmm0
20135 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20136 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
20137 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm0
20138 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20139 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm23, %zmm4
20140 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20141 ; AVX512DQ-FCP-NEXT:    movb $48, %r10b
20142 ; AVX512DQ-FCP-NEXT:    kmovw %r10d, %k4
20143 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
20144 ; AVX512DQ-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
20145 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20146 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm6
20147 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20148 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm6
20149 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20150 ; AVX512DQ-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
20151 ; AVX512DQ-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
20152 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20153 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm6, %zmm12
20154 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20155 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm11[0],zmm0[0],zmm11[2],zmm0[2],zmm11[4],zmm0[4],zmm11[6],zmm0[6]
20156 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20157 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
20158 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
20159 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20160 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
20161 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
20162 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20163 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm11
20164 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20165 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
20166 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
20167 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20168 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm11, %zmm8, %zmm0
20169 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20170 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20171 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm5, %zmm0
20172 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20173 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
20174 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm1, %zmm0
20175 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20176 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm11
20177 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20178 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20179 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20180 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20181 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm11
20182 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20183 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
20184 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
20185 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20186 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
20187 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20188 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20189 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
20190 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20191 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20192 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
20193 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20194 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
20195 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20196 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20197 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20198 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20199 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm3
20200 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20201 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm11
20202 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20203 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
20204 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
20205 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20206 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
20207 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20208 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20209 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20210 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm0
20211 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20212 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, %zmm11
20213 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
20214 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm26[0],zmm12[2],zmm26[2],zmm12[4],zmm26[4],zmm12[6],zmm26[6]
20215 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20216 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20217 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm0
20218 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20219 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
20220 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm0
20221 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20222 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm12
20223 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20224 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20225 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
20226 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20227 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
20228 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
20229 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm16
20230 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20231 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
20232 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm16
20233 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20234 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
20235 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20236 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20237 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20238 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm3
20239 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20240 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, %zmm3
20241 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
20242 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
20243 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm12 {%k4} = zmm0[0],zmm28[0],zmm0[2],zmm28[2],zmm0[4],zmm28[4],zmm0[6],zmm28[6]
20244 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20245 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20246 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
20247 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20248 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20249 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
20250 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20251 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm0
20252 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20253 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
20254 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20255 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm28
20256 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20257 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm3
20258 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20259 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20260 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm3
20261 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20262 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
20263 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20264 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20265 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
20266 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20267 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm29
20268 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
20269 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm27
20270 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm3[0],zmm0[2],zmm3[2],zmm0[4],zmm3[4],zmm0[6],zmm3[6]
20271 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20272 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm12
20273 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20274 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
20275 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm12
20276 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20277 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
20278 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20279 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm26
20280 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20281 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm26
20282 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20283 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm5, %zmm3
20284 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20285 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
20286 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
20287 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20288 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm0
20289 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20290 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
20291 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
20292 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16
20293 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm16
20294 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, %zmm25
20295 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm31, %zmm6, %zmm25
20296 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k4} = zmm31[0],zmm21[0],zmm31[2],zmm21[2],zmm31[4],zmm21[4],zmm31[6],zmm21[6]
20297 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm22
20298 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm14
20299 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, %zmm3
20300 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm23, %zmm31
20301 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm22
20302 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm5, %zmm14
20303 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20304 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm21, %zmm1, %zmm3
20305 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20306 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm15, %zmm19, %zmm2
20307 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20308 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm19, %zmm15, %zmm8
20309 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
20310 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
20311 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20312 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm19
20313 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20314 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
20315 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm19
20316 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
20317 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
20318 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm15, %zmm3
20319 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
20320 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
20321 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, %zmm20
20322 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20323 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm20
20324 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm15
20325 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20326 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm14[0],zmm9[0],zmm14[2],zmm9[2],zmm14[4],zmm9[4],zmm14[6],zmm9[6]
20327 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm5
20328 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
20329 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm14
20330 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20331 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm23
20332 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
20333 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
20334 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
20335 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm1 # 64-byte Folded Reload
20336 ; AVX512DQ-FCP-NEXT:    # zmm1 = zmm19[0,1,2,3],mem[4,5,6,7]
20337 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k1}
20338 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
20339 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
20340 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm13, %zmm9
20341 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k1}
20342 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [12,0,0,3,4,5,6,13]
20343 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
20344 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, %zmm16 {%k3}
20345 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
20346 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm16
20347 ; AVX512DQ-FCP-NEXT:    movb $6, %sil
20348 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k5
20349 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
20350 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
20351 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
20352 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
20353 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
20354 ; AVX512DQ-FCP-NEXT:    movb $64, %sil
20355 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20356 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
20357 ; AVX512DQ-FCP-NEXT:    movb $4, %sil
20358 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20359 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
20360 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
20361 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,11,0,4,5,6,7]
20362 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm21
20363 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
20364 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm3
20365 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
20366 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm7
20367 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
20368 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm9
20369 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
20370 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm16
20371 ; AVX512DQ-FCP-NEXT:    movb $12, %sil
20372 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k4
20373 ; AVX512DQ-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
20374 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
20375 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
20376 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
20377 ; AVX512DQ-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
20378 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
20379 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
20380 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,3,9,0,6,7]
20381 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm10
20382 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
20383 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20384 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20385 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
20386 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
20387 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20388 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20389 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
20390 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
20391 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20392 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, %zmm15
20393 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm15 {%k5}
20394 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
20395 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20396 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, %zmm14
20397 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
20398 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
20399 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20400 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
20401 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
20402 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20403 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
20404 ; AVX512DQ-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
20405 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
20406 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k5}
20407 ; AVX512DQ-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
20408 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20409 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20410 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
20411 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20412 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20413 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
20414 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20415 ; AVX512DQ-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
20416 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20417 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
20418 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20419 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
20420 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20421 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20422 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
20423 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20424 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
20425 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
20426 ; AVX512DQ-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
20427 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
20428 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
20429 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20430 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
20431 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm0
20432 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20433 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
20434 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
20435 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20436 ; AVX512DQ-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm16
20437 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
20438 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
20439 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20440 ; AVX512DQ-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
20441 ; AVX512DQ-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
20442 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20443 ; AVX512DQ-FCP-NEXT:    movb $8, %sil
20444 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
20445 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm21 {%k2}
20446 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20447 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20448 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
20449 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20450 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20451 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
20452 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20453 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20454 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
20455 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20456 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20457 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k3}
20458 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20459 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20460 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
20461 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20462 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
20463 ; AVX512DQ-FCP-NEXT:    movb $-31, %sil
20464 ; AVX512DQ-FCP-NEXT:    kmovw %esi, %k2
20465 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20466 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
20467 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20468 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20469 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
20470 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20471 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20472 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
20473 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20474 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20475 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
20476 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20477 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20478 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
20479 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20480 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20481 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
20482 ; AVX512DQ-FCP-NEXT:    vmovdqa (%rdx), %xmm4
20483 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20484 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20485 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20486 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm1 {%k4}
20487 ; AVX512DQ-FCP-NEXT:    vmovdqa 64(%rdx), %xmm4
20488 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20489 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20490 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20491 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm3 {%k4}
20492 ; AVX512DQ-FCP-NEXT:    vmovdqa 128(%rdx), %xmm4
20493 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20494 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20495 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20496 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k4}
20497 ; AVX512DQ-FCP-NEXT:    vmovdqa 192(%rdx), %xmm4
20498 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20499 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20500 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
20501 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm9 {%k4}
20502 ; AVX512DQ-FCP-NEXT:    vmovdqa 256(%rdx), %xmm4
20503 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20504 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20505 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm29 {%k4}
20506 ; AVX512DQ-FCP-NEXT:    vmovdqa 320(%rdx), %xmm4
20507 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20508 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20509 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm22 {%k4}
20510 ; AVX512DQ-FCP-NEXT:    vmovdqa 384(%rdx), %xmm4
20511 ; AVX512DQ-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
20512 ; AVX512DQ-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
20513 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm23 {%k4}
20514 ; AVX512DQ-FCP-NEXT:    movb $112, %cl
20515 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20516 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20517 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
20518 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20519 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20520 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm3 {%k2}
20521 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20522 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20523 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm7 {%k2}
20524 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20525 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20526 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm9 {%k2}
20527 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20528 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20529 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm29 {%k2}
20530 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20531 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm22 {%k2}
20532 ; AVX512DQ-FCP-NEXT:    vinserti64x2 $3, 384(%rax), %zmm18, %zmm23 {%k2}
20533 ; AVX512DQ-FCP-NEXT:    movb $56, %cl
20534 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20535 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20536 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
20537 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20538 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20539 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
20540 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20541 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20542 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
20543 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20544 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20545 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
20546 ; AVX512DQ-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20547 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20548 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
20549 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20550 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
20551 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm20 {%k2}
20552 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20553 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20554 ; AVX512DQ-FCP-NEXT:    movb $14, %cl
20555 ; AVX512DQ-FCP-NEXT:    kmovw %ecx, %k2
20556 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
20557 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k2}
20558 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20559 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20560 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
20561 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm15 {%k2}
20562 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20563 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20564 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
20565 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
20566 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20567 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20568 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
20569 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k2}
20570 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20571 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20572 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm28 {%k2}
20573 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20574 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20575 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm26 {%k2}
20576 ; AVX512DQ-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
20577 ; AVX512DQ-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
20578 ; AVX512DQ-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm8 {%k2}
20579 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20580 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20581 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
20582 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20583 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20584 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
20585 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20586 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20587 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
20588 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20589 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20590 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
20591 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20592 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20593 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k1}
20594 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20595 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20596 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
20597 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20598 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
20599 ; AVX512DQ-FCP-NEXT:    movb $120, %al
20600 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
20601 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
20602 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
20603 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20604 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
20605 ; AVX512DQ-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
20606 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
20607 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k1}
20608 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
20609 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
20610 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
20611 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2 {%k1}
20612 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
20613 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1 {%k1}
20614 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20615 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm0 {%k1}
20616 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k1}
20617 ; AVX512DQ-FCP-NEXT:    movb $-61, %al
20618 ; AVX512DQ-FCP-NEXT:    kmovw %eax, %k1
20619 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20620 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
20621 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20622 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
20623 ; AVX512DQ-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
20624 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20625 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
20626 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20627 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
20628 ; AVX512DQ-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
20629 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20630 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k1}
20631 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
20632 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
20633 ; AVX512DQ-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
20634 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20635 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k1}
20636 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
20637 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
20638 ; AVX512DQ-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
20639 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20640 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, %zmm12 {%k1}
20641 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
20642 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload
20643 ; AVX512DQ-FCP-NEXT:    # zmm13 = zmm13[0,1,2,3],mem[4,5,6,7]
20644 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
20645 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, %zmm13 {%k1}
20646 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
20647 ; AVX512DQ-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm18 # 64-byte Folded Reload
20648 ; AVX512DQ-FCP-NEXT:    # zmm18 = zmm18[0,1,2,3],mem[4,5,6,7]
20649 ; AVX512DQ-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
20650 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
20651 ; AVX512DQ-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20652 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm18, 3008(%rax)
20653 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm24, 2944(%rax)
20654 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm8, 2880(%rax)
20655 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20656 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 2816(%rax)
20657 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
20658 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
20659 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm31, 2624(%rax)
20660 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm13, 2560(%rax)
20661 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
20662 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm26, 2432(%rax)
20663 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20664 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 2368(%rax)
20665 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm25, 2304(%rax)
20666 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm22, 2240(%rax)
20667 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20668 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
20669 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm12, 2112(%rax)
20670 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
20671 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
20672 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20673 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 1920(%rax)
20674 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm27, 1856(%rax)
20675 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
20676 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20677 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
20678 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
20679 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
20680 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm7, 1536(%rax)
20681 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
20682 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm8, 1472(%rax)
20683 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20684 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1408(%rax)
20685 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20686 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
20687 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20688 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
20689 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
20690 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
20691 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm14, 1088(%rax)
20692 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
20693 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
20694 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20695 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
20696 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20697 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
20698 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20699 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
20700 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
20701 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm6, 704(%rax)
20702 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm15, 640(%rax)
20703 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20704 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
20705 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20706 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
20707 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20708 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
20709 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20710 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
20711 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
20712 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
20713 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
20714 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
20715 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm4, 128(%rax)
20716 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20717 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
20718 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20719 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, (%rax)
20720 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm16, 3520(%rax)
20721 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20722 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
20723 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20724 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
20725 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm21, 3328(%rax)
20726 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20727 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
20728 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20729 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
20730 ; AVX512DQ-FCP-NEXT:    vmovdqa64 %zmm30, 3072(%rax)
20731 ; AVX512DQ-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
20732 ; AVX512DQ-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
20733 ; AVX512DQ-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
20734 ; AVX512DQ-FCP-NEXT:    vzeroupper
20735 ; AVX512DQ-FCP-NEXT:    retq
20737 ; AVX512BW-LABEL: store_i64_stride7_vf64:
20738 ; AVX512BW:       # %bb.0:
20739 ; AVX512BW-NEXT:    subq $6248, %rsp # imm = 0x1868
20740 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
20741 ; AVX512BW-NEXT:    vmovdqa64 (%rdi), %zmm7
20742 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20743 ; AVX512BW-NEXT:    vmovdqa64 64(%rdi), %zmm19
20744 ; AVX512BW-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20745 ; AVX512BW-NEXT:    vmovdqa64 (%rsi), %zmm9
20746 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20747 ; AVX512BW-NEXT:    vmovdqa64 64(%rsi), %zmm16
20748 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20749 ; AVX512BW-NEXT:    vmovdqa64 64(%rdx), %zmm17
20750 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, (%rsp) # 64-byte Spill
20751 ; AVX512BW-NEXT:    vmovdqa64 (%rdx), %zmm3
20752 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20753 ; AVX512BW-NEXT:    vmovdqa64 (%rcx), %zmm4
20754 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20755 ; AVX512BW-NEXT:    vmovdqa64 64(%rcx), %zmm18
20756 ; AVX512BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20757 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm11 = [11,3,11,3,11,3,11,3]
20758 ; AVX512BW-NEXT:    # zmm11 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20759 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
20760 ; AVX512BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
20761 ; AVX512BW-NEXT:    movb $96, %r10b
20762 ; AVX512BW-NEXT:    kmovd %r10d, %k1
20763 ; AVX512BW-NEXT:    vmovdqa64 (%r8), %zmm1
20764 ; AVX512BW-NEXT:    vmovdqa64 (%r9), %zmm15
20765 ; AVX512BW-NEXT:    vmovdqa64 (%rax), %zmm5
20766 ; AVX512BW-NEXT:    vmovdqa64 64(%rax), %zmm6
20767 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
20768 ; AVX512BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20769 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20770 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
20771 ; AVX512BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
20772 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
20773 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm0, %zmm2
20774 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm8
20775 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [4,9,0,3,4,9,0,3]
20776 ; AVX512BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
20777 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm24, %zmm2
20778 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20779 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm0
20780 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm11, %zmm0
20781 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2
20782 ; AVX512BW-NEXT:    vpermt2q %zmm4, %zmm31, %zmm2
20783 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
20784 ; AVX512BW-NEXT:    vmovdqa (%r9), %ymm7
20785 ; AVX512BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20786 ; AVX512BW-NEXT:    vmovdqa 64(%r9), %ymm3
20787 ; AVX512BW-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20788 ; AVX512BW-NEXT:    vmovdqa (%r8), %ymm0
20789 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20790 ; AVX512BW-NEXT:    vmovdqa 64(%r8), %ymm4
20791 ; AVX512BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20792 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
20793 ; AVX512BW-NEXT:    movb $28, %r10b
20794 ; AVX512BW-NEXT:    kmovd %r10d, %k2
20795 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm5[2,3,2,3]
20796 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20797 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
20798 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
20799 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm0
20800 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm2, %zmm0
20801 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm7
20802 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
20803 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
20804 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm0
20805 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm14
20806 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20807 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm13 = [5,0,14,6,5,0,14,6]
20808 ; AVX512BW-NEXT:    # zmm13 = mem[0,1,2,3,0,1,2,3]
20809 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
20810 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm9
20811 ; AVX512BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20812 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm0
20813 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,13,6,7,0,13,6,7]
20814 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
20815 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm0
20816 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm15
20817 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20818 ; AVX512BW-NEXT:    vpermt2q %zmm9, %zmm25, %zmm1
20819 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm10 = [6,13,14,7,6,13,14,7]
20820 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3]
20821 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
20822 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20823 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm1
20824 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm11, %zmm1
20825 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm2
20826 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm31, %zmm2
20827 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
20828 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm4[0],ymm3[0],ymm4[2],ymm3[2]
20829 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
20830 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20831 ; AVX512BW-NEXT:    vmovdqa64 64(%r8), %zmm1
20832 ; AVX512BW-NEXT:    vmovdqa64 64(%r9), %zmm16
20833 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20834 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm8, %zmm3
20835 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm24, %zmm3
20836 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20837 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20838 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm7, %zmm3
20839 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm14, %zmm3
20840 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20841 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, %zmm3
20842 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
20843 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm15, %zmm3
20844 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20845 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm29
20846 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm25, %zmm1
20847 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm6
20848 ; AVX512BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20849 ; AVX512BW-NEXT:    vmovdqa64 128(%rdi), %zmm27
20850 ; AVX512BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
20851 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20852 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
20853 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
20854 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm17
20855 ; AVX512BW-NEXT:    vmovdqa64 128(%rdx), %zmm21
20856 ; AVX512BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
20857 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20858 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm3
20859 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
20860 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
20861 ; AVX512BW-NEXT:    vmovdqa64 128(%rax), %zmm5
20862 ; AVX512BW-NEXT:    vmovdqa 128(%r9), %ymm4
20863 ; AVX512BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20864 ; AVX512BW-NEXT:    vmovdqa 128(%r8), %ymm1
20865 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20866 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
20867 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
20868 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20869 ; AVX512BW-NEXT:    vmovdqa64 128(%r8), %zmm1
20870 ; AVX512BW-NEXT:    vmovdqa64 128(%r9), %zmm6
20871 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20872 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm8, %zmm3
20873 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm11
20874 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm24, %zmm3
20875 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20876 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20877 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm7, %zmm3
20878 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm14, %zmm3
20879 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20880 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm3
20881 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm3
20882 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm15, %zmm3
20883 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20884 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm20
20885 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm25, %zmm1
20886 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm5
20887 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20888 ; AVX512BW-NEXT:    vmovdqa64 192(%rdi), %zmm26
20889 ; AVX512BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
20890 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20891 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
20892 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm1
20893 ; AVX512BW-NEXT:    vmovdqa64 192(%rdx), %zmm18
20894 ; AVX512BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
20895 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20896 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm3
20897 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
20898 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
20899 ; AVX512BW-NEXT:    vmovdqa64 192(%rax), %zmm2
20900 ; AVX512BW-NEXT:    vmovdqa 192(%r9), %ymm5
20901 ; AVX512BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20902 ; AVX512BW-NEXT:    vmovdqa 192(%r8), %ymm1
20903 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20904 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm5[0],ymm1[2],ymm5[2]
20905 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
20906 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20907 ; AVX512BW-NEXT:    vmovdqa64 192(%r8), %zmm1
20908 ; AVX512BW-NEXT:    vmovdqa64 192(%r9), %zmm8
20909 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20910 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm11, %zmm3
20911 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm24, %zmm3
20912 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20913 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm3
20914 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm7, %zmm3
20915 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm28
20916 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm14, %zmm3
20917 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20918 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm30
20919 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm5
20920 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm13, %zmm5
20921 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm3
20922 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm15, %zmm5
20923 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm0
20924 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20925 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm9
20926 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
20927 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm0
20928 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20929 ; AVX512BW-NEXT:    vmovdqa64 256(%rdi), %zmm15
20930 ; AVX512BW-NEXT:    vmovdqa64 256(%rsi), %zmm22
20931 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
20932 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm14
20933 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20934 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm17, %zmm1
20935 ; AVX512BW-NEXT:    vmovdqa64 256(%rdx), %zmm12
20936 ; AVX512BW-NEXT:    vmovdqa64 256(%rcx), %zmm23
20937 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm5
20938 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm31, %zmm5
20939 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
20940 ; AVX512BW-NEXT:    vmovdqa64 256(%rax), %zmm0
20941 ; AVX512BW-NEXT:    vmovdqa 256(%r9), %ymm7
20942 ; AVX512BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20943 ; AVX512BW-NEXT:    vmovdqa 256(%r8), %ymm1
20944 ; AVX512BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20945 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm7[0],ymm1[2],ymm7[2]
20946 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
20947 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20948 ; AVX512BW-NEXT:    vmovdqa64 256(%r8), %zmm5
20949 ; AVX512BW-NEXT:    vmovdqa64 256(%r9), %zmm2
20950 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm17
20951 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm7
20952 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm17
20953 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm17
20954 ; AVX512BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20955 ; AVX512BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20956 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm11
20957 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm28, %zmm11
20958 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm30, %zmm11
20959 ; AVX512BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20960 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20961 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm11
20962 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm11
20963 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm3, %zmm11
20964 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20965 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20966 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4
20967 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm5
20968 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm0
20969 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20970 ; AVX512BW-NEXT:    vmovdqa64 320(%rdi), %zmm19
20971 ; AVX512BW-NEXT:    vmovdqa64 320(%rsi), %zmm0
20972 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20973 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm5
20974 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm14, %zmm5
20975 ; AVX512BW-NEXT:    vmovdqa64 320(%rdx), %zmm11
20976 ; AVX512BW-NEXT:    vmovdqa64 320(%rcx), %zmm17
20977 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm14
20978 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm31, %zmm14
20979 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm14 {%k1}
20980 ; AVX512BW-NEXT:    vmovdqa64 320(%rax), %zmm1
20981 ; AVX512BW-NEXT:    vmovdqa 320(%r9), %ymm5
20982 ; AVX512BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20983 ; AVX512BW-NEXT:    vmovdqa 320(%r8), %ymm0
20984 ; AVX512BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
20985 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm0[0],ymm5[0],ymm0[2],ymm5[2]
20986 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm14 {%k2} = zmm5[2,3,2,3],zmm1[2,3,2,3]
20987 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20988 ; AVX512BW-NEXT:    vmovdqa64 320(%r8), %zmm5
20989 ; AVX512BW-NEXT:    vmovdqa64 320(%r9), %zmm14
20990 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
20991 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm7, %zmm0
20992 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
20993 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20994 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
20995 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
20996 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm30, %zmm0
20997 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
20998 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, %zmm0
20999 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm13, %zmm0
21000 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm3, %zmm0
21001 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21002 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm3
21003 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm25, %zmm5
21004 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm10, %zmm1
21005 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21006 ; AVX512BW-NEXT:    vmovdqa64 384(%rdx), %zmm5
21007 ; AVX512BW-NEXT:    vmovdqa64 384(%rcx), %zmm24
21008 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm0
21009 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm25, %zmm0
21010 ; AVX512BW-NEXT:    vmovdqa64 384(%rdi), %zmm10
21011 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21012 ; AVX512BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
21013 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21014 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm10
21015 ; AVX512BW-NEXT:    movb $24, %r10b
21016 ; AVX512BW-NEXT:    kmovd %r10d, %k3
21017 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k3}
21018 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
21019 ; AVX512BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21020 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21021 ; AVX512BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
21022 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21023 ; AVX512BW-NEXT:    vpermt2q %zmm16, %zmm1, %zmm29
21024 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21025 ; AVX512BW-NEXT:    vpermt2q %zmm6, %zmm1, %zmm20
21026 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21027 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm9
21028 ; AVX512BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21029 ; AVX512BW-NEXT:    vpermt2q %zmm2, %zmm1, %zmm4
21030 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21031 ; AVX512BW-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
21032 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21033 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21034 ; AVX512BW-NEXT:    vmovdqa64 384(%r8), %zmm0
21035 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
21036 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
21037 ; AVX512BW-NEXT:    vmovdqa64 384(%r9), %zmm1
21038 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,15,0]
21039 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm3, %zmm10
21040 ; AVX512BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21041 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm2
21042 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21043 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm7
21044 ; AVX512BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21045 ; AVX512BW-NEXT:    vpermi2q %zmm1, %zmm0, %zmm28
21046 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21047 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm13, %zmm1
21048 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21049 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm7 = [13,5,13,5,13,5,13,5]
21050 ; AVX512BW-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21051 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21052 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21053 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21054 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
21055 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21056 ; AVX512BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [6,14,6,14,6,14,6,14]
21057 ; AVX512BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21058 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21059 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
21060 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21061 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21062 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm2
21063 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21064 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
21065 ; AVX512BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
21066 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
21067 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21068 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
21069 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21070 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
21071 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm7, %zmm1
21072 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21073 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21074 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
21075 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21076 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21077 ; AVX512BW-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
21078 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21079 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm13
21080 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm14
21081 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21082 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
21083 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm7, %zmm0
21084 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21085 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21086 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm10, %zmm0
21087 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21088 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, %zmm0
21089 ; AVX512BW-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
21090 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21091 ; AVX512BW-NEXT:    vpermt2q %zmm21, %zmm2, %zmm29
21092 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21093 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
21094 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm7, %zmm0
21095 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21096 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21097 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm10, %zmm0
21098 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21099 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm0
21100 ; AVX512BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm0
21101 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21102 ; AVX512BW-NEXT:    vpermt2q %zmm18, %zmm2, %zmm20
21103 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21104 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm7, %zmm0
21105 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21106 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21107 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm10, %zmm0
21108 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21109 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, %zmm0
21110 ; AVX512BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
21111 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21112 ; AVX512BW-NEXT:    vpermt2q %zmm12, %zmm2, %zmm23
21113 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, %zmm21
21114 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21115 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm7, %zmm0
21116 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21117 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21118 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm10, %zmm0
21119 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21120 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, %zmm0
21121 ; AVX512BW-NEXT:    vpermt2q %zmm17, %zmm25, %zmm0
21122 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21123 ; AVX512BW-NEXT:    vpermt2q %zmm11, %zmm2, %zmm17
21124 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, %zmm28
21125 ; AVX512BW-NEXT:    vmovdqa64 448(%rdx), %zmm8
21126 ; AVX512BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
21127 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm6
21128 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm6
21129 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, %zmm11
21130 ; AVX512BW-NEXT:    vpermi2q %zmm24, %zmm5, %zmm31
21131 ; AVX512BW-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
21132 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
21133 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm7, %zmm1
21134 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21135 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm1
21136 ; AVX512BW-NEXT:    vpermt2q %zmm24, %zmm10, %zmm1
21137 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21138 ; AVX512BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm11
21139 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm9
21140 ; AVX512BW-NEXT:    vpermt2q %zmm8, %zmm2, %zmm9
21141 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm12
21142 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm12
21143 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm13
21144 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm13
21145 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm8
21146 ; AVX512BW-NEXT:    movb $48, %r10b
21147 ; AVX512BW-NEXT:    kmovd %r10d, %k4
21148 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
21149 ; AVX512BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
21150 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21151 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21152 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21153 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
21154 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21155 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
21156 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21157 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2
21158 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21159 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16
21160 ; AVX512BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
21161 ; AVX512BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
21162 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
21163 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21164 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm2
21165 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21166 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm3
21167 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21168 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm16
21169 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21170 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm2
21171 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21172 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
21173 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21174 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm14 {%k4} = zmm0[0],zmm1[0],zmm0[2],zmm1[2],zmm0[4],zmm1[4],zmm0[6],zmm1[6]
21175 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21176 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3
21177 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2
21178 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14
21179 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm0
21180 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21181 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm3
21182 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21183 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
21184 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21185 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm14
21186 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21187 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21188 ; AVX512BW-NEXT:    vpermt2q %zmm27, %zmm5, %zmm1
21189 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21190 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm29 {%k4} = zmm27[0],zmm0[0],zmm27[2],zmm0[2],zmm27[4],zmm0[4],zmm27[6],zmm0[6]
21191 ; AVX512BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21192 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm2
21193 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm1
21194 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, %zmm23
21195 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm27
21196 ; AVX512BW-NEXT:    vmovdqu64 %zmm27, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21197 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm2
21198 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21199 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
21200 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21201 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm23
21202 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21203 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm1
21204 ; AVX512BW-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
21205 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21206 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
21207 ; AVX512BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21208 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm29
21209 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm1
21210 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, %zmm31
21211 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
21212 ; AVX512BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21213 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm29
21214 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
21215 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21216 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
21217 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, %zmm30
21218 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
21219 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm21 {%k4} = zmm15[0],zmm22[0],zmm15[2],zmm22[2],zmm15[4],zmm22[4],zmm15[6],zmm22[6]
21220 ; AVX512BW-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21221 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
21222 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm0
21223 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm26
21224 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm27
21225 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm4, %zmm27
21226 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm7, %zmm1
21227 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21228 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm10, %zmm0
21229 ; AVX512BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21230 ; AVX512BW-NEXT:    vpermt2q %zmm22, %zmm25, %zmm26
21231 ; AVX512BW-NEXT:    vmovdqa64 448(%rdi), %zmm15
21232 ; AVX512BW-NEXT:    vmovdqa64 448(%rsi), %zmm0
21233 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm17
21234 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm17
21235 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm22
21236 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21237 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm22
21238 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm24
21239 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm5, %zmm24
21240 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm19[0],zmm1[0],zmm19[2],zmm1[2],zmm19[4],zmm1[4],zmm19[6],zmm1[6]
21241 ; AVX512BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21242 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm18
21243 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm2
21244 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm21
21245 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm4, %zmm21
21246 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm7, %zmm18
21247 ; AVX512BW-NEXT:    vpermt2q %zmm1, %zmm10, %zmm2
21248 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21249 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
21250 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, %zmm20
21251 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm28 # 64-byte Reload
21252 ; AVX512BW-NEXT:    vpermt2q %zmm28, %zmm5, %zmm20
21253 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm3
21254 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
21255 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
21256 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm25
21257 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm1
21258 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm7, %zmm1
21259 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm7
21260 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, %zmm2
21261 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm2
21262 ; AVX512BW-NEXT:    vpermi2q %zmm19, %zmm28, %zmm10
21263 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm28[0],zmm19[0],zmm28[2],zmm19[2],zmm28[4],zmm19[4],zmm28[6],zmm19[6]
21264 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21265 ; AVX512BW-NEXT:    vpermt2q %zmm19, %zmm4, %zmm28
21266 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} zmm9 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
21267 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
21268 ; AVX512BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
21269 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
21270 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k1}
21271 ; AVX512BW-NEXT:    vmovdqa64 448(%r8), %zmm3
21272 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
21273 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm9, %zmm5
21274 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, %zmm1 {%k1}
21275 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [12,0,0,3,4,5,6,13]
21276 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm1, %zmm9
21277 ; AVX512BW-NEXT:    vmovdqa64 %zmm8, %zmm17 {%k3}
21278 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
21279 ; AVX512BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm17
21280 ; AVX512BW-NEXT:    movb $6, %sil
21281 ; AVX512BW-NEXT:    kmovd %esi, %k4
21282 ; AVX512BW-NEXT:    vpbroadcastq 456(%rcx), %ymm1
21283 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
21284 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
21285 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,9,0,0,6,7]
21286 ; AVX512BW-NEXT:    vpermi2q %zmm3, %zmm0, %zmm8
21287 ; AVX512BW-NEXT:    movb $64, %sil
21288 ; AVX512BW-NEXT:    kmovd %esi, %k5
21289 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
21290 ; AVX512BW-NEXT:    movb $4, %sil
21291 ; AVX512BW-NEXT:    kmovd %esi, %k5
21292 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k5}
21293 ; AVX512BW-NEXT:    vmovdqa64 448(%r9), %zmm0
21294 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
21295 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
21296 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm11
21297 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
21298 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
21299 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
21300 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm9, %zmm5
21301 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm6 = [13,0,2,3,4,5,6,14]
21302 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm6
21303 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
21304 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm17
21305 ; AVX512BW-NEXT:    movb $12, %sil
21306 ; AVX512BW-NEXT:    kmovd %esi, %k5
21307 ; AVX512BW-NEXT:    vmovdqa 448(%rdx), %xmm2
21308 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
21309 ; AVX512BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
21310 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
21311 ; AVX512BW-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
21312 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
21313 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
21314 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
21315 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm2
21316 ; AVX512BW-NEXT:    vmovdqa64 384(%rax), %zmm0
21317 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
21318 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21319 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
21320 ; AVX512BW-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
21321 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
21322 ; AVX512BW-NEXT:    vmovdqa 384(%r9), %ymm12
21323 ; AVX512BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21324 ; AVX512BW-NEXT:    vmovdqa 384(%r8), %ymm8
21325 ; AVX512BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21326 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
21327 ; AVX512BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
21328 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
21329 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21330 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
21331 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
21332 ; AVX512BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21333 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21334 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
21335 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm1
21336 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
21337 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
21338 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
21339 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21340 ; AVX512BW-NEXT:    vmovdqa64 448(%rax), %zmm0
21341 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [0,1,2,3,10,5,6,7]
21342 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm12
21343 ; AVX512BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21344 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,12,3,4,5,6,7]
21345 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm3
21346 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21347 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,13,2,3,4,5,6,7]
21348 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm6, %zmm3
21349 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21350 ; AVX512BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm17
21351 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,5,8,7]
21352 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm3
21353 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21354 ; AVX512BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,3,4,9,6,7]
21355 ; AVX512BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm3
21356 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21357 ; AVX512BW-NEXT:    movb $8, %sil
21358 ; AVX512BW-NEXT:    kmovd %esi, %k2
21359 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
21360 ; AVX512BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21361 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21362 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k3}
21363 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21364 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
21365 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21366 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
21367 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21368 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
21369 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21370 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
21371 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21372 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k3}
21373 ; AVX512BW-NEXT:    movb $-31, %sil
21374 ; AVX512BW-NEXT:    kmovd %esi, %k2
21375 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21376 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm16 {%k2}
21377 ; AVX512BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21378 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21379 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
21380 ; AVX512BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21381 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21382 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
21383 ; AVX512BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21384 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21385 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
21386 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21387 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
21388 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21389 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
21390 ; AVX512BW-NEXT:    vmovdqa (%rdx), %xmm0
21391 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21392 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21393 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21394 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
21395 ; AVX512BW-NEXT:    vmovdqa 64(%rdx), %xmm0
21396 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21397 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21398 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21399 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k5}
21400 ; AVX512BW-NEXT:    vmovdqa 128(%rdx), %xmm0
21401 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21402 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21403 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21404 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
21405 ; AVX512BW-NEXT:    vmovdqa 192(%rdx), %xmm0
21406 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21407 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21408 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21409 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
21410 ; AVX512BW-NEXT:    vmovdqa 256(%rdx), %xmm0
21411 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21412 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21413 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
21414 ; AVX512BW-NEXT:    vmovdqa 320(%rdx), %xmm0
21415 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21416 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21417 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
21418 ; AVX512BW-NEXT:    vmovdqa 384(%rdx), %xmm0
21419 ; AVX512BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
21420 ; AVX512BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
21421 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
21422 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21423 ; AVX512BW-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm0
21424 ; AVX512BW-NEXT:    movb $112, %sil
21425 ; AVX512BW-NEXT:    kmovd %esi, %k2
21426 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
21427 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21428 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21429 ; AVX512BW-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm0
21430 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
21431 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21432 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21433 ; AVX512BW-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm0
21434 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
21435 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21436 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21437 ; AVX512BW-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm0
21438 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
21439 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21440 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21441 ; AVX512BW-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm0
21442 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
21443 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21444 ; AVX512BW-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm0
21445 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
21446 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21447 ; AVX512BW-NEXT:    vinserti32x4 $3, 384(%rax), %zmm0, %zmm0
21448 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm28 {%k2}
21449 ; AVX512BW-NEXT:    vpbroadcastq 8(%rcx), %ymm0
21450 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21451 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21452 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm5 {%k4}
21453 ; AVX512BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
21454 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21455 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21456 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
21457 ; AVX512BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
21458 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21459 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21460 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
21461 ; AVX512BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
21462 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21463 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21464 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
21465 ; AVX512BW-NEXT:    vpbroadcastq 264(%rcx), %ymm0
21466 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21467 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
21468 ; AVX512BW-NEXT:    vpbroadcastq 328(%rcx), %ymm0
21469 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21470 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
21471 ; AVX512BW-NEXT:    vpbroadcastq 392(%rcx), %ymm0
21472 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
21473 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
21474 ; AVX512BW-NEXT:    movb $56, %cl
21475 ; AVX512BW-NEXT:    kmovd %ecx, %k2
21476 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21477 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k2}
21478 ; AVX512BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21479 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21480 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
21481 ; AVX512BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21482 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21483 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
21484 ; AVX512BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21485 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21486 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
21487 ; AVX512BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21488 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21489 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
21490 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21491 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
21492 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, %zmm20 {%k2}
21493 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21494 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21495 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
21496 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21497 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21498 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
21499 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21500 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21501 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
21502 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21503 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k1}
21504 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21505 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21506 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
21507 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21508 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm18 {%k1}
21509 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21510 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k1}
21511 ; AVX512BW-NEXT:    movb $120, %cl
21512 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21513 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
21514 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm19 {%k1}
21515 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21516 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
21517 ; AVX512BW-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
21518 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
21519 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k1}
21520 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
21521 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm15 {%k1}
21522 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
21523 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, %zmm25 {%k1}
21524 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
21525 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm29 {%k1}
21526 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
21527 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, %zmm23 {%k1}
21528 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
21529 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm12 {%k1}
21530 ; AVX512BW-NEXT:    movb $-61, %cl
21531 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21532 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21533 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
21534 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21535 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm13 # 64-byte Folded Reload
21536 ; AVX512BW-NEXT:    # zmm13 = zmm0[0,1,2,3],mem[4,5,6,7]
21537 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21538 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, %zmm13 {%k1}
21539 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21540 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
21541 ; AVX512BW-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
21542 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21543 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, %zmm11 {%k1}
21544 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21545 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
21546 ; AVX512BW-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
21547 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21548 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
21549 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21550 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
21551 ; AVX512BW-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
21552 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
21553 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
21554 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21555 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
21556 ; AVX512BW-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
21557 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
21558 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
21559 ; AVX512BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm7 # 64-byte Folded Reload
21560 ; AVX512BW-NEXT:    # zmm7 = zmm10[0,1,2,3],mem[4,5,6,7]
21561 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, %zmm7 {%k1}
21562 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21563 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21564 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21565 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21566 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21567 ; AVX512BW-NEXT:    movb $14, %cl
21568 ; AVX512BW-NEXT:    kmovd %ecx, %k1
21569 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
21570 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm10 {%k1}
21571 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21572 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21573 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21574 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21575 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21576 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
21577 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
21578 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21579 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21580 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21581 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21582 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21583 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
21584 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
21585 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21586 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21587 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21588 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21589 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21590 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21591 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
21592 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21593 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21594 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21595 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21596 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21597 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21598 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
21599 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21600 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
21601 ; AVX512BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
21602 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21603 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21604 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
21605 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
21606 ; AVX512BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
21607 ; AVX512BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
21608 ; AVX512BW-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
21609 ; AVX512BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
21610 ; AVX512BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
21611 ; AVX512BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21612 ; AVX512BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
21613 ; AVX512BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
21614 ; AVX512BW-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
21615 ; AVX512BW-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
21616 ; AVX512BW-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
21617 ; AVX512BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
21618 ; AVX512BW-NEXT:    vmovaps %zmm0, 2816(%rax)
21619 ; AVX512BW-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
21620 ; AVX512BW-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
21621 ; AVX512BW-NEXT:    vmovdqa64 %zmm22, 2624(%rax)
21622 ; AVX512BW-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
21623 ; AVX512BW-NEXT:    vmovdqa64 %zmm23, 2496(%rax)
21624 ; AVX512BW-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
21625 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
21626 ; AVX512BW-NEXT:    vmovaps %zmm6, 2368(%rax)
21627 ; AVX512BW-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
21628 ; AVX512BW-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
21629 ; AVX512BW-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
21630 ; AVX512BW-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
21631 ; AVX512BW-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
21632 ; AVX512BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
21633 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
21634 ; AVX512BW-NEXT:    vmovaps %zmm5, 1920(%rax)
21635 ; AVX512BW-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
21636 ; AVX512BW-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
21637 ; AVX512BW-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
21638 ; AVX512BW-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
21639 ; AVX512BW-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
21640 ; AVX512BW-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
21641 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
21642 ; AVX512BW-NEXT:    vmovaps %zmm4, 1472(%rax)
21643 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21644 ; AVX512BW-NEXT:    vmovaps %zmm0, 1408(%rax)
21645 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21646 ; AVX512BW-NEXT:    vmovaps %zmm0, 1344(%rax)
21647 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21648 ; AVX512BW-NEXT:    vmovaps %zmm0, 1280(%rax)
21649 ; AVX512BW-NEXT:    vmovdqa64 %zmm11, 1216(%rax)
21650 ; AVX512BW-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
21651 ; AVX512BW-NEXT:    vmovdqa64 %zmm9, 1088(%rax)
21652 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
21653 ; AVX512BW-NEXT:    vmovaps %zmm3, 1024(%rax)
21654 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21655 ; AVX512BW-NEXT:    vmovaps %zmm0, 960(%rax)
21656 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21657 ; AVX512BW-NEXT:    vmovaps %zmm0, 896(%rax)
21658 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21659 ; AVX512BW-NEXT:    vmovaps %zmm0, 832(%rax)
21660 ; AVX512BW-NEXT:    vmovdqa64 %zmm13, 768(%rax)
21661 ; AVX512BW-NEXT:    vmovdqa64 %zmm14, 704(%rax)
21662 ; AVX512BW-NEXT:    vmovdqa64 %zmm18, 640(%rax)
21663 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
21664 ; AVX512BW-NEXT:    vmovaps %zmm2, 576(%rax)
21665 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21666 ; AVX512BW-NEXT:    vmovaps %zmm0, 512(%rax)
21667 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21668 ; AVX512BW-NEXT:    vmovaps %zmm0, 448(%rax)
21669 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21670 ; AVX512BW-NEXT:    vmovaps %zmm0, 384(%rax)
21671 ; AVX512BW-NEXT:    vmovdqa64 %zmm16, 320(%rax)
21672 ; AVX512BW-NEXT:    vmovdqa64 %zmm19, 256(%rax)
21673 ; AVX512BW-NEXT:    vmovdqa64 %zmm10, 192(%rax)
21674 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21675 ; AVX512BW-NEXT:    vmovaps %zmm0, 128(%rax)
21676 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21677 ; AVX512BW-NEXT:    vmovaps %zmm0, 64(%rax)
21678 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21679 ; AVX512BW-NEXT:    vmovaps %zmm0, (%rax)
21680 ; AVX512BW-NEXT:    vmovdqa64 %zmm17, 3520(%rax)
21681 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21682 ; AVX512BW-NEXT:    vmovaps %zmm0, 3456(%rax)
21683 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21684 ; AVX512BW-NEXT:    vmovaps %zmm0, 3392(%rax)
21685 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21686 ; AVX512BW-NEXT:    vmovaps %zmm0, 3328(%rax)
21687 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21688 ; AVX512BW-NEXT:    vmovaps %zmm0, 3264(%rax)
21689 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21690 ; AVX512BW-NEXT:    vmovaps %zmm0, 3200(%rax)
21691 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21692 ; AVX512BW-NEXT:    vmovaps %zmm0, 3072(%rax)
21693 ; AVX512BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
21694 ; AVX512BW-NEXT:    vmovaps %zmm0, 3136(%rax)
21695 ; AVX512BW-NEXT:    addq $6248, %rsp # imm = 0x1868
21696 ; AVX512BW-NEXT:    vzeroupper
21697 ; AVX512BW-NEXT:    retq
21699 ; AVX512BW-FCP-LABEL: store_i64_stride7_vf64:
21700 ; AVX512BW-FCP:       # %bb.0:
21701 ; AVX512BW-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
21702 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
21703 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm7
21704 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21705 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm13
21706 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21707 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm8
21708 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21709 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm20
21710 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, (%rsp) # 64-byte Spill
21711 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm14
21712 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21713 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm10
21714 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21715 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm11
21716 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21717 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm19
21718 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21719 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [11,3,11,3,11,3,11,3]
21720 ; AVX512BW-FCP-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21721 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm3 = [2,10,0,3,2,10,0,3]
21722 ; AVX512BW-FCP-NEXT:    # zmm3 = mem[0,1,2,3,0,1,2,3]
21723 ; AVX512BW-FCP-NEXT:    movb $96, %r10b
21724 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k1
21725 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
21726 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm18
21727 ; AVX512BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm4
21728 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
21729 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
21730 ; AVX512BW-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21731 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21732 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
21733 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
21734 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
21735 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm0, %zmm2
21736 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6
21737 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
21738 ; AVX512BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
21739 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm0, %zmm2
21740 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
21741 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21742 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
21743 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm9, %zmm0
21744 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2
21745 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm11, %zmm3, %zmm2
21746 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
21747 ; AVX512BW-FCP-NEXT:    vmovdqa (%r9), %ymm0
21748 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21749 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm10
21750 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21751 ; AVX512BW-FCP-NEXT:    vmovdqa (%r8), %ymm8
21752 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21753 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm7
21754 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21755 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm8[0],ymm0[0],ymm8[2],ymm0[2]
21756 ; AVX512BW-FCP-NEXT:    movb $28, %r10b
21757 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k2
21758 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm4[2,3,2,3]
21759 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21760 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [4,12,0,5,4,12,0,5]
21761 ; AVX512BW-FCP-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
21762 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0
21763 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm2, %zmm0
21764 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [0,1,12,7,0,1,12,7]
21765 ; AVX512BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
21766 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
21767 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21768 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm22 = [5,0,14,6,5,0,14,6]
21769 ; AVX512BW-FCP-NEXT:    # zmm22 = mem[0,1,2,3,0,1,2,3]
21770 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21771 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm0
21772 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm0
21773 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,13,6,7,0,13,6,7]
21774 ; AVX512BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
21775 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm15, %zmm0
21776 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21777 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm1
21778 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
21779 ; AVX512BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
21780 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm4
21781 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21782 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm1
21783 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
21784 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm4
21785 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm3, %zmm4
21786 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
21787 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm7[0],ymm10[0],ymm7[2],ymm10[2]
21788 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
21789 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21790 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
21791 ; AVX512BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm30
21792 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
21793 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm6, %zmm4
21794 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
21795 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21796 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7
21797 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4
21798 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
21799 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm2, %zmm4
21800 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm4
21801 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21802 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
21803 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm22, %zmm2
21804 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm15, %zmm2
21805 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21806 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21807 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm23, %zmm1
21808 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm7
21809 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21810 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
21811 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21812 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
21813 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm9, %zmm1
21814 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm29
21815 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm4
21816 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21817 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
21818 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21819 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm3, %zmm4
21820 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9
21821 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm4 {%k1}
21822 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm7
21823 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm1
21824 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21825 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm0
21826 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21827 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
21828 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm4 {%k2} = zmm1[2,3,2,3],zmm7[2,3,2,3]
21829 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21830 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm4
21831 ; AVX512BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm19
21832 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21833 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm6, %zmm3
21834 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
21835 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm12, %zmm3
21836 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21837 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21838 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm3
21839 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm13
21840 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm3
21841 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21842 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm3
21843 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm22, %zmm3
21844 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm20
21845 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm7, %zmm15, %zmm3
21846 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21847 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21848 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm4
21849 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm4, %zmm18, %zmm7
21850 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21851 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm4
21852 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21853 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
21854 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm29, %zmm4
21855 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm3
21856 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21857 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
21858 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21859 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm9, %zmm3
21860 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
21861 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm14
21862 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%r9), %ymm0
21863 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21864 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm5
21865 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
21866 ; AVX512BW-FCP-NEXT:    vmovdqa64 %ymm5, %ymm24
21867 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm4[2,3,2,3],zmm14[2,3,2,3]
21868 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21869 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
21870 ; AVX512BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm17
21871 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
21872 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm6, %zmm3
21873 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm4
21874 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm12, %zmm3
21875 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21876 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3
21877 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm13, %zmm3
21878 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm3
21879 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21880 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm7
21881 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm3
21882 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm22, %zmm3
21883 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm15, %zmm3
21884 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21885 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm21
21886 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm5
21887 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm14
21888 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21889 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
21890 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21891 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm15
21892 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm1
21893 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21894 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm29, %zmm5
21895 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm3
21896 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21897 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
21898 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm8
21899 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm9, %zmm3
21900 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm3 {%k1}
21901 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%rax), %zmm16
21902 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%r9), %ymm10
21903 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%r8), %ymm5
21904 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm6 = ymm5[0],ymm10[0],ymm5[2],ymm10[2]
21905 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm6[2,3,2,3],zmm16[2,3,2,3]
21906 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21907 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm6
21908 ; AVX512BW-FCP-NEXT:    vmovdqa64 256(%r9), %zmm9
21909 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
21910 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm3
21911 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21912 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm12, %zmm3
21913 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
21914 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21915 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm3
21916 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm16
21917 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm13, %zmm3
21918 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21919 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
21920 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21921 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm3
21922 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm22, %zmm3
21923 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm3
21924 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21925 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21926 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm11
21927 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm6
21928 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm6, %zmm18, %zmm0
21929 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21930 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm27
21931 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm25
21932 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm6
21933 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm6
21934 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm0
21935 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21936 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm12
21937 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm0
21938 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm13
21939 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21940 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0 {%k1}
21941 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%rax), %zmm1
21942 ; AVX512BW-FCP-NEXT:    vmovdqa 320(%r9), %ymm6
21943 ; AVX512BW-FCP-NEXT:    vmovdqa 320(%r8), %ymm14
21944 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm14[0],ymm6[0],ymm14[2],ymm6[2]
21945 ; AVX512BW-FCP-NEXT:    vmovdqa64 %ymm14, %ymm31
21946 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm0 {%k2} = zmm8[2,3,2,3],zmm1[2,3,2,3]
21947 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21948 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm8
21949 ; AVX512BW-FCP-NEXT:    vmovdqa64 320(%r9), %zmm14
21950 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
21951 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm4, %zmm0
21952 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
21953 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
21954 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
21955 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21956 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm0
21957 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm16, %zmm0
21958 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm7, %zmm0
21959 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21960 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm0
21961 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm22, %zmm0
21962 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm0
21963 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21964 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm1
21965 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm8
21966 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm8, %zmm18, %zmm2
21967 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21968 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
21969 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
21970 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
21971 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21972 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
21973 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
21974 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21975 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm2 # 32-byte Reload
21976 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm2 # 32-byte Folded Reload
21977 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm2, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21978 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm24 # 32-byte Folded Reload
21979 ; AVX512BW-FCP-NEXT:    vmovdqu64 %ymm24, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21980 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm10, %ymm0, %ymm5
21981 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21982 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm6, %ymm0, %ymm31
21983 ; AVX512BW-FCP-NEXT:    vmovdqu64 %ymm31, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21984 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%r9), %ymm2
21985 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%r8), %ymm4
21986 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm4[0],ymm2[0],ymm4[2],ymm2[2]
21987 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21988 ; AVX512BW-FCP-NEXT:    vpermt2q %ymm2, %ymm0, %ymm4
21989 ; AVX512BW-FCP-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
21990 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm31
21991 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm10
21992 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm0
21993 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm23, %zmm0
21994 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm24
21995 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
21996 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm18
21997 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm23, %zmm24
21998 ; AVX512BW-FCP-NEXT:    movb $24, %r10b
21999 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k3
22000 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k3}
22001 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm20 = [0,8,0,8,0,8,0,8]
22002 ; AVX512BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22003 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22004 ; AVX512BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm20, %zmm0 # 64-byte Folded Reload
22005 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22006 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22007 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm20, %zmm0
22008 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22009 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22010 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm20, %zmm0
22011 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22012 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm20, %zmm21
22013 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22014 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm9, %zmm20, %zmm11
22015 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22016 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm20, %zmm1
22017 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22018 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
22019 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
22020 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
22021 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
22022 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
22023 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm24
22024 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm20
22025 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm3
22026 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22027 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm16
22028 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22029 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm22, %zmm1
22030 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm9
22031 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm30
22032 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
22033 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
22034 ; AVX512BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22035 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
22036 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
22037 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22038 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm8
22039 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm13, %zmm8
22040 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm7 = [3,0,12,4,3,0,12,4]
22041 ; AVX512BW-FCP-NEXT:    # zmm7 = mem[0,1,2,3,0,1,2,3]
22042 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
22043 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm30, %zmm7, %zmm11
22044 ; AVX512BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
22045 ; AVX512BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22046 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm2
22047 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
22048 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22049 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm30
22050 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
22051 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm0
22052 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22053 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm7, %zmm0
22054 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22055 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm5, %zmm2
22056 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22057 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22058 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm1, %zmm2
22059 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22060 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm17, %zmm23, %zmm3
22061 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22062 ; AVX512BW-FCP-NEXT:    movb $48, %r10b
22063 ; AVX512BW-FCP-NEXT:    kmovd %r10d, %k4
22064 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
22065 ; AVX512BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
22066 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22067 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
22068 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
22069 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm4, %zmm2
22070 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22071 ; AVX512BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
22072 ; AVX512BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
22073 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
22074 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm2
22075 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22076 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm0 {%k4} = zmm3[0],zmm19[0],zmm3[2],zmm19[2],zmm3[4],zmm19[4],zmm3[6],zmm19[6]
22077 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22078 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22079 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm5, %zmm0
22080 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22081 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22082 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm1, %zmm0
22083 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22084 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm19, %zmm23, %zmm3
22085 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22086 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22087 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22088 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22089 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
22090 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22091 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
22092 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22093 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22094 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
22095 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22096 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22097 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22098 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22099 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22100 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
22101 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm3
22102 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22103 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
22104 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm6, %zmm3
22105 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22106 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm13[0],zmm0[0],zmm13[2],zmm0[2],zmm13[4],zmm0[4],zmm13[6],zmm0[6]
22107 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22108 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
22109 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
22110 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22111 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm2
22112 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
22113 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22114 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22115 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22116 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22117 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm3
22118 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22119 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm3
22120 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
22121 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm5, %zmm14
22122 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22123 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14
22124 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm1, %zmm14
22125 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22126 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm2, %zmm23, %zmm0
22127 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22128 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22129 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22130 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm2
22131 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22132 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm2
22133 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
22134 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
22135 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm0[0],zmm26[0],zmm0[2],zmm26[2],zmm0[4],zmm26[4],zmm0[6],zmm26[6]
22136 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22137 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22138 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm2
22139 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22140 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22141 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm2
22142 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22143 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm0
22144 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22145 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22146 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22147 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22148 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm2
22149 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22150 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
22151 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22152 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm3
22153 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
22154 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22155 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm13
22156 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22157 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22158 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22159 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm0
22160 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22161 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm22
22162 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm6, %zmm22
22163 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm2 {%k4} = zmm3[0],zmm28[0],zmm3[2],zmm28[2],zmm3[4],zmm28[4],zmm3[6],zmm28[6]
22164 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22165 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22166 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm0
22167 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22168 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0
22169 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm0
22170 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22171 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm3
22172 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22173 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
22174 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22175 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm7, %zmm28
22176 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22177 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm2
22178 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22179 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22180 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm2
22181 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22182 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
22183 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22184 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22185 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
22186 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm4, %zmm29
22187 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm21
22188 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm21
22189 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm15[0],zmm0[2],zmm15[2],zmm0[4],zmm15[4],zmm0[6],zmm15[6]
22190 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22191 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
22192 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22193 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2
22194 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm2
22195 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22196 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
22197 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22198 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
22199 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
22200 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm19
22201 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
22202 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm5, %zmm0
22203 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22204 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
22205 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm0
22206 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22207 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm23, %zmm16
22208 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
22209 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
22210 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm15
22211 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm15
22212 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, %zmm17
22213 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm13
22214 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm27, %zmm6, %zmm17
22215 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm19 {%k4} = zmm27[0],zmm25[0],zmm27[2],zmm25[2],zmm27[4],zmm25[4],zmm27[6],zmm25[6]
22216 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm3
22217 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
22218 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm23, %zmm13
22219 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm4, %zmm27
22220 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm5, %zmm3
22221 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22222 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm25, %zmm1, %zmm2
22223 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22224 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
22225 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm10, %zmm31, %zmm26
22226 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm31, %zmm10, %zmm7
22227 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm2
22228 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm5, %zmm2
22229 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22230 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm10, %zmm1, %zmm31
22231 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm31, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22232 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10
22233 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm10
22234 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
22235 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
22236 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm3
22237 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
22238 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
22239 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm25
22240 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22241 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm25
22242 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm23
22243 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22244 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm7 {%k4} = zmm14[0],zmm18[0],zmm14[2],zmm18[2],zmm14[4],zmm18[4],zmm14[6],zmm18[6]
22245 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm18, %zmm14, %zmm5
22246 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
22247 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm1, %zmm14
22248 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22249 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm18, %zmm4, %zmm23
22250 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm11 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
22251 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
22252 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
22253 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm1 # 64-byte Folded Reload
22254 ; AVX512BW-FCP-NEXT:    # zmm1 = zmm10[0,1,2,3],mem[4,5,6,7]
22255 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k1}
22256 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
22257 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,11,0,0,4,5,6,7]
22258 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm11, %zmm10
22259 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22260 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm2 {%k1}
22261 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [12,0,0,3,4,5,6,13]
22262 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm11
22263 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm15 {%k3}
22264 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
22265 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm15
22266 ; AVX512BW-FCP-NEXT:    movb $6, %sil
22267 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k5
22268 ; AVX512BW-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
22269 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
22270 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
22271 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
22272 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
22273 ; AVX512BW-FCP-NEXT:    movb $64, %sil
22274 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22275 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
22276 ; AVX512BW-FCP-NEXT:    movb $4, %sil
22277 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22278 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k4}
22279 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
22280 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm31 = [0,1,11,0,4,5,6,7]
22281 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm31
22282 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
22283 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm8, %zmm3
22284 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,12,0,3,4,5,6,7]
22285 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm11, %zmm8
22286 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [13,0,2,3,4,5,6,14]
22287 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm10
22288 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
22289 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm15
22290 ; AVX512BW-FCP-NEXT:    movb $12, %sil
22291 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k4
22292 ; AVX512BW-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
22293 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
22294 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
22295 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
22296 ; AVX512BW-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
22297 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
22298 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
22299 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm11 = [0,1,2,3,9,0,6,7]
22300 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm11
22301 ; AVX512BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
22302 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22303 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22304 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
22305 ; AVX512BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
22306 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22307 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22308 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
22309 ; AVX512BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
22310 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22311 ; AVX512BW-FCP-NEXT:    vmovdqu64 (%rsp), %zmm2 # 64-byte Reload
22312 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
22313 ; AVX512BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
22314 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22315 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm22 {%k5}
22316 ; AVX512BW-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
22317 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22318 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
22319 ; AVX512BW-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
22320 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22321 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm17 {%k5}
22322 ; AVX512BW-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
22323 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
22324 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
22325 ; AVX512BW-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
22326 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22327 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22328 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
22329 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22330 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm26 {%k1}
22331 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22332 ; AVX512BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm26 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
22333 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22334 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm26 # 64-byte Reload
22335 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22336 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm26
22337 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22338 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm9
22339 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22340 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
22341 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
22342 ; AVX512BW-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
22343 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
22344 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
22345 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22346 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
22347 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm8, %zmm0
22348 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22349 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
22350 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
22351 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22352 ; AVX512BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm15
22353 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
22354 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
22355 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22356 ; AVX512BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
22357 ; AVX512BW-FCP-NEXT:    vpermi2q %zmm12, %zmm11, %zmm0
22358 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22359 ; AVX512BW-FCP-NEXT:    movb $8, %sil
22360 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
22361 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm31 {%k2}
22362 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22363 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22364 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm0 {%k3}
22365 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22366 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22367 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k3}
22368 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22369 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22370 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k3}
22371 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22372 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22373 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k3}
22374 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
22375 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22376 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k3}
22377 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm13 {%k3}
22378 ; AVX512BW-FCP-NEXT:    movb $-31, %sil
22379 ; AVX512BW-FCP-NEXT:    kmovd %esi, %k2
22380 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22381 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm0 {%k2}
22382 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22383 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22384 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
22385 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22386 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22387 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %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:    vmovdqa64 %zmm0, %zmm8 {%k2}
22391 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22392 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22393 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
22394 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22395 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22396 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k2}
22397 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22398 ; AVX512BW-FCP-NEXT:    vmovdqa (%rdx), %xmm3
22399 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22400 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22401 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22402 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm1 {%k4}
22403 ; AVX512BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm3
22404 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22405 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22406 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22407 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm4 {%k4}
22408 ; AVX512BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm3
22409 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22410 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22411 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22412 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm8 {%k4}
22413 ; AVX512BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm3
22414 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22415 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22416 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
22417 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm9 {%k4}
22418 ; AVX512BW-FCP-NEXT:    vmovdqa 256(%rdx), %xmm3
22419 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22420 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22421 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm29 {%k4}
22422 ; AVX512BW-FCP-NEXT:    vmovdqa 320(%rdx), %xmm3
22423 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22424 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22425 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm27 {%k4}
22426 ; AVX512BW-FCP-NEXT:    vmovdqa 384(%rdx), %xmm3
22427 ; AVX512BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm3 = xmm3[0],mem[0]
22428 ; AVX512BW-FCP-NEXT:    vinserti128 $1, %xmm3, %ymm0, %ymm3
22429 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm23 {%k4}
22430 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22431 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, (%rax), %zmm0, %zmm3
22432 ; AVX512BW-FCP-NEXT:    movb $112, %cl
22433 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22434 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k2}
22435 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22436 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22437 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 64(%rax), %zmm0, %zmm3
22438 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm4 {%k2}
22439 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22440 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22441 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 128(%rax), %zmm0, %zmm3
22442 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm8 {%k2}
22443 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22444 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22445 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 192(%rax), %zmm0, %zmm3
22446 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm9 {%k2}
22447 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22448 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22449 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 256(%rax), %zmm0, %zmm3
22450 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm29 {%k2}
22451 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22452 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 320(%rax), %zmm0, %zmm3
22453 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27 {%k2}
22454 ; AVX512BW-FCP-NEXT:    vinserti32x4 $3, 384(%rax), %zmm20, %zmm3
22455 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm23 {%k2}
22456 ; AVX512BW-FCP-NEXT:    movb $56, %cl
22457 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22458 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22459 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm14 {%k2}
22460 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22461 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22462 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm6 {%k2}
22463 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22464 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22465 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
22466 ; AVX512BW-FCP-NEXT:    vmovdqu64 %zmm2, (%rsp) # 64-byte Spill
22467 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22468 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k2}
22469 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22470 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm21 {%k2}
22471 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22472 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k2}
22473 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, %zmm25 {%k2}
22474 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22475 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22476 ; AVX512BW-FCP-NEXT:    movb $14, %cl
22477 ; AVX512BW-FCP-NEXT:    kmovd %ecx, %k2
22478 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
22479 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm20 {%k2}
22480 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm3 # 32-byte Reload
22481 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm3[0,1,2,3,4,5],mem[6,7]
22482 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
22483 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm14 {%k2}
22484 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22485 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22486 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
22487 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm13 {%k2}
22488 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22489 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22490 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
22491 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm6 {%k2}
22492 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22493 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22494 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm28 {%k2}
22495 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22496 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22497 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm19 {%k2}
22498 ; AVX512BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
22499 ; AVX512BW-FCP-NEXT:    vpblendd {{.*#+}} ymm3 = ymm0[0,1,2,3,4,5],mem[6,7]
22500 ; AVX512BW-FCP-NEXT:    vinserti64x4 $0, %ymm3, %zmm0, %zmm7 {%k2}
22501 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22502 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22503 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
22504 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22505 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22506 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
22507 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22508 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22509 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
22510 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22511 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22512 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm8 {%k1}
22513 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22514 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22515 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
22516 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22517 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22518 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k1}
22519 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22520 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
22521 ; AVX512BW-FCP-NEXT:    movb $120, %al
22522 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
22523 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
22524 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm16 {%k1}
22525 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22526 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
22527 ; AVX512BW-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
22528 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22529 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm30 {%k1}
22530 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22531 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
22532 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
22533 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2 {%k1}
22534 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
22535 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1 {%k1}
22536 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22537 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0 {%k1}
22538 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm26 {%k1}
22539 ; AVX512BW-FCP-NEXT:    movb $-61, %al
22540 ; AVX512BW-FCP-NEXT:    kmovd %eax, %k1
22541 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22542 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
22543 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22544 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
22545 ; AVX512BW-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
22546 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22547 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
22548 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22549 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
22550 ; AVX512BW-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
22551 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22552 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm5 {%k1}
22553 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
22554 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm8, %zmm8 # 64-byte Folded Reload
22555 ; AVX512BW-FCP-NEXT:    # zmm8 = zmm8[0,1,2,3],mem[4,5,6,7]
22556 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22557 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8 {%k1}
22558 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
22559 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
22560 ; AVX512BW-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
22561 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22562 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm10 {%k1}
22563 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
22564 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm11, %zmm11 # 64-byte Folded Reload
22565 ; AVX512BW-FCP-NEXT:    # zmm11 = zmm11[0,1,2,3],mem[4,5,6,7]
22566 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
22567 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11 {%k1}
22568 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
22569 ; AVX512BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
22570 ; AVX512BW-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
22571 ; AVX512BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
22572 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm12 {%k1}
22573 ; AVX512BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22574 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm12, 3008(%rax)
22575 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm26, 2944(%rax)
22576 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm7, 2880(%rax)
22577 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22578 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2816(%rax)
22579 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm25, 2752(%rax)
22580 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
22581 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22582 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2624(%rax)
22583 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm11, 2560(%rax)
22584 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
22585 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm19, 2432(%rax)
22586 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22587 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 2368(%rax)
22588 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm17, 2304(%rax)
22589 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm27, 2240(%rax)
22590 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22591 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
22592 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm10, 2112(%rax)
22593 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
22594 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
22595 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22596 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 1920(%rax)
22597 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm21, 1856(%rax)
22598 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
22599 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22600 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
22601 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm8, 1664(%rax)
22602 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
22603 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm6, 1536(%rax)
22604 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
22605 ; AVX512BW-FCP-NEXT:    vmovaps %zmm7, 1472(%rax)
22606 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm22, 1408(%rax)
22607 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22608 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
22609 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22610 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
22611 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
22612 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
22613 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm13, 1088(%rax)
22614 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
22615 ; AVX512BW-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
22616 ; AVX512BW-FCP-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
22617 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
22618 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22619 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
22620 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22621 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
22622 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
22623 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm30, 704(%rax)
22624 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm14, 640(%rax)
22625 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
22626 ; AVX512BW-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
22627 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22628 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
22629 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22630 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
22631 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22632 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
22633 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
22634 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm16, 256(%rax)
22635 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm20, 192(%rax)
22636 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
22637 ; AVX512BW-FCP-NEXT:    vmovaps %zmm3, 128(%rax)
22638 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22639 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
22640 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22641 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
22642 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm15, 3520(%rax)
22643 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22644 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
22645 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22646 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
22647 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm31, 3328(%rax)
22648 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22649 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
22650 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22651 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
22652 ; AVX512BW-FCP-NEXT:    vmovdqa64 %zmm24, 3072(%rax)
22653 ; AVX512BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22654 ; AVX512BW-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
22655 ; AVX512BW-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
22656 ; AVX512BW-FCP-NEXT:    vzeroupper
22657 ; AVX512BW-FCP-NEXT:    retq
22659 ; AVX512DQ-BW-LABEL: store_i64_stride7_vf64:
22660 ; AVX512DQ-BW:       # %bb.0:
22661 ; AVX512DQ-BW-NEXT:    subq $6280, %rsp # imm = 0x1888
22662 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
22663 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdi), %zmm7
22664 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22665 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdi), %zmm16
22666 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22667 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rsi), %zmm9
22668 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22669 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rsi), %zmm13
22670 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22671 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rdx), %zmm18
22672 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, (%rsp) # 64-byte Spill
22673 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rdx), %zmm5
22674 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22675 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rcx), %zmm6
22676 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22677 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rcx), %zmm15
22678 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22679 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm10 = [11,3,11,3,11,3,11,3]
22680 ; AVX512DQ-BW-NEXT:    # zmm10 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22681 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm31 = [2,10,0,3,2,10,0,3]
22682 ; AVX512DQ-BW-NEXT:    # zmm31 = mem[0,1,2,3,0,1,2,3]
22683 ; AVX512DQ-BW-NEXT:    movb $96, %r10b
22684 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k1
22685 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r8), %zmm1
22686 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%r9), %zmm14
22687 ; AVX512DQ-BW-NEXT:    vmovdqa64 (%rax), %zmm3
22688 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%rax), %zmm4
22689 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm25 = [15,7,15,7,15,7,15,7]
22690 ; AVX512DQ-BW-NEXT:    # zmm25 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22691 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22692 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
22693 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22694 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
22695 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm0, %zmm2
22696 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8
22697 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
22698 ; AVX512DQ-BW-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
22699 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm0, %zmm2
22700 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm11
22701 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22702 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm0
22703 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm9, %zmm10, %zmm0
22704 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm2
22705 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm6, %zmm31, %zmm2
22706 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
22707 ; AVX512DQ-BW-NEXT:    vmovdqa (%r9), %ymm7
22708 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22709 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r9), %ymm5
22710 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm5, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22711 ; AVX512DQ-BW-NEXT:    vmovdqa (%r8), %ymm0
22712 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22713 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%r8), %ymm6
22714 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22715 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
22716 ; AVX512DQ-BW-NEXT:    movb $28, %r10b
22717 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k2
22718 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
22719 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22720 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm28 = [4,12,0,5,4,12,0,5]
22721 ; AVX512DQ-BW-NEXT:    # zmm28 = mem[0,1,2,3,0,1,2,3]
22722 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm0
22723 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm28, %zmm0
22724 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [0,1,12,7,0,1,12,7]
22725 ; AVX512DQ-BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
22726 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm2, %zmm0
22727 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm12
22728 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22729 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm17 = [5,0,14,6,5,0,14,6]
22730 ; AVX512DQ-BW-NEXT:    # zmm17 = mem[0,1,2,3,0,1,2,3]
22731 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
22732 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22733 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm0
22734 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm24 = [0,13,6,7,0,13,6,7]
22735 ; AVX512DQ-BW-NEXT:    # zmm24 = mem[0,1,2,3,0,1,2,3]
22736 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm24, %zmm0
22737 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22738 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm25, %zmm1
22739 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm27 = [6,13,14,7,6,13,14,7]
22740 ; AVX512DQ-BW-NEXT:    # zmm27 = mem[0,1,2,3,0,1,2,3]
22741 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm3
22742 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22743 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
22744 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm10, %zmm1
22745 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm2
22746 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm31, %zmm2
22747 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
22748 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm5[0],ymm6[2],ymm5[2]
22749 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm4[2,3,2,3]
22750 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22751 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r8), %zmm1
22752 ; AVX512DQ-BW-NEXT:    vmovdqa64 64(%r9), %zmm20
22753 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
22754 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm6
22755 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm8, %zmm3
22756 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm11, %zmm3
22757 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22758 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3
22759 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm28, %zmm3
22760 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm12, %zmm3
22761 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22762 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, %zmm3
22763 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm3
22764 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm24, %zmm3
22765 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22766 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm30
22767 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
22768 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm4
22769 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22770 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdi), %zmm1
22771 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22772 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rsi), %zmm0
22773 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22774 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
22775 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rdx), %zmm23
22776 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rcx), %zmm0
22777 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22778 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm3
22779 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm3
22780 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm3 {%k1}
22781 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%rax), %zmm5
22782 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r9), %ymm4
22783 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22784 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%r8), %ymm1
22785 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22786 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
22787 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm3 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
22788 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22789 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r8), %zmm1
22790 ; AVX512DQ-BW-NEXT:    vmovdqa64 128(%r9), %zmm13
22791 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
22792 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm8, %zmm4
22793 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm11, %zmm4
22794 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22795 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm4
22796 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm28, %zmm4
22797 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm18
22798 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm12, %zmm4
22799 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm8
22800 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22801 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, %zmm5
22802 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm5
22803 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm24, %zmm5
22804 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22805 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm22
22806 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm25, %zmm1
22807 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm8
22808 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22809 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdi), %zmm26
22810 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rsi), %zmm0
22811 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22812 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm1
22813 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm10, %zmm1
22814 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm9
22815 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rdx), %zmm21
22816 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rcx), %zmm0
22817 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22818 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm5
22819 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm5
22820 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm5 {%k1}
22821 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%rax), %zmm2
22822 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r9), %ymm8
22823 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22824 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%r8), %ymm1
22825 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22826 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm1[0],ymm8[0],ymm1[2],ymm8[2]
22827 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm1[2,3,2,3],zmm2[2,3,2,3]
22828 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22829 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r8), %zmm1
22830 ; AVX512DQ-BW-NEXT:    vmovdqa64 192(%r9), %zmm8
22831 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm16
22832 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm6, %zmm16
22833 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm11, %zmm16
22834 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22835 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm15
22836 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm28, %zmm15
22837 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm12, %zmm15
22838 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22839 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm12
22840 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm17, %zmm12
22841 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm0
22842 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm24, %zmm12
22843 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22844 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm10
22845 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm25, %zmm1
22846 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm27, %zmm0
22847 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22848 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdi), %zmm15
22849 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rsi), %zmm19
22850 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm4
22851 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm9, %zmm4
22852 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, %zmm29
22853 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22854 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rdx), %zmm14
22855 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rcx), %zmm0
22856 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22857 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm1
22858 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm1
22859 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1 {%k1}
22860 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%rax), %zmm0
22861 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%r9), %ymm12
22862 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22863 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%r8), %ymm4
22864 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm4, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22865 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm4 = ymm4[0],ymm12[0],ymm4[2],ymm12[2]
22866 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm4[2,3,2,3],zmm0[2,3,2,3]
22867 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22868 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%r8), %zmm4
22869 ; AVX512DQ-BW-NEXT:    vmovdqa64 256(%r9), %zmm12
22870 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
22871 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm6, %zmm1
22872 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm11, %zmm1
22873 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22874 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm2
22875 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22876 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm1
22877 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm28, %zmm1
22878 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm18, %zmm1
22879 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22880 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22881 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, %zmm1
22882 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm17, %zmm1
22883 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm24, %zmm1
22884 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm24, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22885 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22886 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm9
22887 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm25, %zmm4
22888 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm27, %zmm0
22889 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22890 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdi), %zmm16
22891 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rsi), %zmm3
22892 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm7
22893 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm29, %zmm7
22894 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rdx), %zmm4
22895 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rcx), %zmm29
22896 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm5
22897 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm31, %zmm5
22898 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm5 {%k1}
22899 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%rax), %zmm1
22900 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%r9), %ymm7
22901 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22902 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%r8), %ymm0
22903 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
22904 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
22905 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm7[2,3,2,3],zmm1[2,3,2,3]
22906 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22907 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%r8), %zmm7
22908 ; AVX512DQ-BW-NEXT:    vmovdqa64 320(%r9), %zmm11
22909 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm0
22910 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm6, %zmm0
22911 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm2, %zmm0
22912 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22913 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm0
22914 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm28, %zmm0
22915 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm18, %zmm0
22916 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22917 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm0
22918 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm17, %zmm0
22919 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm24, %zmm0
22920 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22921 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm2
22922 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm25, %zmm7
22923 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm7, %zmm27, %zmm1
22924 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22925 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdx), %zmm5
22926 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rcx), %zmm27
22927 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm0
22928 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm25, %zmm0
22929 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rdi), %zmm7
22930 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22931 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rsi), %zmm1
22932 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22933 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm25, %zmm7
22934 ; AVX512DQ-BW-NEXT:    movb $24, %r10b
22935 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k3
22936 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
22937 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [0,8,0,8,0,8,0,8]
22938 ; AVX512DQ-BW-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22939 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22940 ; AVX512DQ-BW-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm1, %zmm0 # 64-byte Folded Reload
22941 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22942 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm1, %zmm30
22943 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22944 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm13, %zmm1, %zmm22
22945 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22946 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm8, %zmm1, %zmm10
22947 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22948 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm12, %zmm1, %zmm9
22949 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22950 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm11, %zmm1, %zmm2
22951 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22952 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%r8), %zmm0
22953 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
22954 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm7
22955 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%r9), %zmm2
22956 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [0,1,2,3,4,5,15,0]
22957 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm8, %zmm7
22958 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22959 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm1
22960 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22961 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm6
22962 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22963 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm2, %zmm0, %zmm28
22964 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22965 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm17, %zmm2
22966 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22967 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm6 = [13,5,13,5,13,5,13,5]
22968 ; AVX512DQ-BW-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22969 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
22970 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22971 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
22972 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm6, %zmm1
22973 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22974 ; AVX512DQ-BW-NEXT:    vbroadcasti32x4 {{.*#+}} zmm9 = [6,14,6,14,6,14,6,14]
22975 ; AVX512DQ-BW-NEXT:    # zmm9 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
22976 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22977 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm9, %zmm1
22978 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22979 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22980 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm17, %zmm25, %zmm1
22981 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22982 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm2 = [3,0,12,4,3,0,12,4]
22983 ; AVX512DQ-BW-NEXT:    # zmm2 = mem[0,1,2,3,0,1,2,3]
22984 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm17
22985 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm0 # 64-byte Reload
22986 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22987 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm20 # 64-byte Reload
22988 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm6, %zmm1
22989 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22990 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22991 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm9, %zmm1
22992 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22993 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
22994 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm20, %zmm25, %zmm1
22995 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
22996 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm2, %zmm20
22997 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
22998 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm30 # 64-byte Reload
22999 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm6, %zmm0
23000 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23001 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
23002 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm9, %zmm0
23003 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23004 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, %zmm0
23005 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm30, %zmm25, %zmm0
23006 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23007 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm2, %zmm30
23008 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
23009 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
23010 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm6, %zmm0
23011 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23012 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
23013 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm9, %zmm0
23014 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23015 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, %zmm0
23016 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm22, %zmm25, %zmm0
23017 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23018 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm21, %zmm2, %zmm22
23019 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
23020 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm23 # 64-byte Reload
23021 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm6, %zmm0
23022 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23023 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
23024 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm9, %zmm0
23025 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23026 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, %zmm0
23027 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm23, %zmm25, %zmm0
23028 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23029 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm14, %zmm2, %zmm23
23030 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
23031 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm6, %zmm0
23032 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23033 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
23034 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm9, %zmm0
23035 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23036 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm0
23037 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm29, %zmm25, %zmm0
23038 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23039 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm4, %zmm2, %zmm29
23040 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, %zmm18
23041 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdx), %zmm10
23042 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rcx), %zmm0
23043 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm7
23044 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm31, %zmm7
23045 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm27, %zmm5, %zmm31
23046 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm31, (%rsp) # 64-byte Spill
23047 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
23048 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm6, %zmm1
23049 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23050 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm1
23051 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm27, %zmm9, %zmm1
23052 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23053 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm5, %zmm2, %zmm27
23054 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, %zmm28
23055 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm8
23056 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm10, %zmm2, %zmm8
23057 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm12
23058 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm12
23059 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm11
23060 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm11
23061 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm10
23062 ; AVX512DQ-BW-NEXT:    movb $48, %r10b
23063 ; AVX512DQ-BW-NEXT:    kmovd %r10d, %k4
23064 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm5 = [1,0,10,2,1,0,10,2]
23065 ; AVX512DQ-BW-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3]
23066 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23067 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm1
23068 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23069 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
23070 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23071 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm17 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
23072 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23073 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23074 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm13
23075 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14
23076 ; AVX512DQ-BW-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
23077 ; AVX512DQ-BW-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23078 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
23079 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23080 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm1
23081 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23082 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm9, %zmm13
23083 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23084 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm14
23085 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23086 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm1
23087 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23088 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm5, %zmm1
23089 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23090 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm20 {%k4} = zmm0[0],zmm2[0],zmm0[2],zmm2[2],zmm0[4],zmm2[4],zmm0[6],zmm2[6]
23091 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm20, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23092 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm13
23093 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23094 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm17
23095 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm4, %zmm0
23096 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23097 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm6, %zmm13
23098 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23099 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm9, %zmm1
23100 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23101 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm2, %zmm25, %zmm17
23102 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23103 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23104 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2
23105 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23106 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm1, %zmm5, %zmm2
23107 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23108 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm30 {%k4} = zmm1[0],zmm0[0],zmm1[2],zmm0[2],zmm1[4],zmm0[4],zmm1[6],zmm0[6]
23109 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23110 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm13
23111 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm2
23112 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm29
23113 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm1
23114 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23115 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm13
23116 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23117 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
23118 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23119 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm29
23120 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23121 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1
23122 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm26, %zmm5, %zmm1
23123 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23124 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm22 {%k4} = zmm26[0],zmm0[0],zmm26[2],zmm0[2],zmm26[4],zmm0[4],zmm26[6],zmm0[6]
23125 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23126 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm2
23127 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm1
23128 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, %zmm31
23129 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm4, %zmm26
23130 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm26, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23131 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm2
23132 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23133 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm1
23134 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23135 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm31
23136 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, %zmm30
23137 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm30
23138 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm23 {%k4} = zmm15[0],zmm19[0],zmm15[2],zmm19[2],zmm15[4],zmm19[4],zmm15[6],zmm19[6]
23139 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm23, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23140 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm22
23141 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm0
23142 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm26
23143 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm27
23144 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm4, %zmm27
23145 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm6, %zmm22
23146 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm9, %zmm0
23147 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23148 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm19, %zmm25, %zmm26
23149 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rdi), %zmm15
23150 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rsi), %zmm0
23151 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm13
23152 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm13
23153 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm23
23154 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm25, %zmm23
23155 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm24
23156 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm5, %zmm24
23157 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm18 {%k4} = zmm16[0],zmm3[0],zmm16[2],zmm3[2],zmm16[4],zmm3[4],zmm16[6],zmm3[6]
23158 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm18, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23159 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm17
23160 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm1
23161 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm21
23162 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm4, %zmm21
23163 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm6, %zmm17
23164 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm9, %zmm1
23165 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23166 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
23167 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, %zmm20
23168 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
23169 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm16, %zmm5, %zmm20
23170 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm3
23171 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
23172 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm25, %zmm3
23173 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm25
23174 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm1
23175 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm6, %zmm1
23176 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm6
23177 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, %zmm2
23178 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm9, %zmm2
23179 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm18, %zmm16, %zmm9
23180 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm16[0],zmm18[0],zmm16[2],zmm18[2],zmm16[4],zmm18[4],zmm16[6],zmm18[6]
23181 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm28, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23182 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, %zmm28
23183 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm18, %zmm4, %zmm28
23184 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm15[0],zmm0[0],zmm15[2],zmm0[2],zmm15[4],zmm0[4],zmm15[6],zmm0[6]
23185 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm15, %zmm4
23186 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm15, %zmm5, %zmm0
23187 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm2 = zmm2[0,1,2,3],zmm12[4,5,6,7]
23188 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k1}
23189 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%r8), %zmm3
23190 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,11,0,0,4,5,6,7]
23191 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm8, %zmm5
23192 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, %zmm1 {%k1}
23193 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [12,0,0,3,4,5,6,13]
23194 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm1, %zmm8
23195 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm13 {%k3}
23196 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
23197 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm3, %zmm1, %zmm13
23198 ; AVX512DQ-BW-NEXT:    movb $6, %sil
23199 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k4
23200 ; AVX512DQ-BW-NEXT:    vpbroadcastq 456(%rcx), %ymm1
23201 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm1 = mem[0,1,2,3],ymm1[4,5,6,7]
23202 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm0 {%k4}
23203 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,9,0,0,6,7]
23204 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm3, %zmm0, %zmm10
23205 ; AVX512DQ-BW-NEXT:    movb $64, %sil
23206 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23207 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm2 {%k5}
23208 ; AVX512DQ-BW-NEXT:    movb $4, %sil
23209 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23210 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm7 {%k5}
23211 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%r9), %zmm0
23212 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,11,0,4,5,6,7]
23213 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
23214 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm11
23215 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
23216 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm3
23217 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm5 = [0,12,0,3,4,5,6,7]
23218 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm8, %zmm5
23219 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [13,0,2,3,4,5,6,14]
23220 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm7
23221 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
23222 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
23223 ; AVX512DQ-BW-NEXT:    movb $12, %sil
23224 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k5
23225 ; AVX512DQ-BW-NEXT:    vmovdqa 448(%rdx), %xmm2
23226 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm2 = xmm2[0],mem[0]
23227 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm2, %ymm0, %ymm2
23228 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm4 {%k5}
23229 ; AVX512DQ-BW-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm2
23230 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
23231 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm4
23232 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,9,0,6,7]
23233 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm10, %zmm2
23234 ; AVX512DQ-BW-NEXT:    vmovdqa64 384(%rax), %zmm0
23235 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
23236 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23237 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm10
23238 ; AVX512DQ-BW-NEXT:    vmovdqu64 (%rsp), %zmm1 # 64-byte Reload
23239 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, %zmm1 {%k1}
23240 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%r9), %ymm12
23241 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm12, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23242 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%r8), %ymm8
23243 ; AVX512DQ-BW-NEXT:    vmovdqu %ymm8, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23244 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} ymm8 = ymm8[0],ymm12[0],ymm8[2],ymm12[2]
23245 ; AVX512DQ-BW-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm8[2,3,2,3],zmm0[2,3,2,3]
23246 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, (%rsp) # 64-byte Spill
23247 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23248 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23249 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
23250 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23251 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23252 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23253 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm12, %zmm8
23254 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23255 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm8 = [14,1,2,3,4,5,6,15]
23256 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23257 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
23258 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23259 ; AVX512DQ-BW-NEXT:    vmovdqa64 448(%rax), %zmm0
23260 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,10,5,6,7]
23261 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm3, %zmm1
23262 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23263 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,12,3,4,5,6,7]
23264 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm5, %zmm1
23265 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23266 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,13,2,3,4,5,6,7]
23267 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm7, %zmm1
23268 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23269 ; AVX512DQ-BW-NEXT:    vpermt2q %zmm0, %zmm8, %zmm13
23270 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,8,7]
23271 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm4, %zmm1
23272 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23273 ; AVX512DQ-BW-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,9,6,7]
23274 ; AVX512DQ-BW-NEXT:    vpermi2q %zmm0, %zmm2, %zmm1
23275 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23276 ; AVX512DQ-BW-NEXT:    movb $8, %sil
23277 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23278 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm11 {%k2}
23279 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23280 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23281 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k3}
23282 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23283 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23284 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
23285 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23286 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k3}
23287 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23288 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
23289 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23290 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k3}
23291 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23292 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k3}
23293 ; AVX512DQ-BW-NEXT:    movb $-31, %sil
23294 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23295 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23296 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
23297 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23298 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23299 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
23300 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23301 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23302 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm29 {%k2}
23303 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm29, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23304 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23305 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
23306 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23307 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm26 {%k2}
23308 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23309 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm23 {%k2}
23310 ; AVX512DQ-BW-NEXT:    vmovdqa (%rdx), %xmm0
23311 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23312 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23313 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23314 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k5}
23315 ; AVX512DQ-BW-NEXT:    vmovdqa 64(%rdx), %xmm0
23316 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23317 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23318 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23319 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
23320 ; AVX512DQ-BW-NEXT:    vmovdqa 128(%rdx), %xmm0
23321 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23322 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23323 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23324 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k5}
23325 ; AVX512DQ-BW-NEXT:    vmovdqa 192(%rdx), %xmm0
23326 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23327 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23328 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23329 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k5}
23330 ; AVX512DQ-BW-NEXT:    vmovdqa 256(%rdx), %xmm0
23331 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23332 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23333 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
23334 ; AVX512DQ-BW-NEXT:    vmovdqa 320(%rdx), %xmm0
23335 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23336 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23337 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm21 {%k5}
23338 ; AVX512DQ-BW-NEXT:    vmovdqa 384(%rdx), %xmm0
23339 ; AVX512DQ-BW-NEXT:    vpunpcklqdq {{.*#+}} xmm0 = xmm0[0],mem[0]
23340 ; AVX512DQ-BW-NEXT:    vinserti128 $1, %xmm0, %ymm0, %ymm0
23341 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm28 {%k5}
23342 ; AVX512DQ-BW-NEXT:    movb $112, %sil
23343 ; AVX512DQ-BW-NEXT:    kmovd %esi, %k2
23344 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23345 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
23346 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23347 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23348 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm2 {%k2}
23349 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23350 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23351 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm3 {%k2}
23352 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23353 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23354 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm4 {%k2}
23355 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23356 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23357 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm27 {%k2}
23358 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23359 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm21 {%k2}
23360 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23361 ; AVX512DQ-BW-NEXT:    vinserti64x2 $3, 384(%rax), %zmm0, %zmm28 {%k2}
23362 ; AVX512DQ-BW-NEXT:    vpbroadcastq 8(%rcx), %ymm0
23363 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23364 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23365 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm1 {%k4}
23366 ; AVX512DQ-BW-NEXT:    vpbroadcastq 72(%rcx), %ymm0
23367 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23368 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23369 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k4}
23370 ; AVX512DQ-BW-NEXT:    vpbroadcastq 136(%rcx), %ymm0
23371 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23372 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23373 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm3 {%k4}
23374 ; AVX512DQ-BW-NEXT:    vpbroadcastq 200(%rcx), %ymm0
23375 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23376 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23377 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm4 {%k4}
23378 ; AVX512DQ-BW-NEXT:    vpbroadcastq 264(%rcx), %ymm0
23379 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23380 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm30 {%k4}
23381 ; AVX512DQ-BW-NEXT:    vpbroadcastq 328(%rcx), %ymm0
23382 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23383 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm24 {%k4}
23384 ; AVX512DQ-BW-NEXT:    vpbroadcastq 392(%rcx), %ymm0
23385 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
23386 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k4}
23387 ; AVX512DQ-BW-NEXT:    movb $56, %cl
23388 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k2
23389 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23390 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
23391 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23392 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23393 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
23394 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23395 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23396 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
23397 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23398 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23399 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
23400 ; AVX512DQ-BW-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23401 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23402 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k2}
23403 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23404 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm24 {%k2}
23405 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, %zmm20 {%k2}
23406 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23407 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23408 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
23409 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23410 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23411 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
23412 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23413 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23414 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k1}
23415 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23416 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23417 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
23418 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23419 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm22 {%k1}
23420 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23421 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm17 {%k1}
23422 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23423 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k1}
23424 ; AVX512DQ-BW-NEXT:    movb $120, %cl
23425 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23426 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
23427 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, %zmm19 {%k1}
23428 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23429 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm16 # 64-byte Folded Reload
23430 ; AVX512DQ-BW-NEXT:    # zmm16 = zmm0[0,1,2,3],mem[4,5,6,7]
23431 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
23432 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm14 {%k1}
23433 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
23434 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm15 {%k1}
23435 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm25 # 64-byte Reload
23436 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm25 {%k1}
23437 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm29 # 64-byte Reload
23438 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, %zmm29 {%k1}
23439 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm22 # 64-byte Reload
23440 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, %zmm22 {%k1}
23441 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
23442 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm12 {%k1}
23443 ; AVX512DQ-BW-NEXT:    movb $-61, %cl
23444 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23445 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23446 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, %zmm16 {%k1}
23447 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23448 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm11 # 64-byte Folded Reload
23449 ; AVX512DQ-BW-NEXT:    # zmm11 = zmm0[0,1,2,3],mem[4,5,6,7]
23450 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23451 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, %zmm11 {%k1}
23452 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23453 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm10 # 64-byte Folded Reload
23454 ; AVX512DQ-BW-NEXT:    # zmm10 = zmm0[0,1,2,3],mem[4,5,6,7]
23455 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23456 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, %zmm10 {%k1}
23457 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23458 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm4 # 64-byte Folded Reload
23459 ; AVX512DQ-BW-NEXT:    # zmm4 = zmm0[0,1,2,3],mem[4,5,6,7]
23460 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
23461 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
23462 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23463 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm5 # 64-byte Folded Reload
23464 ; AVX512DQ-BW-NEXT:    # zmm5 = zmm0[0,1,2,3],mem[4,5,6,7]
23465 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
23466 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, %zmm5 {%k1}
23467 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23468 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm6 # 64-byte Folded Reload
23469 ; AVX512DQ-BW-NEXT:    # zmm6 = zmm0[0,1,2,3],mem[4,5,6,7]
23470 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
23471 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, %zmm6 {%k1}
23472 ; AVX512DQ-BW-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm9, %zmm7 # 64-byte Folded Reload
23473 ; AVX512DQ-BW-NEXT:    # zmm7 = zmm9[0,1,2,3],mem[4,5,6,7]
23474 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
23475 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm8, %zmm7 {%k1}
23476 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23477 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23478 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23479 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23480 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23481 ; AVX512DQ-BW-NEXT:    movb $14, %cl
23482 ; AVX512DQ-BW-NEXT:    kmovd %ecx, %k1
23483 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
23484 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm9 {%k1}
23485 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23486 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23487 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23488 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23489 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23490 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
23491 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm17 {%k1}
23492 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23493 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23494 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23495 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23496 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23497 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
23498 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm18 {%k1}
23499 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23500 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23501 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23502 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23503 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23504 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23505 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm3 {%k1}
23506 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23507 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23508 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23509 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23510 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23511 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23512 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm2 {%k1}
23513 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm8 # 32-byte Reload
23514 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm8, %ymm8 # 32-byte Folded Reload
23515 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm8[1],mem[1],ymm8[3],mem[3]
23516 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23517 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23518 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
23519 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm1 {%k1}
23520 ; AVX512DQ-BW-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
23521 ; AVX512DQ-BW-NEXT:    vpunpckhqdq {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm8 # 32-byte Folded Reload
23522 ; AVX512DQ-BW-NEXT:    # ymm8 = ymm0[1],mem[1],ymm0[3],mem[3]
23523 ; AVX512DQ-BW-NEXT:    vpermq {{.*#+}} ymm8 = ymm8[0,2,3,3]
23524 ; AVX512DQ-BW-NEXT:    vpblendd {{.*#+}} ymm8 = ymm8[0,1,2,3,4,5],mem[6,7]
23525 ; AVX512DQ-BW-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23526 ; AVX512DQ-BW-NEXT:    vinserti64x4 $0, %ymm8, %zmm0, %zmm0 {%k1}
23527 ; AVX512DQ-BW-NEXT:    movq {{[0-9]+}}(%rsp), %rax
23528 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm7, 3008(%rax)
23529 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm12, 2944(%rax)
23530 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm0, 2880(%rax)
23531 ; AVX512DQ-BW-NEXT:    vmovups (%rsp), %zmm0 # 64-byte Reload
23532 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 2816(%rax)
23533 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
23534 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm28, 2688(%rax)
23535 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm23, 2624(%rax)
23536 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm6, 2560(%rax)
23537 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm22, 2496(%rax)
23538 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm1, 2432(%rax)
23539 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
23540 ; AVX512DQ-BW-NEXT:    vmovaps %zmm6, 2368(%rax)
23541 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm24, 2304(%rax)
23542 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm21, 2240(%rax)
23543 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm26, 2176(%rax)
23544 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm5, 2112(%rax)
23545 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm29, 2048(%rax)
23546 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm2, 1984(%rax)
23547 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
23548 ; AVX512DQ-BW-NEXT:    vmovaps %zmm5, 1920(%rax)
23549 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm30, 1856(%rax)
23550 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm27, 1792(%rax)
23551 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm31, 1728(%rax)
23552 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm4, 1664(%rax)
23553 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm25, 1600(%rax)
23554 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm3, 1536(%rax)
23555 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23556 ; AVX512DQ-BW-NEXT:    vmovaps %zmm4, 1472(%rax)
23557 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23558 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1408(%rax)
23559 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23560 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1344(%rax)
23561 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23562 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 1280(%rax)
23563 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm10, 1216(%rax)
23564 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm15, 1152(%rax)
23565 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm18, 1088(%rax)
23566 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
23567 ; AVX512DQ-BW-NEXT:    vmovaps %zmm3, 1024(%rax)
23568 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23569 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 960(%rax)
23570 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23571 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 896(%rax)
23572 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23573 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 832(%rax)
23574 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm11, 768(%rax)
23575 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm14, 704(%rax)
23576 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm17, 640(%rax)
23577 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23578 ; AVX512DQ-BW-NEXT:    vmovaps %zmm2, 576(%rax)
23579 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23580 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 512(%rax)
23581 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23582 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 448(%rax)
23583 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23584 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 384(%rax)
23585 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm16, 320(%rax)
23586 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm19, 256(%rax)
23587 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm9, 192(%rax)
23588 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23589 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 128(%rax)
23590 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23591 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 64(%rax)
23592 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23593 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, (%rax)
23594 ; AVX512DQ-BW-NEXT:    vmovdqa64 %zmm13, 3520(%rax)
23595 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23596 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3456(%rax)
23597 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23598 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3392(%rax)
23599 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23600 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3328(%rax)
23601 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23602 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3264(%rax)
23603 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23604 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3200(%rax)
23605 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23606 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3072(%rax)
23607 ; AVX512DQ-BW-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23608 ; AVX512DQ-BW-NEXT:    vmovaps %zmm0, 3136(%rax)
23609 ; AVX512DQ-BW-NEXT:    addq $6280, %rsp # imm = 0x1888
23610 ; AVX512DQ-BW-NEXT:    vzeroupper
23611 ; AVX512DQ-BW-NEXT:    retq
23613 ; AVX512DQ-BW-FCP-LABEL: store_i64_stride7_vf64:
23614 ; AVX512DQ-BW-FCP:       # %bb.0:
23615 ; AVX512DQ-BW-FCP-NEXT:    subq $6120, %rsp # imm = 0x17E8
23616 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
23617 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdi), %zmm6
23618 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23619 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdi), %zmm12
23620 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23621 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rsi), %zmm14
23622 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23623 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rsi), %zmm16
23624 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23625 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rdx), %zmm11
23626 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23627 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rdx), %zmm7
23628 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23629 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rcx), %zmm13
23630 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm13, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23631 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rcx), %zmm21
23632 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm21, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23633 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm8 = [11,3,11,3,11,3,11,3]
23634 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23635 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [2,10,0,3,2,10,0,3]
23636 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23637 ; AVX512DQ-BW-FCP-NEXT:    movb $96, %r10b
23638 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k1
23639 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r8), %zmm1
23640 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%r9), %zmm22
23641 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 (%rax), %zmm3
23642 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%rax), %zmm5
23643 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm23 = [15,7,15,7,15,7,15,7]
23644 ; AVX512DQ-BW-FCP-NEXT:    # zmm23 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23645 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23646 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm0 = [9,1,9,1,9,1,9,1]
23647 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23648 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23649 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm0, %zmm2
23650 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9
23651 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,9,0,3,4,9,0,3]
23652 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
23653 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm0, %zmm2
23654 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10
23655 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23656 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, %zmm0
23657 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm8, %zmm0
23658 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
23659 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm4, %zmm2
23660 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
23661 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r9), %ymm7
23662 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm7, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23663 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r9), %ymm13
23664 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm13, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23665 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%r8), %ymm0
23666 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23667 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%r8), %ymm6
23668 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm6, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23669 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm7[0],ymm0[2],ymm7[2]
23670 ; AVX512DQ-BW-FCP-NEXT:    movb $28, %r10b
23671 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k2
23672 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm0[2,3,2,3],zmm3[2,3,2,3]
23673 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23674 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm0 = [4,12,0,5,4,12,0,5]
23675 ; AVX512DQ-BW-FCP-NEXT:    # zmm0 = mem[0,1,2,3,0,1,2,3]
23676 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23677 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm0, %zmm2
23678 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7
23679 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm15 = [0,1,12,7,0,1,12,7]
23680 ; AVX512DQ-BW-FCP-NEXT:    # zmm15 = mem[0,1,2,3,0,1,2,3]
23681 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm15, %zmm2
23682 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23683 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm20 = [5,0,14,6,5,0,14,6]
23684 ; AVX512DQ-BW-FCP-NEXT:    # zmm20 = mem[0,1,2,3,0,1,2,3]
23685 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23686 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, %zmm2
23687 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
23688 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm19 = [0,13,6,7,0,13,6,7]
23689 ; AVX512DQ-BW-FCP-NEXT:    # zmm19 = mem[0,1,2,3,0,1,2,3]
23690 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm19, %zmm2
23691 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23692 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm2
23693 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm23, %zmm1
23694 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm18 = [6,13,14,7,6,13,14,7]
23695 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3]
23696 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm2
23697 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23698 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1
23699 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm8, %zmm1
23700 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm2
23701 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm2
23702 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
23703 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm6[0],ymm13[0],ymm6[2],ymm13[2]
23704 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm5[2,3,2,3]
23705 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23706 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r8), %zmm1
23707 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 64(%r9), %zmm27
23708 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23709 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm9, %zmm2
23710 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm10, %zmm2
23711 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23712 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2
23713 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm0, %zmm2
23714 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm15, %zmm2
23715 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23716 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, %zmm2
23717 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm20, %zmm2
23718 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm19, %zmm2
23719 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23720 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23721 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm23, %zmm1
23722 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm18, %zmm5
23723 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23724 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdi), %zmm1
23725 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23726 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rsi), %zmm26
23727 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm8, %zmm1
23728 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rdx), %zmm2
23729 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23730 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rcx), %zmm0
23731 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23732 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm2
23733 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm2 {%k1}
23734 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%rax), %zmm6
23735 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r9), %ymm0
23736 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23737 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%r8), %ymm5
23738 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm1 = ymm5[0],ymm0[0],ymm5[2],ymm0[2]
23739 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %ymm5, %ymm30
23740 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm2 {%k2} = zmm1[2,3,2,3],zmm6[2,3,2,3]
23741 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23742 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r8), %zmm2
23743 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 128(%r9), %zmm16
23744 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
23745 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm9, %zmm5
23746 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm1
23747 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm10, %zmm5
23748 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23749 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5
23750 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm7, %zmm5
23751 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm15, %zmm5
23752 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23753 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm5
23754 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm20, %zmm5
23755 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm6, %zmm19, %zmm5
23756 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23757 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23758 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm2
23759 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm18, %zmm6
23760 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23761 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdi), %zmm2
23762 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23763 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rsi), %zmm28
23764 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm8, %zmm2
23765 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rdx), %zmm5
23766 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23767 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rcx), %zmm0
23768 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23769 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm5
23770 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm5 {%k1}
23771 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%rax), %zmm22
23772 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %ymm24
23773 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%r8), %ymm9
23774 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm9[0],ymm24[0],ymm9[2],ymm24[2]
23775 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %ymm9, %ymm25
23776 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm5 {%k2} = zmm2[2,3,2,3],zmm22[2,3,2,3]
23777 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23778 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r8), %zmm5
23779 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 192(%r9), %zmm13
23780 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
23781 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm1, %zmm9
23782 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm9
23783 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23784 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm0
23785 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm12
23786 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm6
23787 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm7, %zmm12
23788 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, %zmm9
23789 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm15, %zmm12
23790 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23791 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm7
23792 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm20, %zmm7
23793 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm7
23794 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23795 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm17
23796 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm23, %zmm5
23797 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm22
23798 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23799 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdi), %zmm5
23800 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm5, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23801 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rsi), %zmm3
23802 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23803 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm8, %zmm5
23804 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm2
23805 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23806 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rdx), %zmm7
23807 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23808 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rcx), %zmm29
23809 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm4, %zmm7
23810 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3
23811 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23812 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm7 {%k1}
23813 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%rax), %zmm22
23814 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%r9), %ymm15
23815 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%r8), %ymm11
23816 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm5 = ymm11[0],ymm15[0],ymm11[2],ymm15[2]
23817 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm7 {%k2} = zmm5[2,3,2,3],zmm22[2,3,2,3]
23818 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23819 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%r8), %zmm7
23820 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 256(%r9), %zmm5
23821 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23822 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm1, %zmm12
23823 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm8
23824 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm10, %zmm12
23825 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23826 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm10, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23827 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23828 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm6, %zmm12
23829 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm9, %zmm12
23830 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23831 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm4
23832 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23833 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm9
23834 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm20, %zmm9
23835 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm22, %zmm19, %zmm9
23836 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23837 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23838 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm12
23839 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm23, %zmm7
23840 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm22
23841 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23842 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdi), %zmm31
23843 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rsi), %zmm21
23844 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm7
23845 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm2, %zmm7
23846 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rdx), %zmm1
23847 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23848 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rcx), %zmm14
23849 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm3, %zmm1
23850 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm1 {%k1}
23851 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%rax), %zmm2
23852 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%r9), %ymm9
23853 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%r8), %ymm3
23854 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm7 = ymm3[0],ymm9[0],ymm3[2],ymm9[2]
23855 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm1 {%k2} = zmm7[2,3,2,3],zmm2[2,3,2,3]
23856 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23857 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%r8), %zmm10
23858 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 320(%r9), %zmm7
23859 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
23860 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm1
23861 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, %zmm22
23862 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm0, %zmm1
23863 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23864 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm1
23865 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm6, %zmm1
23866 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm4, %zmm1
23867 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23868 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm0
23869 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm20, %zmm0
23870 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm2, %zmm19, %zmm0
23871 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23872 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm8
23873 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm23, %zmm10
23874 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm10, %zmm18, %zmm2
23875 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23876 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} ymm0 = [1,3,7,7]
23877 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm10 # 32-byte Reload
23878 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm10 # 32-byte Folded Reload
23879 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm10, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23880 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm1 # 32-byte Reload
23881 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm1 # 32-byte Folded Reload
23882 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23883 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %ymm0, %ymm30 # 32-byte Folded Reload
23884 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm30, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23885 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm24, %ymm0, %ymm25
23886 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %ymm25, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23887 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm15, %ymm0, %ymm11
23888 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm11, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23889 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm9, %ymm0, %ymm3
23890 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm3, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23891 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%r9), %ymm4
23892 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%r8), %ymm1
23893 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} ymm2 = ymm1[0],ymm4[0],ymm1[2],ymm4[2]
23894 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23895 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %ymm4, %ymm0, %ymm1
23896 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
23897 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdx), %zmm19
23898 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rcx), %zmm15
23899 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm0
23900 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm23, %zmm0
23901 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rdi), %zmm30
23902 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm30, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23903 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rsi), %zmm9
23904 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm23, %zmm30
23905 ; AVX512DQ-BW-FCP-NEXT:    movb $24, %r10b
23906 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k3
23907 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm30 {%k3}
23908 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm18 = [0,8,0,8,0,8,0,8]
23909 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23910 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23911 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm0 # 64-byte Folded Reload
23912 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23913 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23914 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm27, %zmm18, %zmm0
23915 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23916 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23917 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm18, %zmm0
23918 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23919 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm13, %zmm18, %zmm17
23920 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm17, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23921 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm5, %zmm18, %zmm12
23922 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23923 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm18, %zmm8
23924 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm8, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23925 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%r8), %zmm0
23926 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,15,0,0]
23927 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
23928 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%r9), %zmm1
23929 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,5,15,0]
23930 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm1, %zmm2, %zmm30
23931 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm18
23932 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm22
23933 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm22, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23934 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm1, %zmm0, %zmm6
23935 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23936 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm20, %zmm1
23937 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23938 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdx), %zmm7
23939 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rcx), %zmm0
23940 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm1 = [6,14,6,14,6,14,6,14]
23941 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23942 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm2
23943 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm2
23944 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23945 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm10
23946 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
23947 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm2, %zmm10
23948 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm8 = [3,0,12,4,3,0,12,4]
23949 ; AVX512DQ-BW-FCP-NEXT:    # zmm8 = mem[0,1,2,3,0,1,2,3]
23950 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13
23951 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm7, %zmm8, %zmm13
23952 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti32x4 {{.*#+}} zmm5 = [13,5,13,5,13,5,13,5]
23953 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = mem[0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3]
23954 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm17
23955 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm17
23956 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm7
23957 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23958 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
23959 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
23960 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm4, %zmm8, %zmm0
23961 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
23962 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
23963 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm5, %zmm0
23964 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23965 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm0
23966 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm1, %zmm0
23967 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23968 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm23, %zmm4
23969 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23970 ; AVX512DQ-BW-FCP-NEXT:    movb $48, %r10b
23971 ; AVX512DQ-BW-FCP-NEXT:    kmovd %r10d, %k4
23972 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm4 = [0,8,0,1,0,8,0,1]
23973 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = mem[0,1,2,3,0,1,2,3]
23974 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23975 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm6
23976 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
23977 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm6
23978 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23979 ; AVX512DQ-BW-FCP-NEXT:    vbroadcasti64x4 {{.*#+}} zmm6 = [1,0,10,2,1,0,10,2]
23980 ; AVX512DQ-BW-FCP-NEXT:    # zmm6 = mem[0,1,2,3,0,1,2,3]
23981 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
23982 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm6, %zmm12
23983 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23984 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm11[0],zmm0[0],zmm11[2],zmm0[2],zmm11[4],zmm0[4],zmm11[6],zmm0[6]
23985 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23986 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
23987 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
23988 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23989 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm3
23990 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
23991 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23992 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm11
23993 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
23994 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm16 # 64-byte Reload
23995 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, %zmm0
23996 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
23997 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm11, %zmm8, %zmm0
23998 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
23999 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
24000 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm5, %zmm0
24001 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24002 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm0
24003 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm1, %zmm0
24004 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24005 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm16, %zmm23, %zmm11
24006 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24007 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24008 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
24009 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24010 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm4, %zmm11
24011 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24012 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm11
24013 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
24014 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24015 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
24016 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24017 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
24018 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm3
24019 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24020 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
24021 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm3
24022 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24023 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
24024 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24025 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24026 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24027 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24028 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm8, %zmm3
24029 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
24030 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm11
24031 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24032 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm11
24033 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
24034 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24035 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm12
24036 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24037 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24038 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
24039 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm4, %zmm0
24040 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24041 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, %zmm11
24042 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm11
24043 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm3 {%k4} = zmm12[0],zmm26[0],zmm12[2],zmm26[2],zmm12[4],zmm26[4],zmm12[6],zmm26[6]
24044 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24045 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
24046 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm5, %zmm0
24047 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24048 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm0
24049 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm1, %zmm0
24050 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24051 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm26, %zmm23, %zmm12
24052 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24053 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24054 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm12
24055 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24056 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm12
24057 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
24058 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm16
24059 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24060 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm16
24061 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm16
24062 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm16, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24063 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
24064 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24065 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24066 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24067 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm4, %zmm3
24068 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24069 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, %zmm3
24070 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm3
24071 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm24
24072 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm12 {%k4} = zmm0[0],zmm28[0],zmm0[2],zmm28[2],zmm0[4],zmm28[4],zmm0[6],zmm28[6]
24073 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24074 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24075 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm5, %zmm3
24076 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24077 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24078 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm1, %zmm3
24079 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24080 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm28, %zmm23, %zmm0
24081 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24082 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, %zmm28
24083 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24084 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm28
24085 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24086 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm5, %zmm3
24087 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24088 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24089 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm1, %zmm3
24090 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24091 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm29, %zmm23, %zmm0
24092 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24093 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24094 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm29
24095 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24096 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm4, %zmm29
24097 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm27
24098 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm6, %zmm27
24099 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm28 {%k4} = zmm0[0],zmm3[0],zmm0[2],zmm3[2],zmm0[4],zmm3[4],zmm0[6],zmm3[6]
24100 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
24101 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm5, %zmm12
24102 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24103 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12
24104 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm1, %zmm12
24105 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm12, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24106 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm23, %zmm0
24107 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24108 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm26
24109 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24110 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm8, %zmm26
24111 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24112 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm5, %zmm3
24113 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24114 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3
24115 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm1, %zmm3
24116 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24117 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm23, %zmm0
24118 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24119 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rdi), %zmm12
24120 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rsi), %zmm0
24121 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm16
24122 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm23, %zmm16
24123 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, %zmm25
24124 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm31, %zmm6, %zmm25
24125 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm26 {%k4} = zmm31[0],zmm21[0],zmm31[2],zmm21[2],zmm31[4],zmm21[4],zmm31[6],zmm21[6]
24126 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm22
24127 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm14
24128 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, %zmm3
24129 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm23, %zmm31
24130 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm4, %zmm22
24131 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm5, %zmm14
24132 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24133 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm21, %zmm1, %zmm3
24134 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24135 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm15, %zmm19, %zmm2
24136 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24137 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm19, %zmm15, %zmm8
24138 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm2
24139 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm5, %zmm2
24140 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24141 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm15, %zmm1, %zmm19
24142 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm19, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24143 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm19
24144 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm19
24145 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm3
24146 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
24147 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm15, %zmm3
24148 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm2
24149 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm5, %zmm2
24150 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, %zmm20
24151 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
24152 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm14, %zmm6, %zmm20
24153 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm15
24154 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24155 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm8 {%k4} = zmm14[0],zmm9[0],zmm14[2],zmm9[2],zmm14[4],zmm9[4],zmm14[6],zmm9[6]
24156 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm9, %zmm14, %zmm5
24157 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, %zmm23
24158 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm1, %zmm14
24159 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24160 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm9, %zmm4, %zmm23
24161 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} zmm13 {%k4} = zmm12[0],zmm0[0],zmm12[2],zmm0[2],zmm12[4],zmm0[4],zmm12[6],zmm0[6]
24162 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm4
24163 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm6, %zmm0
24164 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm19, %zmm1 # 64-byte Folded Reload
24165 ; AVX512DQ-BW-FCP-NEXT:    # zmm1 = zmm19[0,1,2,3],mem[4,5,6,7]
24166 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k1}
24167 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%r8), %zmm3
24168 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [0,11,0,0,4,5,6,7]
24169 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm13, %zmm9
24170 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, %zmm2 {%k1}
24171 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm12 = [12,0,0,3,4,5,6,13]
24172 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm2, %zmm12
24173 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, %zmm16 {%k3}
24174 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,3,4,15,0,0]
24175 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm3, %zmm2, %zmm16
24176 ; AVX512DQ-BW-FCP-NEXT:    movb $6, %sil
24177 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k5
24178 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 456(%rcx), %ymm2
24179 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm2 = mem[0,1,2,3],ymm2[4,5,6,7]
24180 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm2, %zmm0, %zmm0 {%k5}
24181 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm2 = [0,1,2,9,0,0,6,7]
24182 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm3, %zmm0, %zmm2
24183 ; AVX512DQ-BW-FCP-NEXT:    movb $64, %sil
24184 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24185 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm1 {%k4}
24186 ; AVX512DQ-BW-FCP-NEXT:    movb $4, %sil
24187 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24188 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, %zmm10 {%k4}
24189 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%r9), %zmm0
24190 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm21 = [0,1,11,0,4,5,6,7]
24191 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm9, %zmm21
24192 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm3 = [0,1,2,10,0,5,6,7]
24193 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm10, %zmm3
24194 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm7 = [0,12,0,3,4,5,6,7]
24195 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm12, %zmm7
24196 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm9 = [13,0,2,3,4,5,6,14]
24197 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm9
24198 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [0,1,2,3,4,5,15,0]
24199 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm16
24200 ; AVX512DQ-BW-FCP-NEXT:    movb $12, %sil
24201 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k4
24202 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 448(%rdx), %xmm1
24203 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm1 = xmm1[0],mem[0]
24204 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm1, %ymm0, %ymm1
24205 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm1, %zmm0, %zmm4 {%k4}
24206 ; AVX512DQ-BW-FCP-NEXT:    vinserti32x4 $2, 448(%r8), %zmm4, %zmm1
24207 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm4 = [0,1,2,3,4,8,0,7]
24208 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm1, %zmm4
24209 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm10 = [0,1,2,3,9,0,6,7]
24210 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm0, %zmm2, %zmm10
24211 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 8(%rcx), %ymm0
24212 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24213 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24214 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm2 {%k5}
24215 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 72(%rcx), %ymm0
24216 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24217 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
24218 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm6 {%k5}
24219 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 136(%rcx), %ymm0
24220 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24221 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, %zmm15
24222 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm15 {%k5}
24223 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 200(%rcx), %ymm0
24224 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24225 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, %zmm14
24226 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm14 {%k5}
24227 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 264(%rcx), %ymm0
24228 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24229 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm27 {%k5}
24230 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 328(%rcx), %ymm0
24231 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24232 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm25 {%k5}
24233 ; AVX512DQ-BW-FCP-NEXT:    vpbroadcastq 392(%rcx), %ymm0
24234 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm0 = mem[0,1,2,3],ymm0[4,5,6,7]
24235 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm0, %zmm0, %zmm20 {%k5}
24236 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 384(%rax), %zmm0
24237 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24238 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24239 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm13
24240 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24241 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24242 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
24243 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24244 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 {{.*#+}} zmm11 {%k2} = zmm1[2,3,2,3],zmm0[2,3,2,3]
24245 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24246 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm24 # 64-byte Reload
24247 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24248 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm24
24249 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24250 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24251 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm11
24252 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm11, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24253 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm1 = [14,1,2,3,4,5,6,15]
24254 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm0, %zmm1, %zmm30
24255 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 448(%rax), %zmm12
24256 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,10,5,6,7]
24257 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm3, %zmm0
24258 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24259 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,12,3,4,5,6,7]
24260 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm7, %zmm0
24261 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24262 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,13,2,3,4,5,6,7]
24263 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm9, %zmm0
24264 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24265 ; AVX512DQ-BW-FCP-NEXT:    vpermt2q %zmm12, %zmm1, %zmm16
24266 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,5,8,7]
24267 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm4, %zmm0
24268 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24269 ; AVX512DQ-BW-FCP-NEXT:    vpmovsxbq {{.*#+}} zmm0 = [0,1,2,3,4,9,6,7]
24270 ; AVX512DQ-BW-FCP-NEXT:    vpermi2q %zmm12, %zmm10, %zmm0
24271 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24272 ; AVX512DQ-BW-FCP-NEXT:    movb $8, %sil
24273 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
24274 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm21 {%k2}
24275 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24276 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24277 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k3}
24278 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24279 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24280 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k3}
24281 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24282 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24283 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k3}
24284 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
24285 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24286 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k3}
24287 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24288 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24289 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k3}
24290 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24291 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k3}
24292 ; AVX512DQ-BW-FCP-NEXT:    movb $-31, %sil
24293 ; AVX512DQ-BW-FCP-NEXT:    kmovd %esi, %k2
24294 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24295 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k2}
24296 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24297 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24298 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm7 {%k2}
24299 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24300 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24301 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm3 {%k2}
24302 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24303 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24304 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm9 {%k2}
24305 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24306 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24307 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k2}
24308 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm4, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24309 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24310 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm31 {%k2}
24311 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa (%rdx), %xmm4
24312 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24313 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24314 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24315 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm1 {%k4}
24316 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 64(%rdx), %xmm4
24317 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24318 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24319 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24320 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm3 {%k4}
24321 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 128(%rdx), %xmm4
24322 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24323 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24324 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24325 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k4}
24326 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 192(%rdx), %xmm4
24327 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24328 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24329 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm9 # 64-byte Reload
24330 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm9 {%k4}
24331 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 256(%rdx), %xmm4
24332 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24333 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24334 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm29 {%k4}
24335 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 320(%rdx), %xmm4
24336 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24337 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24338 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm22 {%k4}
24339 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa 384(%rdx), %xmm4
24340 ; AVX512DQ-BW-FCP-NEXT:    vpunpcklqdq {{.*#+}} xmm4 = xmm4[0],mem[0]
24341 ; AVX512DQ-BW-FCP-NEXT:    vinserti128 $1, %xmm4, %ymm0, %ymm4
24342 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm23 {%k4}
24343 ; AVX512DQ-BW-FCP-NEXT:    movb $112, %cl
24344 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24345 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24346 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, (%rax), %zmm0, %zmm1 {%k2}
24347 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm1, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24348 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24349 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 64(%rax), %zmm0, %zmm3 {%k2}
24350 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm3, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24351 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24352 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 128(%rax), %zmm0, %zmm7 {%k2}
24353 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm7, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24354 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24355 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 192(%rax), %zmm0, %zmm9 {%k2}
24356 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm9, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24357 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24358 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 256(%rax), %zmm0, %zmm29 {%k2}
24359 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24360 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 320(%rax), %zmm0, %zmm22 {%k2}
24361 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x2 $3, 384(%rax), %zmm18, %zmm23 {%k2}
24362 ; AVX512DQ-BW-FCP-NEXT:    movb $56, %cl
24363 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24364 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24365 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k2}
24366 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm2, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24367 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24368 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm6 {%k2}
24369 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm6, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24370 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24371 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm15 {%k2}
24372 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm15, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24373 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24374 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm14 {%k2}
24375 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 %zmm14, {{[-0-9]+}}(%r{{[sb]}}p) # 64-byte Spill
24376 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24377 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm27 {%k2}
24378 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24379 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm25 {%k2}
24380 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm20 {%k2}
24381 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24382 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24383 ; AVX512DQ-BW-FCP-NEXT:    movb $14, %cl
24384 ; AVX512DQ-BW-FCP-NEXT:    kmovd %ecx, %k2
24385 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm17 # 64-byte Reload
24386 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm17 {%k2}
24387 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24388 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24389 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm15 # 64-byte Reload
24390 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm15 {%k2}
24391 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24392 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24393 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm14 # 64-byte Reload
24394 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm14 {%k2}
24395 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24396 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24397 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm7 # 64-byte Reload
24398 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm7 {%k2}
24399 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24400 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24401 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm28 {%k2}
24402 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24403 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24404 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm26 {%k2}
24405 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
24406 ; AVX512DQ-BW-FCP-NEXT:    vpblendd {{.*#+}} ymm4 = ymm0[0,1,2,3,4,5],mem[6,7]
24407 ; AVX512DQ-BW-FCP-NEXT:    vinserti64x4 $0, %ymm4, %zmm0, %zmm8 {%k2}
24408 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24409 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24410 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm1 {%k1}
24411 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24412 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24413 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm2 {%k1}
24414 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24415 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24416 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm4 {%k1}
24417 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24418 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24419 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm10 {%k1}
24420 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24421 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24422 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm12 {%k1}
24423 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24424 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24425 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm13 {%k1}
24426 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24427 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, %zmm5 {%k1}
24428 ; AVX512DQ-BW-FCP-NEXT:    movb $120, %al
24429 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
24430 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm11 # 64-byte Reload
24431 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, %zmm11 {%k1}
24432 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24433 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm0, %zmm9 # 64-byte Folded Reload
24434 ; AVX512DQ-BW-FCP-NEXT:    # zmm9 = zmm0[0,1,2,3],mem[4,5,6,7]
24435 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm6 # 64-byte Reload
24436 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, %zmm6 {%k1}
24437 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm3 # 64-byte Reload
24438 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm3 {%k1}
24439 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm2 # 64-byte Reload
24440 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm2 {%k1}
24441 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm1 # 64-byte Reload
24442 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm1 {%k1}
24443 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24444 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm0 {%k1}
24445 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm24 {%k1}
24446 ; AVX512DQ-BW-FCP-NEXT:    movb $-61, %al
24447 ; AVX512DQ-BW-FCP-NEXT:    kmovd %eax, %k1
24448 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24449 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, %zmm9 {%k1}
24450 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24451 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm4, %zmm4 # 64-byte Folded Reload
24452 ; AVX512DQ-BW-FCP-NEXT:    # zmm4 = zmm4[0,1,2,3],mem[4,5,6,7]
24453 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24454 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, %zmm4 {%k1}
24455 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24456 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm5, %zmm5 # 64-byte Folded Reload
24457 ; AVX512DQ-BW-FCP-NEXT:    # zmm5 = zmm5[0,1,2,3],mem[4,5,6,7]
24458 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24459 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, %zmm5 {%k1}
24460 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm10 # 64-byte Reload
24461 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm10, %zmm10 # 64-byte Folded Reload
24462 ; AVX512DQ-BW-FCP-NEXT:    # zmm10 = zmm10[0,1,2,3],mem[4,5,6,7]
24463 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24464 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, %zmm10 {%k1}
24465 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm12 # 64-byte Reload
24466 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm12, %zmm12 # 64-byte Folded Reload
24467 ; AVX512DQ-BW-FCP-NEXT:    # zmm12 = zmm12[0,1,2,3],mem[4,5,6,7]
24468 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24469 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, %zmm12 {%k1}
24470 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm13 # 64-byte Reload
24471 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm13, %zmm13 # 64-byte Folded Reload
24472 ; AVX512DQ-BW-FCP-NEXT:    # zmm13 = zmm13[0,1,2,3],mem[4,5,6,7]
24473 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
24474 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, %zmm13 {%k1}
24475 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm18 # 64-byte Reload
24476 ; AVX512DQ-BW-FCP-NEXT:    vshufi64x2 $228, {{[-0-9]+}}(%r{{[sb]}}p), %zmm18, %zmm18 # 64-byte Folded Reload
24477 ; AVX512DQ-BW-FCP-NEXT:    # zmm18 = zmm18[0,1,2,3],mem[4,5,6,7]
24478 ; AVX512DQ-BW-FCP-NEXT:    vmovdqu64 {{[-0-9]+}}(%r{{[sb]}}p), %zmm19 # 64-byte Reload
24479 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm19, %zmm18 {%k1}
24480 ; AVX512DQ-BW-FCP-NEXT:    movq {{[0-9]+}}(%rsp), %rax
24481 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm18, 3008(%rax)
24482 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm24, 2944(%rax)
24483 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm8, 2880(%rax)
24484 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24485 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 2816(%rax)
24486 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm20, 2752(%rax)
24487 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm23, 2688(%rax)
24488 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm31, 2624(%rax)
24489 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm13, 2560(%rax)
24490 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm0, 2496(%rax)
24491 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm26, 2432(%rax)
24492 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24493 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 2368(%rax)
24494 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm25, 2304(%rax)
24495 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm22, 2240(%rax)
24496 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24497 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 2176(%rax)
24498 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm12, 2112(%rax)
24499 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm1, 2048(%rax)
24500 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm28, 1984(%rax)
24501 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24502 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 1920(%rax)
24503 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm27, 1856(%rax)
24504 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm29, 1792(%rax)
24505 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24506 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1728(%rax)
24507 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm10, 1664(%rax)
24508 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm2, 1600(%rax)
24509 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm7, 1536(%rax)
24510 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm8 # 64-byte Reload
24511 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm8, 1472(%rax)
24512 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24513 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1408(%rax)
24514 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24515 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1344(%rax)
24516 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24517 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 1280(%rax)
24518 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm5, 1216(%rax)
24519 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm3, 1152(%rax)
24520 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm14, 1088(%rax)
24521 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm5 # 64-byte Reload
24522 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm5, 1024(%rax)
24523 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24524 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 960(%rax)
24525 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24526 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 896(%rax)
24527 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24528 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 832(%rax)
24529 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm4, 768(%rax)
24530 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm6, 704(%rax)
24531 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm15, 640(%rax)
24532 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24533 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm4, 576(%rax)
24534 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24535 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 512(%rax)
24536 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24537 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 448(%rax)
24538 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24539 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 384(%rax)
24540 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm9, 320(%rax)
24541 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm11, 256(%rax)
24542 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm17, 192(%rax)
24543 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm4 # 64-byte Reload
24544 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm4, 128(%rax)
24545 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24546 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 64(%rax)
24547 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24548 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, (%rax)
24549 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm16, 3520(%rax)
24550 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24551 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3456(%rax)
24552 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24553 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3392(%rax)
24554 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm21, 3328(%rax)
24555 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24556 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3264(%rax)
24557 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24558 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3200(%rax)
24559 ; AVX512DQ-BW-FCP-NEXT:    vmovdqa64 %zmm30, 3072(%rax)
24560 ; AVX512DQ-BW-FCP-NEXT:    vmovups {{[-0-9]+}}(%r{{[sb]}}p), %zmm0 # 64-byte Reload
24561 ; AVX512DQ-BW-FCP-NEXT:    vmovaps %zmm0, 3136(%rax)
24562 ; AVX512DQ-BW-FCP-NEXT:    addq $6120, %rsp # imm = 0x17E8
24563 ; AVX512DQ-BW-FCP-NEXT:    vzeroupper
24564 ; AVX512DQ-BW-FCP-NEXT:    retq
24565   %in.vec0 = load <64 x i64>, ptr %in.vecptr0, align 64
24566   %in.vec1 = load <64 x i64>, ptr %in.vecptr1, align 64
24567   %in.vec2 = load <64 x i64>, ptr %in.vecptr2, align 64
24568   %in.vec3 = load <64 x i64>, ptr %in.vecptr3, align 64
24569   %in.vec4 = load <64 x i64>, ptr %in.vecptr4, align 64
24570   %in.vec5 = load <64 x i64>, ptr %in.vecptr5, align 64
24571   %in.vec6 = load <64 x i64>, ptr %in.vecptr6, align 64
24572   %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>
24573   %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>
24574   %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>
24575   %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>
24576   %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>
24577   %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>
24578   %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>
24579   %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>
24580   %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>
24581   store <448 x i64> %interleaved.vec, ptr %out.vec, align 64
24582   ret void